コード例 #1
0
        /// <summary>
        /// Add payment method to customer
        /// </summary>
        /// <param name="siteUserGuid">Siteuserguid</param>
        /// <param name="cardtoken">cardtoken from reepay</param>
        /// <returns>statuscode and carddata</returns>
        public ApiResponse <Card> AddPaymentMethodToCustomer(int siteUserGuid, string cardtoken)
        {
            var myClassname = MethodBase.GetCurrentMethod().Name;
            var config      = this.GetDefaultApiConfiguration();
            var api         = new CustomerApi(config);

            for (var i = 0; i <= MaxNoOfRetries; i++)
            {
                try
                {
                    var body = new CardToken(cardtoken);
                    var res  = api.AddCardJsonWithHttpInfo(siteUserGuid.ToString(), body);
                    if (res.StatusCode != (int)HttpStatusCode.OK)
                    {
                        this._log.Error($"Unexpected answer from reepay. {myClassname} Errorcode {res.StatusCode}");
                    }

                    return(res);
                }
                catch (ApiException apiException)
                {
                    this._log.Error($"{myClassname} {apiException.ErrorCode} {apiException.ErrorContent}");
                    return(new ApiResponse <Card>(apiException.ErrorCode, null, null));
                }
                catch (Exception) when(i < MaxNoOfRetries)
                {
                    this._log.Debug($"{myClassname} retry attempt {i}");
                }
            }

            return(new ApiResponse <Card>((int)HttpStatusCode.InternalServerError, null, null));
        }
コード例 #2
0
        public void Get_Success()
        {
            CustomerRequest customerRequest = BuildCustomerCreateRequest();
            var             customerClient  = new CustomerClient();
            Customer        customer        = customerClient.Create(customerRequest);

            Thread.Sleep(1000);

            try
            {
                CustomerCardCreateRequest cardRequest = BuildCardCreateRequest();
                CustomerCard card = customerClient.CreateCard(customer.Id, cardRequest);

                var request = new CardTokenRequest
                {
                    CustomerId   = customer.Id,
                    CardId       = card.Id,
                    SecurityCode = "123",
                };
                CardToken createdCartToken = client.Create(request);

                Thread.Sleep(1000);

                CardToken cardToken = client.Get(createdCartToken.Id);

                Assert.NotNull(cardToken);
                Assert.Equal(createdCartToken.Id, cardToken.Id);
            }
            finally
            {
                customerClient.Delete(customer.Id);
            }
        }
コード例 #3
0
        public IActionResult AddCardCustomer([FromBody] CardToken cardData)
        {
            if (cardData == null)
            {
                _log.Error(nameof(cardData).ToString() + "Cannot be null.");
                throw new ArgumentNullException(nameof(cardData), "Cannot be null.");
            }

            Card cardCreated = null;

            try
            {
                _log.Information("Adding Card to customer.");

                var openpayAPI = OpenPayHandler.GetOpenPayInstance();

                Card request = new Card();
                request.TokenId         = cardData.token_id;
                request.DeviceSessionId = cardData.device_session_id;

                cardCreated = openpayAPI.CardService.Create(cardData.id, request);
            }
            catch (Exception ex)
            {
                _log.Error("Exception while adding card." + ex.ToString());
                return(NotFound());
            }

            return(Ok(cardCreated));
        }
コード例 #4
0
        public async Task CreateAsync_Success()
        {
            CustomerRequest customerRequest = BuildCustomerCreateRequest();
            var             customerClient  = new CustomerClient();
            Customer        customer        = await customerClient.CreateAsync(customerRequest);

            await Task.Delay(1000);

            try
            {
                CustomerCardCreateRequest cardRequest = await BuildCardCreateRequestAsync();

                CustomerCard card = await customerClient.CreateCardAsync(customer.Id, cardRequest);

                var request = new CardTokenRequest
                {
                    CustomerId   = customer.Id,
                    CardId       = card.Id,
                    SecurityCode = "123",
                };
                CardToken cardToken = await client.CreateAsync(request);

                Assert.NotNull(cardToken);
                Assert.NotNull(cardToken.Id);
            }
            finally
            {
                customerClient.Delete(customer.Id);
            }
        }
