Exemplo n.º 1
0
        /// <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;
            }
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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();
            }
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
        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();
            }
        }
Exemplo n.º 7
0
 static void ShippingTypeExample()
 {
     PaymentRequest paymentRequest = new PaymentRequest();
     paymentRequest.Shipping = new Shipping();
     paymentRequest.Shipping.ShippingType = ShippingType.Pac;
 }
Exemplo n.º 8
0
        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;
        }
Exemplo n.º 9
0
        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;
            }
        }
Exemplo n.º 11
0
        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());
        }
Exemplo n.º 12
0
        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();
            }
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        /// <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;
        }
Exemplo n.º 15
0
 static void AddItemExample()
 {
     PaymentRequest paymentRequest = new PaymentRequest();
     paymentRequest.Items.Add(new Item("0001", "Notebook", 1, 2430.00m));
 }
Exemplo n.º 16
0
 static void ExtraAmountExample()
 {
     PaymentRequest paymentRequest = new PaymentRequest();
     paymentRequest.ExtraAmount = 15.79m;
 }
Exemplo n.º 17
0
 static void MaxAgeUsesExample()
 {
     PaymentRequest paymentRequest = new PaymentRequest();
     paymentRequest.MaxAge = 2880; // 2 dias
     paymentRequest.MaxUses = 15; // 15 vezes
 }
Exemplo n.º 18
0
 static void RedirectUriExample()
 {
     PaymentRequest paymentRequest = new PaymentRequest();
     paymentRequest.RedirectUri = new Uri("http://lojamodelo.com.br/conclusao.html");
 }
Exemplo n.º 19
0
 static void ReferenceExample()
 {
     PaymentRequest paymentRequest = new PaymentRequest();
     paymentRequest.Reference = "REF1234";
 }
Exemplo n.º 20
0
        /// <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();
        }
Exemplo n.º 21
0
        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());
        }
Exemplo n.º 22
0
        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();
            }
        }
Exemplo n.º 23
0
        /// <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;
        }