/// <summary> /// /// </summary> /// <param name="authorizationRequest">PagSeguro AuthorizationRequest</param> /// <returns></returns> public static IDictionary<string, string> GetData(AuthorizationRequest authorizationRequest) { IDictionary<string, string> data = new Dictionary<string, string>(); // Reference if (authorizationRequest.Reference != null) { data["reference"] = authorizationRequest.Reference; } // RedirectURL if (authorizationRequest.RedirectURL != null) { data["redirectURL"] = authorizationRequest.RedirectURL; } // NotificationURL if (authorizationRequest.NotificationURL != null) { data["notificationURL"] = authorizationRequest.NotificationURL; } // Permissions if (authorizationRequest.Permissions != null) { data["permissions"] = string.Join(",", authorizationRequest.Permissions.ToArray()); } return data; }
/// <summary> /// Creates a new authorization request /// </summary> /// <param name="credentials">PagSeguro credentials. Required</param> /// <param name="authorizationRequest">PagSeguro AuthorizationRequest</param> /// <param name="onlyAuthorizationCode"></param> /// <returns></returns> public static String CreateAuthorizationRequest(Credentials credentials, AuthorizationRequest authorizationRequest, Boolean onlyAuthorizationCode) { PagSeguroTrace.Info(String.Format(CultureInfo.InvariantCulture, "AuthorizationService.CreateAuthorizationRequest() - begin")); try { using (HttpWebResponse response = HttpURLConnectionUtil.GetHttpPostConnection( PagSeguroConfiguration.AuthorizarionRequestUri.AbsoluteUri, buildAuthorizationRequestUrl(credentials, authorizationRequest))) { using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) { AuthorizationResponse authorization = new AuthorizationResponse(); AuthorizationSerializer.Read(reader, authorization); if (onlyAuthorizationCode) { return authorization.Code; } else { return BuildAuthorizationURL(authorization.Code); } } } } catch (WebException pse) { throw pse; } catch (PagSeguroServiceException pse) { throw pse; } }
static void Main(string[] args) { bool isSandbox = false; EnvironmentConfiguration.ChangeEnvironment(isSandbox); AuthorizationRequest authorization = new AuthorizationRequest(); authorization.Reference = "REF1234"; authorization.RedirectURL = "http://www.lojamodelo.com.br/redirect"; authorization.NotificationURL = "http://www.lojamodelo.com.br/notification"; authorization.addPermission(PermissionType.CREATE_CHECKOUTS); authorization.addPermission(PermissionType.DIRECT_PAYMENT); authorization.addPermission(PermissionType.MANAGE_PAYMENT_PRE_APPROVALS); authorization.addPermission(PermissionType.RECEIVE_TRANSACTION_NOTIFICATIONS); authorization.addPermission(PermissionType.SEARCH_TRANSACTIONS); try { ApplicationCredentials credentials = PagSeguroConfiguration.ApplicationCredentials(isSandbox); String result = authorization.Register(credentials); Console.WriteLine("URL da autorização: " + result); Console.ReadKey(); } catch (WebException exception) { Console.WriteLine(exception.Message + "\n"); Console.ReadKey(); } catch (PagSeguroServiceException exception) { Console.WriteLine(exception.Message + "\n"); foreach (ServiceError element in exception.Errors) { Console.WriteLine(element + "\n"); } Console.ReadKey(); } }
/// <summary> /// /// </summary> /// <param name="connection"></param> /// <param name="code"></param> /// <returns></returns> internal static string buildAuthorizationRequestUrl(Credentials credentials, AuthorizationRequest authorizationRequest) { QueryStringBuilder builder = new QueryStringBuilder(); IDictionary<string, string> data = AuthorizationParse.GetData(authorizationRequest); builder. EncodeCredentialsAsQueryString(credentials); foreach (KeyValuePair<string, string> pair in data) { builder.Append(pair.Key, pair.Value.ToString(CultureInfo.InvariantCulture)); } return HttpUtility.UrlDecode(builder.ToString()); }