コード例 #5
0
        public async Task <CardToken> CreateCardToken(CardTokenContent cardToken)
        {
            CardTokenContent content = new CardTokenContent(cardToken.TokenId)
            {
                Owner = new Owner {
                    Collection = cardToken.Owner.Collection, Identifier = cardToken.Owner.Identifier
                },
                Address            = cardToken.Address,
                CardType           = cardToken.CardType,
                CustomerId         = cardToken.CustomerId,
                Email              = cardToken.Email,
                ExpirationMonth    = cardToken.ExpirationMonth,
                ExpirationYear     = cardToken.ExpirationYear,
                IsReadonly         = cardToken.IsReadonly,
                LastFourDigits     = cardToken.LastFourDigits,
                NameOnCard         = cardToken.NameOnCard,
                PlatformIdentifier = _platformIdentifier
            };

            CardToken newEntity = new CardToken
            {
                Contents = content
            };

            var entity = await _context.CardToken.AddAsync(newEntity);

            return(entity);
        }
コード例 #6
0
        public async Task <List <Data.IdCard> > ExecuteAsync(int cchId, Employer employer)
        {
            if (cchId < 1)
            {
                throw new InvalidOperationException("Invalid member context.");
            }

            if (employer == null || string.IsNullOrEmpty(employer.ConnectionString))
            {
                throw new InvalidOperationException("Invalid employer context.");
            }

            _repository.Initialize(employer.ConnectionString);

            List <Data.IdCard> result = new List <Data.IdCard>();

            switch (employer.Id)
            {
            case 34:
                result = await _repository.GetIdCardsByCchIdAsyncV2(cchId, employer);

                break;

            default:
                result = await _repository.GetIdCardsByCchIdAsync(cchId);

                break;
            }



            var cardBaseAddress = "CardBaseAddress".GetConfigurationValue();
            var timeout         = "TimeoutInMinutes".GetConfigurationValue();


            result.ForEach(r => {
                System.Diagnostics.Debug.Write(r.DetailText);
                //This whole section may have to be rethought depending on new data structures.
                //May require an interface break/ v2 in media as well.
                var cardToken = new CardToken()
                {
                    EmployerId = employer.Id,
                    CardDetail = JsonConvert.DeserializeObject <CardDetail>(r.DetailText),
                    Expires    = DateTime.UtcNow.AddMinutes(Convert.ToInt16(timeout))
                };

                cardToken.CardDetail.CardTypeFileName = r.CardType.FileName;
                cardToken.CardDetail.CardTypeId       = r.TypeId;
                cardToken.CardDetail.CardViewModeId   = r.ViewModeId;

                var jwt = JwtService.EncryptPayload(JsonConvert.SerializeObject(cardToken));

                r.Url           = string.Format("{0}/?tkn={1}|{2}", cardBaseAddress, employer.Id, jwt);
                r.SecurityToken = jwt;
                r.Detail        = JsonConvert.DeserializeObject <CardDetail>(r.DetailText);
            });

            return(result);
        }
コード例 #7
0
        private async Task <CustomerCardCreateRequest> BuildCardCreateRequestAsync()
        {
            CardToken cardToken =
                await cardTokenClient.CreateTestCardToken(User, "approved");

            return(new CustomerCardCreateRequest
            {
                Token = cardToken.Id,
            });
        }
コード例 #8
0
        private CustomerCardCreateRequest BuildCardCreateRequest()
        {
            CardToken cardToken = cardTokenClient.CreateTestCardToken(User, "approved")
                                  .ConfigureAwait(false).GetAwaiter().GetResult();

            return(new CustomerCardCreateRequest
            {
                Token = cardToken.Id,
            });
        }
コード例 #9
0
        private static CardUrlResult BuildResult(Employer employer, List <dynamic> cardResults)
        {
            var result = new CardUrlResult();

            result.Results = new List <CardResult>();
            var cardBaseAddress = "CardBaseAddress".GetConfigurationValue();

            cardResults.ForEach(cr => {
                var cardMemberData = new CardDetail();
                try {
                    cardMemberData = JsonConvert.DeserializeObject <CardDetail>(cr.MemberCard.CardMemberDataText);
                }
                catch { }

                var cardToken = new CardToken()
                {
                    EmployerId = employer.Id,
                    CardDetail = cardMemberData,
                    Expires    = DateTime.UtcNow.AddMinutes(Convert.ToInt16("TimeoutInMinutes".GetConfigurationValue()))
                };

                cardToken.CardDetail.CardTypeFileName = cr.CardType.FileName;
                cardToken.CardDetail.CardTypeId       = cr.MemberCard.CardTypeId;
                cardToken.CardDetail.CardViewModeId   = cr.CardViewMode.Id;

                var jwt = ClearCost.Security.JwtService.EncryptPayload(JsonConvert.SerializeObject(cardToken));

                var cardResult = new CardResult()
                {
                    CardName      = cr.CardTypeTranslation.CardTypeName,
                    ViewMode      = cr.CardViewMode.Name,
                    CardUrl       = string.Format("{0}/?tkn={1}|{2}", cardBaseAddress, employer.Id, jwt),
                    SecurityToken = jwt
                };

                result.Results.Add(cardResult);
            });

            return(result);
        }
