/// <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 (HttpWebResponse response = HttpURLConnectionUtil.GetHttpPostConnection( PagSeguroConfiguration.PaymentUri.AbsoluteUri, BuildCheckoutUrl(credentials, payment))) { if (HttpStatusCode.OK.Equals(response.StatusCode)) { using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) { PaymentRequestResponse paymentResponse = new PaymentRequestResponse(PagSeguroConfiguration.PaymentRedirectUri); PaymentSerializer.Read(reader, paymentResponse); PagSeguroTrace.Info(String.Format(CultureInfo.InvariantCulture, "PaymentService.Register({0}) - end {1}", payment, paymentResponse.PaymentRedirectUri)); return paymentResponse.PaymentRedirectUri; } } else { PagSeguroServiceException pse = HttpURLConnectionUtil.CreatePagSeguroServiceException(response); PagSeguroTrace.Error(String.Format(CultureInfo.InvariantCulture, "PaymentService.Register({0}) - error {1}", payment, pse)); throw pse; } } } catch (WebException exception) { PagSeguroServiceException pse = HttpURLConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response); PagSeguroTrace.Error(String.Format(CultureInfo.InvariantCulture, "PaymentService.Register({0}) - error {1}", payment, pse)); throw pse; } }
static void ItemsExample(PaymentRequest paymentRequest) { foreach (Item item in paymentRequest.Items) { Console.WriteLine(item.Id); Console.WriteLine(item.Description); Console.WriteLine(item.Quantity); Console.WriteLine(item.Amount); } }
static void ItemExample(PaymentRequest paymentRequest) { Item item = new Item( "0001", // Identificador do item em seu site ou aplicação "Notebook", // Descrição 1, // Quantidade 2430.00m, // Valor 1000, // Peso em gramas 17.35m); // Valor do frete paymentRequest.Items.Add(item); }
static void Main(string[] args) { bool isSandbox = true; EnvironmentConfiguration.ChangeEnvironment(isSandbox); try { AccountCredentials credentials = PagSeguroConfiguration.Credentials(); // Instantiate a new payment request PaymentRequest payment = new PaymentRequest(); // Sets the currency payment.Currency = Currency.Brl; // Add an item for this preApproval payment request payment.Items.Add(new Item("0001", "Seguro contra roubo do Notebook", 1, 100.00m)); // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. payment.Reference = "REF1234"; // Sets the previous preApproval code payment.PreApprovalCode = "ACF8C1FA1F1F1ED3342F0FB4B86DE5F8"; string preApprovalTransactionCode = PreApprovalService.CreatePreApprovalPaymentRequest(credentials, payment); Console.WriteLine(preApprovalTransactionCode); Console.ReadKey(); } catch (PagSeguroServiceException exception) { Console.WriteLine(exception.Message + "\n"); foreach (ServiceError element in exception.Errors) { Console.WriteLine(element + "\n"); } Console.ReadKey(); } }
static void Main(string[] args) { bool isSandbox = false; EnvironmentConfiguration.ChangeEnvironment(isSandbox); // Instantiate a new payment request PaymentRequest payment = new PaymentRequest(); // Sets the currency payment.Currency = Currency.Brl; // Add an item for this preApproval payment request payment.Items.Add(new Item("0001", "Seguro contra roubo do Notebook", 1, 10.00m)); // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. payment.Reference = "REF1234"; // Sets the previous preApproval code payment.PreApprovalCode = "235FD1B69494E6ACC4C37F8A60C05E89"; try { AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox); String result = PreApprovalService.ChargePreApproval(credentials, payment); Console.WriteLine(result); Console.ReadKey(); } catch (PagSeguroServiceException exception) { Console.WriteLine(exception.Message + "\n"); foreach (ServiceError element in exception.Errors) { Console.WriteLine(element + "\n"); } Console.ReadKey(); } }
static void Main(string[] args) { // TODO: Substitute the parameters below with your credentials //AccountCredentials credentials = new AccountCredentials("*****@*****.**", "your_token_here"); AccountCredentials credentials = PagSeguroConfiguration.Credentials; try { // Instantiate a new payment request PaymentRequest payment = new PaymentRequest(); // Sets the currency payment.Currency = Currency.Brl; // Add an item for this preApproval payment request payment.Items.Add(new Item("0001", "Seguro contra roubo do Notebook", 1, 100.00m)); // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. payment.Reference = "REF1234"; // Sets the previous preApproval code payment.PreApprovalCode = "12E10BEF5E5EF94004313FB891C8E4CF"; string preApprovalTransactionCode = PreApprovalService.CreatePreApprovalPaymentRequest(credentials, payment); Console.WriteLine(preApprovalTransactionCode); Console.ReadKey(); } catch (PagSeguroServiceException exception) { if (exception.StatusCode == HttpStatusCode.Unauthorized) { Console.WriteLine("Unauthorized: please verify if the credentials used in the web service call are correct.\n"); } Console.ReadKey(); } }
static void ShippingTypeExample() { PaymentRequest paymentRequest = new PaymentRequest(); paymentRequest.Shipping = new Shipping(); paymentRequest.Shipping.ShippingType = ShippingType.Pac; }
static void ShippingExample() { PaymentRequest paymentRequest = new PaymentRequest(); Shipping shipping = new Shipping(); shipping.ShippingType = ShippingType.Pac; shipping.Address = new Address( "BRA", "SP", "São Paulo", "Jardim Paulistano", "01452002", "Av. Brig. Faria Lima", "1384", "5o. Andar"); paymentRequest.Shipping = shipping; }
static void SenderExample() { PaymentRequest paymentRequest = new PaymentRequest(); // Sender representa quem enviará dinheiro // na transação, normalmente o comprador Sender sender = new Sender( "José Comprador", // Nome "*****@*****.**", // Email new Phone("11", "56273440") // Telefone ); paymentRequest.Sender = sender; if (paymentRequest.Sender != null) { Console.WriteLine(paymentRequest.Sender.Name); Console.WriteLine(paymentRequest.Sender.Email); if (paymentRequest.Sender.Phone != null) { Console.WriteLine(paymentRequest.Sender.Phone.AreaCode); Console.WriteLine(paymentRequest.Sender.Phone.Number); } } }
public ActionResult FinalizarCompra(string pedidoId) { try { Response.AppendHeader("Access-Control-Allow-Origin", "https://sandbox.pagseguro.uol.com.br"); var session = Session["autenticacao"] as SessionAutenticacaoClient; var sessionCarrinho = Session["carrinho"] as SessionCarrinho; if (session == null) { return RedirectToAction("Index", "Login", new { actionRedirect = "index", controllerRedirect = "Carrinho" }); } if (pedidoId.Length > 10) { AccountCredentials cred = PagSeguroConfiguration.Credentials(true); Transaction transaction = TransactionSearchService.SearchByCode( cred, pedidoId, false ); var pedidoTransaction = db.Pedido.Find(Int32.Parse(transaction.Reference)); pedidoTransaction.PagseguroId = pedidoId; db.SaveChanges(); return RedirectToAction("Index", "Home"); } var pedido = db.Pedido.Find(Int32.Parse(pedidoId)); var pedidoItens = db.PedidoItem.Where(x => x.Pedido.Id == pedido.Id).ToList(); PaymentRequest payment = new PaymentRequest(); payment.Currency = Currency.Brl; foreach (var carrinhoProduto in sessionCarrinho.ProdutosCarrinho) { payment.Items.Add(new Item( carrinhoProduto.Produto.Id.ToString(), carrinhoProduto.Produto.Descricao, carrinhoProduto.Quantidade, carrinhoProduto.Produto.Preco ) ); } payment.Shipping = new Shipping(); payment.Shipping.ShippingType = sessionCarrinho.isSedex == true ? ShippingType.Sedex : ShippingType.Pac; var cidade = db.Cidade.Where(x => x.Id == sessionCarrinho.Endereco.cCidade).FirstOrDefault(); var estado = db.Estado.Where(x => x.Id == cidade.cEstado).FirstOrDefault(); cidade.Estado = estado; sessionCarrinho.Endereco.Cidade = cidade; payment.Shipping.Address = new Address( "BRA", sessionCarrinho.Endereco.Cidade.Estado.Abreviacao, sessionCarrinho.Endereco.Cidade.Descricao, sessionCarrinho.Endereco.Bairro, sessionCarrinho.Endereco.Cep, sessionCarrinho.Endereco.Logradoruro, sessionCarrinho.Endereco.Numero, sessionCarrinho.Endereco.Complementro ); payment.Reference = pedido.Id.ToString(); var url = String.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Request.Url.AbsolutePath); payment.RedirectUri = new Uri(url); payment.MaxAge = 172800; payment.MaxUses = 15; payment.Shipping.Cost = sessionCarrinho.Frete; /* AccountCredentials credentials = new AccountCredentials ( "*****@*****.**", "5A207A1660254D41B4C393C19B3D09DC" );*/ AccountCredentials credentials = PagSeguroConfiguration.Credentials(true); Uri paymentRedirectUri = payment.Register(credentials); Session.Remove("carrinho"); Response.Redirect(paymentRedirectUri.ToString()); return View(); } catch(PagSeguroServiceException ex) { throw; } }
static void RegisterExample() { PaymentRequest paymentRequest = new PaymentRequest(); // Preencher propriedades da requisição do pagamento aqui // Inicializando credenciais AccountCredentials credentials = new AccountCredentials( "*****@*****.**", "95112EE828D94278BD394E91C4388F20"); // Criando o código de requisição de pagamento // e obtendo a URL da página de pagamento // do PagSeguro Uri paymentRedirectUri = paymentRequest.Register(credentials); //Response.Redirect(paymentRedirectUri.ToString()); }
static void Main(string[] args) { bool isSandbox = true; EnvironmentConfiguration.ChangeEnvironment(isSandbox); try { AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox); // Instantiate a new payment request PaymentRequest payment = new PaymentRequest(); // Sets the currency payment.Currency = Currency.Brl; // Add an item for this payment request payment.Items.Add(new Item("0001", "Notebook Prata", 1, 2430.00m)); // Add another item for this payment request payment.Items.Add(new Item("0002", "Notebook Rosa", 2, 150.99m)); // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. payment.Reference = "REF1234"; // Sets shipping information for this payment request payment.Shipping = new Shipping(); payment.Shipping.ShippingType = ShippingType.Sedex; //Passando valor para ShippingCost payment.Shipping.Cost = 10.00m; payment.Shipping.Address = new Address( "BRA", "SP", "Sao Paulo", "Jardim Paulistano", "01452002", "Av. Brig. Faria Lima", "1384", "5o andar" ); // Sets your customer information. payment.Sender = new Sender( "Joao Comprador", "*****@*****.**", new Phone("11", "56273440") ); // Sets the url used by PagSeguro for redirect user after ends checkout process payment.RedirectUri = new Uri("http://www.lojamodelo.com.br"); // Add checkout metadata information payment.AddMetaData(MetaDataItemKeys.GetItemKeyByDescription("CPF do passageiro"), "123.456.789-09", 1); payment.AddMetaData("PASSENGER_PASSPORT", "23456", 1); // Another way to set checkout parameters payment.AddParameter("senderBirthday", "07/05/1980"); payment.AddIndexedParameter("itemColor", "verde", 1); payment.AddIndexedParameter("itemId", "0003", 3); payment.AddIndexedParameter("itemDescription", "Mouse", 3); payment.AddIndexedParameter("itemQuantity", "1", 3); payment.AddIndexedParameter("itemAmount", "200.00", 3); SenderDocument senderCPF = new SenderDocument(Documents.GetDocumentByType("CPF"), "12345678909"); payment.Sender.Documents.Add(senderCPF); Uri paymentRedirectUri = payment.Register(credentials); Console.WriteLine("URL do pagamento : " + paymentRedirectUri); Console.ReadKey(); } catch (PagSeguroServiceException exception) { Console.WriteLine(exception.Message + "\n"); foreach (ServiceError element in exception.Errors) { Console.WriteLine(element + "\n"); } Console.ReadKey(); } }
public void Pay() { const bool isSandbox = true; // EnvironmentConfiguration.ChangeEnvironment(isSandbox); var credentials = PagSeguroConfiguration.Credentials(isSandbox); // Instanciar uma nova requisição de pagamento var payment = new PaymentRequest { Currency = Currency.Brl }; // Adicionar produtos payment.Items.Add(new Item("0001", "Orçamento", 1, 20.00m)); // Código que identifica o pagamento payment.Reference = "REF1234"; //// Informações de entrega //payment.Shipping = new Shipping //{ // ShippingType = ShippingType.Sedex, // Cost = 10.00m, // Address = new Address( // "BRA", // "SP", // "Sao Paulo", // "Jardim Paulistano", // "01452002", // "Av. Brig. Faria Lima", // "1384", // "5o andar" // ) //}; // Informações do remetente payment.Sender = new Sender( "Joao Comprador", "*****@*****.**", new Phone("11", "56273440") ); // URL a redirecionar o usuário após pagamento payment.RedirectUri = new Uri("http://www.agilizaorcamento.com.br"); // Informações extras para identificar o pagamento. // Essas informações são livres para adicionar o que for necessário. //payment.AddMetaData(MetaDataItemKeys.GetItemKeyByDescription("CPF do passageiro"), "123.456.789-09", 1); //payment.AddMetaData("PASSENGER_PASSPORT", "23456", 1); //// Outra forma de definir os parâmetros de pagamento. //payment.AddParameter("senderBirthday", "07/05/1980"); //payment.AddIndexedParameter("itemColor", "verde", 1); //payment.AddIndexedParameter("itemId", "0003", 3); //payment.AddIndexedParameter("itemDescription", "Mouse", 3); //payment.AddIndexedParameter("itemQuantity", "1", 3); //payment.AddIndexedParameter("itemAmount", "200.00", 3); //var senderCpf = new SenderDocument(Documents.GetDocumentByType("CPF"), "03078690164"); //payment.Sender.Documents.Add(senderCpf); var paymentRedirectUri = payment.Register(credentials); }
/// <summary> /// /// </summary> /// <param name="payment"></param> /// <returns></returns> public static IDictionary<string, string> GetData(PaymentRequest payment) { IDictionary<string, string> data = new Dictionary<string, string>(); // reference if (payment.Reference != null) { data["reference"] = payment.Reference; } // sender if (payment.Sender != null) { if (payment.Sender.Name != null) { data["senderName"] = payment.Sender.Name; } if (payment.Sender.Email != null) { data["senderEmail"] = payment.Sender.Email; } // phone if (payment.Sender.Phone != null) { if (payment.Sender.Phone.AreaCode != null) { data["senderAreaCode"] = payment.Sender.Phone.AreaCode; } if (payment.Sender.Phone.Number != null) { data["senderPhone"] = payment.Sender.Phone.Number; } } // documents if (payment.Sender.Documents != null) { var documents = payment.Sender.Documents; if (documents.Count == 1) { foreach (SenderDocument document in documents) { if (document != null) { if (document.Type.Equals("Cadastro de Pessoa Física")) { data["senderCPF"] = document.Value; } else { data["senderCNPJ"] = document.Value; } } } } } } // currency if (payment.Currency != null) { data["currency"] = payment.Currency; } // items if (payment.Items.Count > 0) { var items = payment.Items; int i = 0; foreach (Item item in items) { i++; if (item.Id != null) { data["itemId" + i] = item.Id; } if (item.Description != null) { data["itemDescription" + i] = item.Description; } if (item.Quantity != null) { data["itemQuantity" + i] = item.Quantity.ToString(); } if (item.Amount != null) { data["itemAmount" + i] = PagSeguroUtil.DecimalFormat(item.Amount); } if (item.Weight != null) { data["itemWeight" + i] = item.Weight.ToString(); } if (item.ShippingCost != null) { data["itemShippingCost" + i] = PagSeguroUtil.DecimalFormat((decimal)item.ShippingCost); } } } //preApproval if (payment.PreApproval != null) { data["preApprovalCharge"] = payment.PreApproval.Charge; data["preApprovalName"] = payment.PreApproval.Name; data["preApprovalDetails"] = payment.PreApproval.Details; data["preApprovalPeriod"] = payment.PreApproval.Period; data["preApprovalFinalDate"] = payment.PreApproval.FinalDate.ToString("yyyy-MM-dd") + "T01:00:00.45-03:00"; data["preApprovalMaxTotalAmount"] = payment.PreApproval.MaxTotalAmount.ToString("F").Replace(",", "."); data["preApprovalAmountPerPayment"] = payment.PreApproval.AmountPerPayment.ToString("F").Replace(",", "."); if (payment.PreApproval.Charge == Charge.Manual) { data["preApprovalInitialDate"] = payment.PreApproval.InitialDate.ToString("yyyy-MM-dd") + "T01:00:00.45-03:00"; data["preApprovalMaxAmountPerPeriod"] = payment.PreApproval.MaxAmountPerPeriod.ToString("F").Replace(",", "."); data["preApprovalMaxPaymentsPerPeriod"] = payment.PreApproval.MaxPaymentsPerPeriod.ToString(); if (payment.PreApproval.Period == Period.Yearly) data["preApprovalDayOfYear"] = payment.PreApproval.DayOfYear.ToString(); if (payment.PreApproval.Period == Period.Monthly || payment.PreApproval.Period == Period.Bimonthly || payment.PreApproval.Period == Period.Trimonthly || payment.PreApproval.Period == Period.SemiAnnually) data["preApprovalDayOfMonth"] = payment.PreApproval.DayOfMonth.ToString(); if (payment.PreApproval.Period == Period.Weekly) data["preApprovalDayOfWeek"] = payment.PreApproval.DayOfWeek.ToString(); } data["reviewUrl"] = payment.ReviewUri.ToString(); } //preApproval payment if (payment.PreApprovalCode != null) { data["preApprovalCode"] = payment.PreApprovalCode; } // extraAmount if (payment.ExtraAmount != null) { data["extraAmount"] = PagSeguroUtil.DecimalFormat((decimal)payment.ExtraAmount); } // shipping if (payment.Shipping != null) { if (payment.Shipping.ShippingType != null && payment.Shipping.ShippingType.Value != null) { data["shippingType"] = payment.Shipping.ShippingType.Value.ToString(); } if (payment.Shipping.Cost != null) { data["shippingCost"] = PagSeguroUtil.DecimalFormat((decimal)payment.Shipping.Cost); } // address if (payment.Shipping.Address != null) { if (payment.Shipping.Address.Street != null) { data["shippingAddressStreet"] = payment.Shipping.Address.Street; } if (payment.Shipping.Address.Number != null) { data["shippingAddressNumber"] = payment.Shipping.Address.Number; } if (payment.Shipping.Address.Complement != null) { data["shippingAddressComplement"] = payment.Shipping.Address.Complement; } if (payment.Shipping.Address.City != null) { data["shippingAddressCity"] = payment.Shipping.Address.City; } if (payment.Shipping.Address.State != null) { data["shippingAddressState"] = payment.Shipping.Address.State; } if (payment.Shipping.Address.District != null) { data["shippingAddressDistrict"] = payment.Shipping.Address.District; } if (payment.Shipping.Address.PostalCode != null) { data["shippingAddressPostalCode"] = payment.Shipping.Address.PostalCode; } if (payment.Shipping.Address.Country != null) { data["shippingAddressCountry"] = payment.Shipping.Address.Country; } } } // maxAge if (payment.MaxAge != null) { data["maxAge"] = payment.MaxAge.ToString(); } // maxUses if (payment.MaxUses != null) { data["maxUses"] = payment.MaxUses.ToString(); } // redirectURL if (payment.RedirectUri != null) { data["redirectURL"] = payment.RedirectUri.ToString(); } // notificationURL if (payment.NotificationURL != null) { data["notificationURL"] = payment.NotificationURL; } // metadata if (payment.MetaData.Items.Count > 0) { int i = 0; var metaDataItems = payment.MetaData.Items; foreach (MetaDataItem item in metaDataItems) { if (!PagSeguroUtil.IsEmpty(item.Key) && !PagSeguroUtil.IsEmpty(item.Value)) { i++; data["metadataItemKey" + i] = item.Key; data["metadataItemValue" + i] = item.Value; if (item.Group != null) { data["metadataItemGroup" + i] = item.Group.ToString(); } } } } // parameter if (payment.Parameter.Items.Count > 0) { var parameterItems = payment.Parameter.Items; foreach (ParameterItem item in parameterItems) { if (!PagSeguroUtil.IsEmpty(item.Key) && !PagSeguroUtil.IsEmpty(item.Value)) { if (item.Group != null) { data[item.Key + "" + item.Group] = item.Value; } else { data[item.Key] = item.Value; } } } } // paymentMethodConfig if (payment.PaymentMethodConfig.Items.Count > 0) { int i = 0; var configItems = payment.PaymentMethodConfig.Items; foreach (PaymentMethodConfigItem item in configItems) { if (!PagSeguroUtil.IsEmpty(item.Key) && !PagSeguroUtil.IsEmpty(item.Group)) { i++; data["paymentMethodGroup" + i] = item.Group; data["paymentMethodConfigKey" + i + "_1"] = item.Key; if (item.Key.Equals(PaymentMethodConfigKeys.DiscountPercent)) { data["paymentMethodConfigValue" + i + "_1"] = PagSeguroUtil.DecimalFormat(item.Value); } else { data["paymentMethodConfigValue" + i + "_1"] = PagSeguroUtil.DoubleToInt(item.Value); } } } } // paymentMethodConfig if (payment.AcceptedPaymentMethods.Items.Count > 0) { var acceptGroupList = new List<string>(); var acceptNameList = new List<string>(); var excludeGroupList = new List<string>(); var excludeNameList = new List<string>(); var config = payment.AcceptedPaymentMethods.Items; foreach (AcceptedPayments item in config) { if (item.GetType() == typeof(AcceptPaymentMethod)) { if (!acceptGroupList.Contains(item.Group)) { acceptGroupList.Add(item.Group); } acceptNameList = item.Name; } if (item.GetType() == typeof(ExcludePaymentMethod)) { if (!excludeGroupList.Contains(item.Group)) { excludeGroupList.Add(item.Group); } excludeNameList = item.Name; } } if (acceptGroupList.Count > 0 && acceptNameList.Count > 0) { data["acceptPaymentMethodGroup"] = String.Join(",", acceptGroupList.ToArray()); data["acceptPaymentMethodName"] = String.Join(",", acceptNameList.ToArray()); } if (excludeGroupList.Count > 0 && excludeNameList.Count > 0) { data["excludePaymentMethodGroup"] = String.Join(",", excludeGroupList.ToArray()); data["excludePaymentMethodName"] = String.Join(",", excludeNameList.ToArray()); } } return data; }
static void AddItemExample() { PaymentRequest paymentRequest = new PaymentRequest(); paymentRequest.Items.Add(new Item("0001", "Notebook", 1, 2430.00m)); }
static void ExtraAmountExample() { PaymentRequest paymentRequest = new PaymentRequest(); paymentRequest.ExtraAmount = 15.79m; }
static void MaxAgeUsesExample() { PaymentRequest paymentRequest = new PaymentRequest(); paymentRequest.MaxAge = 2880; // 2 dias paymentRequest.MaxUses = 15; // 15 vezes }
static void RedirectUriExample() { PaymentRequest paymentRequest = new PaymentRequest(); paymentRequest.RedirectUri = new Uri("http://lojamodelo.com.br/conclusao.html"); }
static void ReferenceExample() { PaymentRequest paymentRequest = new PaymentRequest(); paymentRequest.Reference = "REF1234"; }
/// <summary> /// /// </summary> /// <param name="credentials"></param> /// <param name="payment"></param> /// <returns></returns> internal static string BuildCheckoutUrl(Credentials credentials, PaymentRequest payment) { QueryStringBuilder builder = new QueryStringBuilder(); IDictionary<string, string> data = PaymentParse.GetData(payment); builder. EncodeCredentialsAsQueryString(credentials); foreach (KeyValuePair<string, string> pair in data) { builder.Append(pair.Key, pair.Value); } return builder.ToString(); }
static void RegisterExample() { PaymentRequest paymentRequest = new PaymentRequest(); // Preencher propriedades da requisição do pagamento aqui bool isSandbox = false; EnvironmentConfiguration.ChangeEnvironment(isSandbox); AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox); // Criando o código de requisição de pagamento // e obtendo a URL da página de pagamento // do PagSeguro Uri paymentRedirectUri = paymentRequest.Register(credentials); //Response.Redirect(paymentRedirectUri.ToString()); }
static void Main(string[] args) { // TODO: Substitute the parameters below with your credentials //AccountCredentials credentials = new AccountCredentials("*****@*****.**", "your_token_here"); AccountCredentials credentials = PagSeguroConfiguration.Credentials; try { // Instantiate a new payment request PaymentRequest payment = new PaymentRequest(); // Sets the currency payment.Currency = Currency.Brl; // Add an item for this payment request payment.Items.Add(new Item("0001", "Notebook Prata", 1, 2430.00m)); // Add another item for this payment request payment.Items.Add(new Item("0002", "Notebook Rosa", 2, 150.99m)); // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. payment.Reference = "REF1234"; // Sets shipping information for this payment request payment.Shipping = new Shipping(); payment.Shipping.ShippingType = ShippingType.Sedex; //Passando valor para ShippingCost payment.Shipping.Cost = 10.00m; payment.Shipping.Address = new Address( "BRA", "SP", "Sao Paulo", "Jardim Paulistano", "01452002", "Av. Brig. Faria Lima", "1384", "5o andar" ); // Sets your customer information. payment.Sender = new Sender( "Joao Comprador", "*****@*****.**", new Phone("11", "56273440") ); // Sets the url used by PagSeguro for redirect user after ends checkout process payment.RedirectUri = new Uri("http://www.lojamodelo.com.br"); // Add checkout metadata information payment.AddMetaData(MetaDataItemKeys.GetItemKeyByDescription("CPF do passageiro"), "123.456.789-09", 1); payment.AddMetaData("PASSENGER_PASSPORT", "23456", 1); // Another way to set checkout parameters payment.AddParameter("senderBirthday", "07/05/1980"); payment.AddIndexedParameter("itemColor", "verde", 1); payment.AddIndexedParameter("itemId", "0003", 3); payment.AddIndexedParameter("itemDescription", "Mouse", 3); payment.AddIndexedParameter("itemQuantity", "1", 3); payment.AddIndexedParameter("itemAmount", "200.00", 3); SenderDocument senderCPF = new SenderDocument(Documents.GetDocumentByType("CPF"), "12345678909"); payment.Sender.Documents.Add(senderCPF); // Sets the preApproval informations payment.PreApproval = new PreApproval(); var now = DateTime.Now; // Only works with Manual payment.PreApproval.Charge = Charge.Manual; payment.PreApproval.Name = "Seguro contra roubo do Notebook"; payment.PreApproval.AmountPerPayment = 100.00m; payment.PreApproval.MaxAmountPerPeriod = 100.00m; payment.PreApproval.Details = string.Format("Todo dia {0} será cobrado o valor de {1} referente ao seguro contra roubo do Notebook.", now.Day, payment.PreApproval.AmountPerPayment.ToString("C2")); payment.PreApproval.Period = Period.Monthly; payment.PreApproval.DayOfMonth = now.Day; payment.PreApproval.InitialDate = now; payment.PreApproval.FinalDate = now.AddMonths(6); payment.PreApproval.MaxTotalAmount = 600.00m; payment.PreApproval.MaxPaymentsPerPeriod = 1; payment.ReviewUri = new Uri("http://www.lojamodelo.com.br/revisao"); Uri paymentRedirectUri = payment.Register(credentials); Console.WriteLine("URL do pagamento : " + paymentRedirectUri); Console.ReadKey(); } catch (PagSeguroServiceException exception) { if (exception.StatusCode == HttpStatusCode.Unauthorized) { Console.WriteLine("Unauthorized: please verify if the credentials used in the web service call are correct.\n"); } Console.ReadKey(); } }
/// <summary> /// /// </summary> /// <param name="payment"></param> /// <returns></returns> public static IDictionary<string, string> GetData(PaymentRequest payment) { IDictionary<string, string> data = new Dictionary<string, string>(); // reference if (payment.Reference != null) { data["reference"] = payment.Reference; } // sender if (payment.Sender != null) { if (payment.Sender.Name != null) { data["senderName"] = payment.Sender.Name; } if (payment.Sender.Email != null) { data["senderEmail"] = payment.Sender.Email; } // phone if (payment.Sender.Phone != null) { if (payment.Sender.Phone.AreaCode != null) { data["senderAreaCode"] = payment.Sender.Phone.AreaCode; } if (payment.Sender.Phone.Number != null) { data["senderPhone"] = payment.Sender.Phone.Number; } } // documents if (payment.Sender.Documents != null) { var documents = payment.Sender.Documents; if (documents.Count == 1) { foreach (SenderDocument document in documents) { if (document != null) { data["senderCPF"] = document.Value; } } } } } // currency if (payment.Currency != null) { data["currency"] = payment.Currency; } // items if (payment.Items.Count > 0) { var items = payment.Items; int i = 0; foreach (Item item in items) { i++; if (item.Id != null) { data["itemId" + i] = item.Id; } if (item.Description != null) { data["itemDescription" + i] = item.Description; } if (item.Quantity != null) { data["itemQuantity" + i] = item.Quantity.ToString(); } if (item.Amount != null) { data["itemAmount" + i] = PagSeguroUtil.DecimalFormat(item.Amount); } if (item.Weight != null) { data["itemWeight" + i] = item.Weight.ToString(); } if (item.ShippingCost != null) { data["itemShippingCost" + i] = PagSeguroUtil.DecimalFormat((decimal)item.ShippingCost); } } } // extraAmount if (payment.ExtraAmount != null) { data["extraAmount"] = PagSeguroUtil.DecimalFormat((decimal)payment.ExtraAmount); } // shipping if (payment.Shipping != null) { if (payment.Shipping.ShippingType != null && payment.Shipping.ShippingType.Value != null) { data["shippingType"] = payment.Shipping.ShippingType.Value.ToString(); } if (payment.Shipping.Cost != null) { data["shippingCost"] = PagSeguroUtil.DecimalFormat((decimal)payment.Shipping.Cost); } // address if (payment.Shipping.Address != null) { if (payment.Shipping.Address.Street != null) { data["shippingAddressStreet"] = payment.Shipping.Address.Street; } if (payment.Shipping.Address.Number != null) { data["shippingAddressNumber"] = payment.Shipping.Address.Number; } if (payment.Shipping.Address.Complement != null) { data["shippingAddressComplement"] = payment.Shipping.Address.Complement; } if (payment.Shipping.Address.City != null) { data["shippingAddressCity"] = payment.Shipping.Address.City; } if (payment.Shipping.Address.State != null) { data["shippingAddressState"] = payment.Shipping.Address.State; } if (payment.Shipping.Address.District != null) { data["shippingAddressDistrict"] = payment.Shipping.Address.District; } if (payment.Shipping.Address.PostalCode != null) { data["shippingAddressPostalCode"] = payment.Shipping.Address.PostalCode; } if (payment.Shipping.Address.Country != null) { data["shippingAddressCountry"] = payment.Shipping.Address.Country; } } } // maxAge if (payment.MaxAge != null) { data["maxAge"] = payment.MaxAge.ToString(); } // maxUses if (payment.MaxUses != null) { data["maxUses"] = payment.MaxUses.ToString(); } // redirectURL if (payment.RedirectUri != null) { data["redirectURL"] = payment.RedirectUri.ToString(); } // notificationURL if (payment.NotificationURL != null) { data["notificationURL"] = payment.NotificationURL; } // metadata if (payment.MetaData.Items.Count > 0) { int i = 0; var metaDataItems = payment.MetaData.Items; foreach (MetaDataItem item in metaDataItems) { if (!PagSeguroUtil.IsEmpty(item.Key) && !PagSeguroUtil.IsEmpty(item.Value)) { i++; data["metadataItemKey" + i] = item.Key; data["metadataItemValue" + i] = item.Value; if (item.Group != null) { data["metadataItemGroup" + i] = item.Group.ToString(); } } } } // parameter if (payment.Parameter.Items.Count > 0) { var parameterItems = payment.Parameter.Items; foreach (ParameterItem item in parameterItems) { if (!PagSeguroUtil.IsEmpty(item.Key) && !PagSeguroUtil.IsEmpty(item.Value)) { if (item.Group != null) { data[item.Key + "" + item.Group] = item.Value; } else { data[item.Key] = item.Value; } } } } return data; }