/// <summary> /// CancelPreApproval /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <param name="preApprovalCode">PreApproval code</param> /// <returns>The PreApprovalRequestResponse wich contains the response</returns> public static bool CancelPreApproval(Credentials credentials, string preApprovalCode) { PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "PreApprovalService.CancelPreApproval({0}) - begin", preApprovalCode)); try { using (var response = HttpUrlConnectionUtil.GetHttpGetConnection(BuildCancelUrl(credentials, preApprovalCode))) { if (HttpStatusCode.OK.Equals(response.StatusCode)) { using (var reader = XmlReader.Create(response.GetResponseStream())) { var paymentResponse = new PreApprovalRequestResponse(PagSeguroUris.GetPreApprovalCancelUri(credentials)); PreApprovalSerializer.Read(reader, paymentResponse); PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "PreApprovalService.CancelPreApproval({0}) - end {1}", preApprovalCode, paymentResponse.Status)); return(paymentResponse.Status.Equals("OK", StringComparison.CurrentCultureIgnoreCase)); } } var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException(response); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "PreApprovalService.CancelPreApproval({0}) - error {1}", preApprovalCode, pse)); throw pse; } } catch (WebException exception) { var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "PreApprovalService.CancelPreApproval({0}) - error {1}", preApprovalCode, pse)); throw pse; } }
/// <summary> /// createCheckoutRequest is the actual implementation of the Register method /// This separation serves as test hook to validate the Uri /// against the code returned by the service /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <param name="payment">Payment request information</param> /// <returns>The Uri to where the user needs to be redirected to in order to complete the payment process</returns> public static Uri CreateCheckoutRequest(Credentials credentials, PaymentRequest payment) { PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "PaymentService.Register({0}) - begin", payment)); try { using (var response = HttpUrlConnectionUtil.GetHttpPostConnection( PagSeguroUris.GetPaymentUri(credentials).AbsoluteUri, BuildCheckoutUrl(credentials, payment))) { if (HttpStatusCode.OK.Equals(response.StatusCode)) { using (var reader = XmlReader.Create(response.GetResponseStream())) { var paymentResponse = new PaymentRequestResponse(PagSeguroUris.GetPaymentRedirectUri(credentials)); PaymentSerializer.Read(reader, paymentResponse); PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "PaymentService.Register({0}) - end {1}", payment, paymentResponse.PaymentRedirectUri)); return(paymentResponse.PaymentRedirectUri); } } var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException(response); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "PaymentService.Register({0}) - error {1}", payment, pse)); throw pse; } } catch (WebException exception) { var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "PaymentService.Register({0}) - error {1}", payment, pse)); throw pse; } }
/// <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, bool onlyAuthorizationCode) { PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "AuthorizationService.CreateAuthorizationRequest() - begin")); try { using (var response = HttpUrlConnectionUtil.GetHttpPostConnection( PagSeguroUris.GetAuthorizarionRequestUri(credentials).AbsoluteUri, BuildAuthorizationRequestUrl(credentials, authorizationRequest))) { using (var reader = XmlReader.Create(response.GetResponseStream())) { var authorization = new AuthorizationResponse(); AuthorizationSerializer.Read(reader, authorization); return(onlyAuthorizationCode ? authorization.Code : BuildAuthorizationUrl(credentials, authorization.Code)); } } } catch (WebException pse) { throw pse; } catch (PagSeguroServiceException pse) { throw pse; } }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="interval"></param> /// <returns></returns> private static string BuildSearchUrlByInterval(Credentials credentials, int interval) { var searchUrlByInterval = new QueryStringBuilder("{url}/notifications?{credential}&interval={interval}"); searchUrlByInterval.ReplaceValue("{url}", PagSeguroUris.GetPreApprovalSearchUri(credentials).AbsoluteUri); searchUrlByInterval.ReplaceValue("{interval}", HttpUtility.UrlEncode(interval.ToString())); searchUrlByInterval.ReplaceValue("{credential}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(searchUrlByInterval.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="preApprovalCode"></param> /// <returns></returns> private static string BuildCancelUrl(Credentials credentials, string preApprovalCode) { var searchUrlByCode = new QueryStringBuilder("{url}/{preApprovalCode}?{credential}"); searchUrlByCode.ReplaceValue("{url}", PagSeguroUris.GetPreApprovalCancelUri(credentials).AbsoluteUri); searchUrlByCode.ReplaceValue("{preApprovalCode}", HttpUtility.UrlEncode(preApprovalCode)); searchUrlByCode.ReplaceValue("{credential}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(searchUrlByCode.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="notificationCode"></param> /// <returns></returns> private static string BuildAuthorizationNotificationUrl(Credentials credentials, string notificationCode) { var builder = new QueryStringBuilder("{url}{notificationCode}?{credential}"); builder.ReplaceValue("{url}", PagSeguroUris.GetAuthorizationNotificationUri(credentials).AbsoluteUri); builder.ReplaceValue("{notificationCode}", HttpUtility.UrlEncode(notificationCode)); builder.ReplaceValue("{credential}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(builder.ToString()); }
internal static string BuildAuthorizationUrl(Credentials credentials, string code) { var builder = new QueryStringBuilder("{URL}?code={code}"); builder.ReplaceValue("{URL}", PagSeguroUris.GetAuthorizarionUri(credentials).AbsoluteUri); builder.ReplaceValue("{code}", code); return(builder.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="notificationCode"></param> /// <returns></returns> private static string BuildTransactionNotificationUrl(Credentials credentials, string notificationCode) { var transactionNotificationUrl = new QueryStringBuilder("{url}/{notificationCode}?{credential}"); transactionNotificationUrl.ReplaceValue("{url}", PagSeguroUris.GetNotificationUri(credentials).AbsoluteUri); transactionNotificationUrl.ReplaceValue("{notificationCode}", HttpUtility.UrlEncode(notificationCode)); transactionNotificationUrl.ReplaceValue("{credential}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(transactionNotificationUrl.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="transactionCode"></param> /// <returns></returns> private static string BuildSearchUrlByCode(Credentials credentials, string transactionCode) { var searchUrlByCode = new QueryStringBuilder("{url}/{transactionCode}?{credential}"); searchUrlByCode.ReplaceValue("{url}", PagSeguroUris.GetSearchUri(credentials).AbsoluteUri); searchUrlByCode.ReplaceValue("{transactionCode}", HttpUtility.UrlEncode(transactionCode)); searchUrlByCode.ReplaceValue("{credential}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(searchUrlByCode.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="code"></param> /// <returns></returns> internal static string BuildSearchUrlByCode(Credentials credentials, string code) { var builder = new QueryStringBuilder("{URL}{code}?{credentials}"); builder.ReplaceValue("{URL}", PagSeguroUris.GetAuthorizarionSearchUri(credentials).AbsoluteUri); builder.ReplaceValue("{code}", code); builder.ReplaceValue("{credentials}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(builder.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="reference"></param> /// <returns></returns> private static string BuildSearchUrlByReference(Credentials credentials, string reference) { var searchUrlByReference = new QueryStringBuilder("{url}?{credentials}&reference={reference}"); searchUrlByReference.ReplaceValue("{url}", PagSeguroUris.GetSearchUri(credentials).AbsoluteUri); searchUrlByReference.ReplaceValue("{reference}", HttpUtility.UrlEncode(reference)); searchUrlByReference.ReplaceValue("{credentials}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(searchUrlByReference.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="notificationCode"></param> /// <returns></returns> private static string BuildSearchUrlByNotification(Credentials credentials, string notificationCode) { var searchUrlByNotification = new QueryStringBuilder("{url}/notifications/{notificationCode}?{credential}"); searchUrlByNotification.ReplaceValue("{url}", PagSeguroUris.GetPreApprovalSearchUri(credentials).AbsoluteUri); searchUrlByNotification.ReplaceValue("{notificationCode}", HttpUtility.UrlEncode(notificationCode)); searchUrlByNotification.ReplaceValue("{credential}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(searchUrlByNotification.ToString()); }
private static string BuildInstallmentUrl(Credentials credentials, decimal amount, string cardBrand, int maxInstallmentNoInterest) { var builder = new QueryStringBuilder("{url}?{credentials}&amount={amount}&cardBrand={cardBrand}&maxInstallmentNoInterest={maxInstallmentNoInterest}"); builder.ReplaceValue("{url}", PagSeguroUris.GetInstallmentUri(credentials).AbsoluteUri); builder.ReplaceValue("{credentials}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); builder.ReplaceValue("{amount}", PagSeguroUtil.DecimalFormat(amount)); builder.ReplaceValue("{cardBrand}", HttpUtility.UrlEncode(cardBrand)); builder.ReplaceValue("{maxInstallmentNoInterest}", HttpUtility.UrlEncode(maxInstallmentNoInterest.ToString())); return(builder.ToString()); }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="initialDate"></param> /// <param name="finalDate"></param> /// <param name="pageNumber"></param> /// <param name="resultsPerPage"></param> /// <returns></returns> private static string BuildSearchUrlByDate(Credentials credentials, DateTime initialDate, DateTime finalDate, int?pageNumber, int?resultsPerPage) { var builder = new QueryStringBuilder("{url}?initialDate={initialDate}{finalDate}{page}{maxPageResults}{credential}"); builder.ReplaceValue("{url}", PagSeguroUris.GetPreApprovalSearchUri(credentials).AbsoluteUri); builder.ReplaceValue("{initialDate}", PagSeguroUtil.FormatDateXml(initialDate)); builder.ReplaceValue("{finalDate}", finalDate < DateTime.MaxValue ? "&" + FinalDateParameterName + "=" + PagSeguroUtil.FormatDateXml(finalDate) : ""); if (pageNumber.HasValue) { builder.ReplaceValue("{page}", pageNumber > 0 ? "&" + PageNumberParameterName + "=" + pageNumber : ""); } if (resultsPerPage.HasValue) { builder.ReplaceValue("{maxPageResults}", resultsPerPage > 0 ? "&" + MaxPageResultsParameterName + "=" + resultsPerPage : ""); } builder.ReplaceValue("{credential}", credentials != null ? new QueryStringBuilder().AppendToQuery("&").EncodeCredentialsAsQueryString(credentials).ToString() : ""); return(PagSeguroUtil.RemoveExtraSpaces(builder.ToString())); }
/// <summary> /// Request a transaction cancellation from transaction code /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <param name="transactionCode">Transaction Code</param> /// <returns><c cref="T:Uol.PagSeguro.CancelRequestResponse">Result</c></returns> public static RequestResponse RequestCancel(Credentials credentials, string transactionCode) { PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "CancelService.Register(transactionCode = {0}) - begin", transactionCode)); try { using (var response = HttpUrlConnectionUtil.GetHttpPostConnection( PagSeguroUris.GetCancelUri(credentials).AbsoluteUri, BuildCancelUrl(credentials, transactionCode))) { using (var reader = XmlReader.Create(response.GetResponseStream())) { var cancel = new RequestResponse(); CancelSerializer.Read(reader, cancel); PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "CancelService.createRequest({0}) - end", cancel.ToString())); return(cancel); } } } catch (WebException exception) { var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "CancelService.createRequest() - error {0}", pse)); throw pse; } }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="initialDate"></param> /// <param name="finalDate"></param> /// <param name="pageNumber"></param> /// <param name="resultsPerPage"></param> /// <returns></returns> internal static string BuildSearchUrlByDate(Credentials credentials, DateTime initialDate, DateTime finalDate, int?pageNumber = null, int?resultsPerPage = null) { var builder = new QueryStringBuilder("{URL}?{credentials}&initialDate={initialDate}{finalDate}{page}{maxPageResults}"); builder.ReplaceValue("{URL}", PagSeguroUris.GetAuthorizarionSearchUri(credentials).AbsoluteUri); builder.ReplaceValue("{initialDate}", PagSeguroUtil.FormatDateXml(initialDate)); builder.ReplaceValue("{finalDate}", finalDate < DateTime.MaxValue ? "&" + FinalDateParameterName + "=" + PagSeguroUtil.FormatDateXml(finalDate) : ""); if (pageNumber.HasValue) { builder.ReplaceValue("{page}", pageNumber > 0 ? "&" + PageNumberParameterName + "=" + pageNumber : ""); } if (pageNumber.HasValue) { builder.ReplaceValue("{maxPageResults}", resultsPerPage > 0 ? "&" + MaxPageResultsParameterName + "=" + resultsPerPage : ""); } builder.ReplaceValue("{credentials}", new QueryStringBuilder().EncodeCredentialsAsQueryString(credentials).ToString()); return(PagSeguroUtil.RemoveExtraSpaces(builder.ToString())); }
/// <summary> /// Request a transaction refund from transaction code /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <param name="transactionCode">Transaction Code</param> /// <param name="refundValue"></param> /// <returns><c cref="T:Uol.PagSeguro.CancelRequestResponse">Result</c></returns> public static RequestResponse RequestRefund(Credentials credentials, string transactionCode, decimal?refundValue = null) { PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "RefundService.Register(transactionCode = {0}) - begin", transactionCode)); try { using (var response = HttpUrlConnectionUtil.GetHttpPostConnection( PagSeguroUris.GetRefundUri(credentials).AbsoluteUri, BuildRefundUrl(credentials, transactionCode, refundValue))) { using (var reader = XmlReader.Create(response.GetResponseStream())) { var refund = new RequestResponse(); RefundSerializer.Read(reader, refund); PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "RefundService.Register({0}) - end", refund.ToString())); return(refund); } } } catch (WebException exception) { var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "RefundService.Register() - error {0}", pse)); throw pse; } }
/// <summary> /// Create a new transaction checkout /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <param name="checkout"></param> /// <returns cref="T:Uol.PagSeguro.Transaction"><c>Transaction</c></returns> public static Transaction CreateCheckout(Credentials credentials, Checkout checkout) { PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "TransactionService.Register() - begin")); try { using (var response = HttpUrlConnectionUtil.GetHttpPostConnection( PagSeguroUris.GetTransactionsUri(credentials).AbsoluteUri, BuildTransactionUrl(credentials, checkout))) { using (var reader = XmlReader.Create(response.GetResponseStream())) { var transaction = new Transaction(); TransactionSerializer.Read(reader, transaction); PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "TransactionService.Register() - end {0}", transaction)); return(transaction); } } } catch (WebException exception) { var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response, exception); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "TransactionService.Register() - error {0}", pse)); throw pse; } }
/// <summary> /// Request a direct payment session /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <returns><c cref="T:Uol.PagSeguro.CancelRequestResponse">Result</c></returns> public static Session CreateSession(Credentials credentials) { PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "SessionService.Register() - begin")); try { using (var response = HttpUrlConnectionUtil.GetHttpPostConnection( PagSeguroUris.GetSessionUri(credentials).AbsoluteUri, BuildSessionUrl(credentials))) { using (var reader = XmlReader.Create(response.GetResponseStream())) { var result = new Session(); SessionSerializer.Read(reader, result); PagSeguroTrace.Info(string.Format(CultureInfo.InvariantCulture, "SessionService.Register({0}) - end", result.ToString())); return(result); } } } catch (WebException exception) { var pse = HttpUrlConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response, exception); PagSeguroTrace.Error(string.Format(CultureInfo.InvariantCulture, "SessionService.Register() - error {0}", pse)); throw pse; } }