コード例 #10
0
        void UnbundleIntent()
        {
            judoPaymentRef = Intent.GetStringExtra(JudoSDKManager.JUDO_PAYMENT_REF);

            judoAmount    = decimal.Parse(Intent.GetStringExtra(JudoSDKManager.JUDO_AMOUNT));
            judoId        = Intent.GetStringExtra(JudoSDKManager.JUDO_ID);
            judoCurrency  = Intent.GetStringExtra(JudoSDKManager.JUDO_CURRENCY);
            judoCardToken = JsonConvert.DeserializeObject <CardToken> (Intent.GetStringExtra(JudoSDKManager.JUDO_CARD_DETAILS));
            judoConsumer  = JsonConvert.DeserializeObject <Consumer> (Intent.GetStringExtra(JudoSDKManager.JUDO_CONSUMER));

            if (judoCardToken.CardType != null)
            {
                cv2EntryView.CurrentCard = judoCardToken.CardType;
            }
            if (judoPaymentRef == null)
            {
                throw new ArgumentException("JUDO_PAYMENT_REF must be supplied");
            }
            if (judoConsumer == null)
            {
                throw new ArgumentException("JUDO_CONSUMER must be supplied");
            }
            if (judoAmount == null)
            {
                throw new ArgumentException("JUDO_AMOUNT must be supplied");
            }
            if (judoId == null)
            {
                throw new ArgumentException("JUDO_ID must be supplied");
            }
            if (judoCurrency == null)
            {
                throw new ArgumentException("JUDO_CURRENCY must be supplied");
            }
            if (judoCardToken == null)
            {
                throw new ArgumentException("JUDO_CARD_DETAILS must be supplied");
            }
        }
コード例 #11
0
        private async Task <AdvancedPaymentCreateRequest> BuildCreateRequestAsync(
            bool capture, string paymentStatus)
        {
            CardToken cardToken =
                await cardTokenClient.CreateTestCardToken(User, paymentStatus);

            return(new AdvancedPaymentCreateRequest
            {
                ApplicationId = "59441713004005",
                Payments = new List <AdvancedPaymentSplitPaymentRequest>
                {
                    new AdvancedPaymentSplitPaymentRequest
                    {
                        PaymentMethodId = "master",
                        PaymentTypeId = "credit_card",
                        Token = cardToken.Id,
                        DateOfExpiration = DateTime.UtcNow.Add(TimeSpan.FromDays(120)),
                        TransactionAmount = 1000,
                        Installments = 1,
                        ProcessingMode = "aggregator",
                        Description = "Payment",
                        ExternalReference = "Test" + Guid.NewGuid().ToString(),
                        StatementDescriptor = "ADVPAYTEST",
                    },
                },
                Disbursements = new List <AdvancedPaymentDisbursementRequest>
                {
                    new AdvancedPaymentDisbursementRequest
                    {
                        Amount = 400,
                        ExternalReference = "Seller1" + Guid.NewGuid().ToString(),
                        CollectorId = 539673000,
                        ApplicationFee = 1,
                        MoneyReleaseDays = 5,
                    },
                    new AdvancedPaymentDisbursementRequest
                    {
                        Amount = 600,
                        ExternalReference = "Seller2" + Guid.NewGuid().ToString(),
                        CollectorId = 488656838,
                        ApplicationFee = 0.5m,
                    },
                },
                Payer = new AdvancedPaymentPayerRequest
                {
                    Email = Environment.GetEnvironmentVariable("USER_EMAIL"),
                    FirstName = "Test",
                    LastName = "User",
                    Address = new AddressRequest
                    {
                        ZipCode = "06233200",
                        StreetName = "Street",
                        StreetNumber = "120",
                    },
                    Identification = IdentificationHelper.GetIdentification(User),
                },
                ExternalReference = "ADV" + Guid.NewGuid().ToString(),
                Description = "Test",
                BinaryMode = false,
                Capture = capture,
                AdditionalInfo = new AdvancedPaymentAdditionalInfoRequest
                {
                    IpAddress = "127.0.0.1",
                    Payer = new AdvancedPaymentAdditionalInfoPayerRequest
                    {
                        FirstName = "Test",
                        LastName = "User",
                        RegistrationDate = DateTime.UtcNow.AddDays(-10),
                        Address = new AddressRequest
                        {
                            ZipCode = "06233200",
                            StreetName = "Street",
                            StreetNumber = "120",
                        },
                        Phone = new PhoneRequest
                        {
                            AreaCode = "11",
                            Number = "999999999",
                        },
                    },
                    Items = new List <AdvancedPaymentItemRequest>
                    {
                        new AdvancedPaymentItemRequest
                        {
                            Id = "123",
                            Title = "Title",
                            PictureUrl = "https://www.mercadopago.com/logomp3.gif",
                            Description = "Description",
                            CategoryId = "Category",
                            Quantity = 1,
                            UnitPrice = 1000,
                        },
                    },
                    Shipments = new AdvancedPaymentShipmentsRequest
                    {
                        ReceiverAddress = new AdvancedPaymentReceiverAddressRequest
                        {
                            ZipCode = "06233200",
                            StreetName = "Street",
                            StreetNumber = "120",
                            Floor = "1",
                            Apartment = "A",
                        },
                    },
                },
                Metadata = new Dictionary <string, object>
                {
                    ["key1"] = "value1",
                },
            });
        }
