Ejemplo n.º 1
0
        public void Payments()
        {
            var service = new PaymentsService(_Client);

            var card = new Models.DirectCheckouts.Card
            {
                CardNumber      = "5132 0723 8792 9820",
                ExpirationMonth = "04",
                ExpirationYear  = "2022",
                HolderName      = "HIDELBRANDO SILVA",
                SecurityCode    = "732"
            };

            var dc = new DirectCheckouts.DirectCheckout(_Client.Credentials.PublicToken, false);

            var creditCardHash = dc.GetCardHash(card);

            if (string.IsNullOrWhiteSpace(creditCardHash))
            {
                throw new Exception("Definir hash do cartão de crédito");
            }

            //
            // Cria a cobrança

            var chargesService = new ChargesService(_Client);

            var split = new List <Split>
            {
                new Split
                {
                    AmountRemainder = true,
                    ChargeFee       = false,
                    Percentage      = 90.0m,
                    RecipientToken  = "5E64B2E0B0D4AE42A3F2981CC4055CF613F6C17B5C2912029C587581E72ECDB8", // Seller - Harry Potter - Document: 90564489603 - Id: dac_2585CBF0E2A23649
                },
                new Split
                {
                    AmountRemainder = false,
                    ChargeFee       = false,
                    Percentage      = 1.0m,
                    RecipientToken  = "F3FEB619853E74753853E0BBFC1A6CBF53189A3F8059035877C136641897AAB9", // Optional - Hogwarts - Document: 78338726311040 - Id: dac_591251E5D47F08AE
                },
                new Split
                {
                    AmountRemainder = false,
                    ChargeFee       = true,
                    Percentage      = 9.0m,
                    RecipientToken  = _Client.Credentials.PrivateToken, // Bibi Peças
                }
            };

            var newCharge = new Models.Requests.CreateChargeResource.CreateCharge
            {
                Charge = new Charge
                {
                    Description = $"Cobrança Teste - {Guid.NewGuid()}",
                    //References
                    Amount = 100.0m,
                    //TotalAmount = 100.0m,
                    //Installments = 1,
                    DueDate      = DateTime.Now.AddDays(3),
                    PaymentTypes = new List <PaymentType> {
                        PaymentType.CREDIT_CARD
                    },
                    Split = split
                },
                Billing = new BillingForCharge
                {
                    Name      = "Hidelbrando da Silva",
                    Document  = Helpers.NewCPF(),
                    Email     = "*****@*****.**",
                    Phone     = "5585982061631",
                    BirthDate = DateTime.Now.AddYears(-21),
                },
            };

            var createdCharges = chargesService.CreateCharge(_Client.Credentials.PrivateToken, newCharge);

            Assert.IsNotNull(createdCharges?.Embedded?.Charges.FirstOrDefault()?.Id);

            var chargeId = createdCharges.Embedded.Charges[0].Id;

            // TODO service.CreditCardTokenization

            var newPayment = new Models.Requests.CreatePaymentResource.CreatePayment
            {
                ChargeId = chargeId,
                Billing  = new BillingForPayment
                {
                    Delayed = true,
                    Address = new Address
                    {
                        Street       = "Rua dos Alfeneiros",
                        Number       = "4",
                        Complement   = "Armário debaixo da escada",
                        Neighborhood = "Surrey",
                        City         = "Caucaia",
                        State        = AddressState.CE,
                        PostCode     = "61611220"
                    },
                    Email = "*****@*****.**"
                },
                CreditCardDetails = new CreditCardDetails
                {
                    CreditCardHash = creditCardHash
                }
            };

            var createdPayment = service.CreatePayment(_Client.Credentials.PrivateToken, newPayment);

            Assert.IsNotNull(createdPayment);
            Assert.IsNotNull(createdPayment.Payments);
            Assert.IsFalse(string.IsNullOrWhiteSpace(createdPayment.TransactionId));

            var newCapturePayment = new Models.Requests.CaptureCreditCardPaymentResource.CaptureCreditCardPayment
            {
                ChargeId = chargeId,
                Amount   = newCharge.Charge.Amount,
            };

            var capturedPayment = service.CaptureCreditCardPayment(_Client.Credentials.PrivateToken, createdPayment.Payments[0].Id, newCapturePayment);

            Assert.IsNotNull(capturedPayment);
            Assert.IsNotNull(createdPayment.Payments);
            Assert.IsFalse(string.IsNullOrWhiteSpace(createdPayment.TransactionId));

            var newRefundPayment = new Models.Requests.RefundCreditCardPaymentResource.RefundCreditCardPayment
            {
                Amount = newCharge.Charge.Amount,
                Split  = split
            };

            var refundedPayment = service.RefundCreditCardPayment(_Client.Credentials.PrivateToken, createdPayment.Payments[0].Id, newRefundPayment);

            Assert.IsNotNull(refundedPayment);
            Assert.IsNotNull(refundedPayment.Refunds);
            Assert.IsFalse(string.IsNullOrWhiteSpace(refundedPayment.TransactionId));
        }