コード例 #12
0
        private static AdvancedPayment NewAdvancedPayment(bool capture)
        {
            var cardToken = new CardToken
            {
                CardId       = "8940397939",
                CustomerId   = "649457098-FybpOkG6zH8QRm",
                SecurityCode = "123",
            };

            cardToken.Save();

            return(new AdvancedPayment
            {
                ApplicationId = "59441713004005",
                Payments = new List <AdvPayDS.Payment>
                {
                    new AdvPayDS.Payment
                    {
                        PaymentMethodId = "master",
                        PaymentTypeId = "credit_card",
                        Token = cardToken.Id,
                        DateOfExpiration = DateTime.UtcNow.Add(TimeSpan.FromDays(120)),
                        TransactionAmount = 1000,
                        Installments = 1,
                        ProcessingMode = "aggregator",
                        Description = "Payment",
                        ExternalReference = "Test" + Guid.NewGuid().ToString(),
                        StatementDescriptor = "ADVPAYTEST"
                    },
                },
                Disbursements = new List <Disbursement>
                {
                    new Disbursement
                    {
                        Amount = 400,
                        ExternalReference = "Seller1" + Guid.NewGuid().ToString(),
                        CollectorId = 539673000,
                        ApplicationFee = 1,
                    },
                    new Disbursement
                    {
                        Amount = 600,
                        ExternalReference = "Seller2" + Guid.NewGuid().ToString(),
                        CollectorId = 488656838,
                        ApplicationFee = 0.5m,
                    },
                },
                Payer = new AdvPayDS.Payer
                {
                    Id = "649457098-FybpOkG6zH8QRm",
                    Type = "customer",
                    Email = "*****@*****.**",
                    FirstName = "Test",
                    LastName = "User",
                    Address = new AdvPayDS.Address
                    {
                        ZipCode = "06233200",
                        StreetName = "Street",
                        StreetNumber = "120",
                    },
                    Identification = new AdvPayDS.Identification
                    {
                        Type = "CPF",
                        Number = "19119119100",
                    },
                },
                ExternalReference = "ADV" + Guid.NewGuid().ToString(),
                Description = "Test",
                BinaryMode = false,
                Capture = capture,
                AdditionalInfo = new AdvPayDS.AdditionalInfo
                {
                    IpAddress = "127.0.0.1",
                    Payer = new AdvPayDS.AdditionalInfoPayer
                    {
                        FirstName = "Test",
                        LastName = "User",
                        RegistrationDate = DateTime.UtcNow.AddDays(-10),
                    },
                    Items = new List <AdvPayDS.Item>
                    {
                        new AdvPayDS.Item
                        {
                            Id = "123",
                            Title = "Title",
                            PictureUrl = "https://www.mercadopago.com/logomp3.gif",
                            Description = "Description",
                            CategoryId = "Category",
                            Quantity = 1,
                            UnitPrice = 1000
                        },
                    },
                    Shipments = new AdvPayDS.Shipments
                    {
                        ReceiverAddress = new AdvPayDS.ReceiverAddress
                        {
                            ZipCode = "06233200",
                            StreetName = "Street",
                            StreetNumber = "120",
                            Floor = "1",
                            Apartment = "A",
                        },
                    },
                },
            });
        }
コード例 #13
0
 public void SetCardDetails(CardToken cardToken)
 {
     SetLast4CCNosText(cardToken.CardLastFour);
     SetCardType(cardToken.CardType);
 }
コード例 #14
0
        private static Payment NewPayment(bool capture)
        {
            var cardToken = new CardToken
            {
                CardId       = "8940397939",
                CustomerId   = "649457098-FybpOkG6zH8QRm",
                SecurityCode = "123",
            };

            cardToken.Save();

            return(new Payment
            {
                Payer = new Payer
                {
                    Email = "*****@*****.**",
                    Entity_type = EntityType.individual,
                    Type = PayerType.customer,
                    Id = "649457098-FybpOkG6zH8QRm",
                    Identification = new Identification
                    {
                        Type = "CPF",
                        Number = "19119119100",
                    },
                    FirstName = "Test",
                    LastName = "User",
                },
                BinaryMode = false,
                Capture = capture,
                ExternalReference = Guid.NewGuid().ToString(),
                Description = "Payment description",
                Metadata = new JObject
                {
                    { "key1", JToken.FromObject("value1") },
                    { "key2", JToken.FromObject("value2") },
                },
                TransactionAmount = 10,
                //PaymentMethodId = "master",
                Token = cardToken.Id,
                Installments = 1,
                StatementDescriptor = "STAT-DESC",
                NotificationUrl = "https://seu-site.com.br/webhooks",
                CallbackUrl = "https://seu-site.com.br/callbackurl",
                AdditionalInfo = new AdditionalInfo
                {
                    IpAddress = "127.0.0.1",
                    Items = new List <Item>
                    {
                        new Item
                        {
                            Id = "SKU-1",
                            Title = "Product",
                            PictureUrl = "https://www.mercadopago.com/org-img/MLB/design/2015/m_pago/logos/mp_processado_02.png",
                            Description = "Product description",
                            CategoryId = "cat",
                            Quantity = 1,
                            UnitPrice = 10,
                        },
                    },
                    Payer = new AdditionalInfoPayer
                    {
                        FirstName = "Test",
                        LastName = "User",
                        RegistrationDate = DateTime.Now.AddDays(-30),
                        Phone = new Phone
                        {
                            AreaCode = "11",
                            Number = "999999999",
                        },
                        Address = new Address
                        {
                            ZipCode = "0600000",
                            StreetName = "Street",
                            StreetNumber = 123,
                        },
                    },
                    Shipments = new Shipment
                    {
                        ReceiverAddress = new ReceiverAddress
                        {
                            Zip_code = "0600000",
                            StreetName = "Street",
                            StreetNumber = 123,
                            Apartment = "23",
                            Floor = "First",
                        },
                    },
                },
            });
        }
コード例 #15
0
        public ServiceResponse <CardToken> Create(CardToken cardToken)
        {
            var request = new CreateCardTokenRequest(Merchant, Environment);

            return(request.Execute(cardToken));
        }
コード例 #16
0
        private async void Approve_Click(object sender, RoutedEventArgs e)
        {
            if (!IsAllFieldsFilled())
            {
                MessageBox.Show(AppResources.Msg_AllFieldsRequired, AppResources.MsgHdr_AllFieldsRequired, MessageBoxButton.OK);
                return;
            }

            gr_busy.Visibility = Visibility.Visible;

            var card = new Card
            {
                Number   = CardNumber.Replace(" ", ""),
                ExpMonth = ExpMonth,
                ExpYear  = ExpYear,
                Cvc      = CVC,
                Name     = NameOnCard
            };

            if (IsAddressRequired)
            {
                card.AddressLine1 = BillingAddress;
                card.AddressZip   = ZipCode;
                card.AddressState = State;
            }

            var api = new PaymentsApi();

            try
            {
                cardToken = await api.CreateCardToken(card, publicKey);
            }
            catch (Exception ex)
            {
                RaiseEventHandler(false, ex);
                return;
            }

            //TODO: just for testing, remove befor rls
            MessageBox.Show(await Task.Factory.StartNew(() => JsonConvert.SerializeObject(cardToken)), "response from simplify", MessageBoxButton.OK);

            var request = new PayNowRequest
            {
                TokenId  = cardToken.Id,
                Amount   = Amount,
                ItemName = ItemName
            };

            var baseLength  = callbackUrl.LastIndexOf('/') + 1;
            var baseAddress = callbackUrl.Substring(0, baseLength);
            var requestUri  = callbackUrl.Substring(baseLength);

            var settings = new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            };
            var requestBody = await Task.Factory.StartNew(() => JsonConvert.SerializeObject(request, settings));

            try
            {
                using (var client = new HttpClient())
                {
                    client.Timeout     = new TimeSpan(0, 0, TIMEOUT);
                    client.BaseAddress = new Uri(baseAddress);
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.UserAgent.Clear();
                    client.DefaultRequestHeaders.UserAgent.ParseAdd("Simplify-PayNowUC-for-WP");
                    using (var response = await client.PostAsync(requestUri, new StringContent(requestBody, Encoding.UTF8, "application/json")))
                    {
                        RaiseEventHandler(true, response);
                    }
                }
            }
            catch (TaskCanceledException)
            {
                RaiseEventHandler(false, new TimeoutException());
            }
            catch (Exception ex)
            {
                RaiseEventHandler(false, ex);
            }
        }