Ejemplo n.º 2
0
        public void Charges()
        {
            var service = new ChargesService(_Client);

            var newCharge = new Models.Requests.CreateChargeResource.CreateCharge
            {
                Charge = new Charge
                {
                    Description = $"Cobrança Teste - {Guid.NewGuid()}",
                    //References
                    Amount = 100.0m,
                    //TotalAmount = 100.0m,
                    //Installments = 1,
                    DueDate      = DateTime.Now.AddDays(3),
                    PaymentTypes = new List <PaymentType> {
                        PaymentType.CREDIT_CARD
                    },
                    Split = new List <Split>
                    {
                        new Split
                        {
                            AmountRemainder = true,
                            ChargeFee       = false,
                            Percentage      = 90.0m,
                            RecipientToken  = "5E64B2E0B0D4AE42A3F2981CC4055CF613F6C17B5C2912029C587581E72ECDB8", // Seller - Harry Potter - Document: 90564489603 - Id: dac_2585CBF0E2A23649
                        },
                        new Split
                        {
                            AmountRemainder = false,
                            ChargeFee       = false,
                            Percentage      = 1.0m,
                            RecipientToken  = "F3FEB619853E74753853E0BBFC1A6CBF53189A3F8059035877C136641897AAB9", // Optional - Hogwarts - Document: 78338726311040 - Id: dac_591251E5D47F08AE
                        },
                        new Split
                        {
                            AmountRemainder = false,
                            ChargeFee       = true,
                            Percentage      = 9.0m,
                            RecipientToken  = _Client.Credentials.PrivateToken, // Bibi Peças
                        }
                    }
                },
                Billing = new BillingForCharge
                {
                    Name      = "Hidelbrando da Silva",
                    Document  = Helpers.NewCPF(),
                    Email     = "*****@*****.**",
                    Phone     = "5585982061631",
                    BirthDate = DateTime.Now.AddYears(-21),
                },
            };

            var createdCharges = service.CreateCharge(_Client.Credentials.PrivateToken, newCharge);

            Assert.IsNotNull(createdCharges);
            Assert.IsNotNull(createdCharges.Embedded);
            Assert.IsNotNull(createdCharges.Embedded.Charges);
            Assert.IsTrue(createdCharges.Embedded.Charges.Count > 0);

            foreach (var createdCharge in createdCharges.Embedded.Charges)
            {
                var queryCharge = service.GetCharge(_Client.Credentials.PrivateToken, createdCharge.Id);

                Assert.IsNotNull(queryCharge);
                Assert.AreEqual(queryCharge.Id, createdCharge.Id);
            }

            var listCharges = service.ListCharges(_Client.Credentials.PrivateToken, new Models.Requests.ListChargeResource
            {
                ShowCancelled    = false,
                ShowNotCancelled = true,
                CreatedOnStart   = DateTime.Now,
                CreatedOnEnd     = DateTime.Now,
                ShowNotPaid      = true,
                ShowPaid         = false
            });

            Assert.IsNotNull(listCharges);
            Assert.IsNotNull(listCharges.Embedded);
            Assert.IsNotNull(listCharges.Embedded.Charges);
            Assert.IsTrue(listCharges.Embedded.Charges.Count > 0);

            Assert.IsFalse(listCharges.Embedded.Charges.Any(o => o.Status == ChargeStatus.CANCELLED));

            foreach (var createdCharge in createdCharges.Embedded.Charges)
            {
                Assert.IsTrue(listCharges.Embedded.Charges.Any(o => o.Id == createdCharge.Id));

                service.UpdateChargeSplit(_Client.Credentials.PrivateToken, createdCharge.Id, new List <Split>
                {
                    new Split
                    {
                        AmountRemainder = true,
                        ChargeFee       = true,
                        Percentage      = 100.0m,
                        RecipientToken  = _Client.Credentials.PrivateToken, // Bibi Peças
                    }
                });

                service.CancelCharge(_Client.Credentials.PrivateToken, createdCharge.Id);
            }
        }