コード例 #17
0
        private async Task <PaymentCreateRequest> BuildCreateRequestAsync(
            bool capture, string paymentStatus)
        {
            CardToken cardToken =
                await cardTokenClient.CreateTestCardToken(User, paymentStatus);

            return(new PaymentCreateRequest
            {
                Payer = new PaymentPayerRequest
                {
                    Email = Environment.GetEnvironmentVariable("USER_EMAIL"),
                    EntityType = "individual",
                    Type = "customer",
                    Identification = IdentificationHelper.GetIdentification(User),
                    FirstName = "Test",
                    LastName = "User",
                },
                BinaryMode = false,
                Capture = capture,
                ExternalReference = Guid.NewGuid().ToString(),
                Description = "Payment description",
                Metadata = new Dictionary <string, object>
                {
                    ["key1"] = "value1",
                    ["key2"] = "value2",
                },
                TransactionAmount = 10,
                PaymentMethodId = "master",
                Token = cardToken.Id,
                Installments = 1,
                StatementDescriptor = "STAT-DESC",
                NotificationUrl = "https://seu-site.com.br/webhooks",
                CallbackUrl = "https://seu-site.com.br/callbackurl",
                ProcessingMode = "aggregator",
                DateOfExpiration = DateTime.Now.AddDays(30),
                AdditionalInfo = new PaymentAdditionalInfoRequest
                {
                    IpAddress = "127.0.0.1",
                    Items = new List <PaymentItemRequest>
                    {
                        new PaymentItemRequest
                        {
                            Id = "SKU-1",
                            Title = "Product",
                            PictureUrl = "https://www.mercadopago.com/org-img/MLB/design/2015/m_pago/logos/mp_processado_02.png",
                            Description = "Product description",
                            CategoryId = "cat",
                            Quantity = 1,
                            UnitPrice = 10,
                            Warranty = false,
                            EventDate = DateTime.Now,
                            CategoryDescriptor = new PaymentCategoryDescriptorRequest
                            {
                                Passenger = new PaymentPassengerRequest
                                {
                                    Identification = IdentificationHelper.GetIdentification(User),
                                    FirstName = "Test",
                                    LastName = "User",
                                },
                                Route = new PaymentRouteRequest
                                {
                                    ArrivalDateTime = DateTime.Now.AddDays(30),
                                    Company = "company",
                                    Departure = "derpature",
                                    DepartureDateTime = DateTime.Now.AddDays(30),
                                    Destination = "destination",
                                },
                            },
                        },
                    },
                    Payer = new PaymentAdditionalInfoPayerRequest
                    {
                        FirstName = "Test",
                        LastName = "User",
                        RegistrationDate = DateTime.Now.AddDays(-30),
                        Phone = new PhoneRequest
                        {
                            AreaCode = "11",
                            Number = "999999999",
                        },
                        Address = new AddressRequest
                        {
                            ZipCode = "0600000",
                            StreetName = "Street",
                            StreetNumber = "123",
                        },
                        AuthenticationType = "None",
                        IsFirstPurchaseOnline = false,
                        IsPrimeUser = false,
                        LastPurchase = DateTime.Now.AddDays(-10),
                    },
                    Shipments = new PaymentShipmentsRequest
                    {
                        ReceiverAddress = new PaymentReceiverAddressRequest
                        {
                            ZipCode = "0600000",
                            StreetName = "Street",
                            StreetNumber = "123",
                            Apartment = "23",
                            Floor = "First",
                            CityName = "City",
                            StateName = "State",
                        },
                        ExpressShipment = false,
                        LocalPickup = false,
                    },
                },
            });
        }