Beispiel #1
0
        /// <summary>
        /// Adds a new customer to the database.
        /// </summary>
        /// <param name="customer">Customer.</param>
        /// <returns>Number of records affected. If all worked well, then should be 1.</returns>
        public int AddCustomer(CustomerModel customer)
        {
            CustomerRequest request = new CustomerRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.Action = "Create";
            request.Customer = Mapper.ToDataTransferObject(customer);

            CustomerResponse response = null;
            SafeProxy.DoAction<ActionServiceClient>(Service, client =>
                { response = client.SetCustomers(request); });

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("AddCustomer: RequestId and CorrelationId do not match.");

            if (response.Acknowledge != AcknowledgeType.Success)
                throw new ApplicationException(response.Message);

            // Update version & new customerId
            customer.Version = response.Customer.Version;
            customer.CustomerId = response.Customer.CustomerId;

            return response.RowsAffected;
        }
        public void Customer()
        {
            CustomerRequest request = new CustomerRequest
            {
                PaymentMethodNonce = Nonce.Coinbase
            };
            Result<Customer> customerResult = gateway.Customer.Create(request);
            Assert.IsTrue(customerResult.IsSuccess());


            var customer = gateway.Customer.Find(customerResult.Target.Id);
            Assert.AreEqual(1, customer.CoinbaseAccounts.Length);

            CoinbaseAccount account = customer.CoinbaseAccounts[0];

            Assert.AreNotEqual("", account.UserEmail);
            Assert.IsNotNull(account.UserEmail);

            Assert.AreNotEqual("", account.UserName);
            Assert.IsNotNull(account.UserName);

            Assert.AreNotEqual("", account.UserId);
            Assert.IsNotNull(account.UserId);

            Assert.AreEqual(1, customer.PaymentMethods.Length);
            Assert.AreEqual(customer.PaymentMethods[0], customer.CoinbaseAccounts[0]);
        }
        public void ToXml_Includes_DeviceSessionId()
        {
            var request = new CustomerRequest()
            {
                CreditCard = new CreditCardRequest()
                {
                    DeviceSessionId = "my_dsid",
                    FraudMerchantId = "my_fmid"
                }
            };

            Assert.IsTrue(request.ToXml().Contains("my_dsid"));
            Assert.IsTrue(request.ToXml().Contains("my_fmid"));
        }
        public void ToXml_Includes_DeviceData()
        {
            var request = new CustomerRequest()
            {
                CreditCard = new CreditCardRequest()
                {
                    DeviceData = "{\"device_session_id\":\"my_dsid\", \"fraud_merchant_id\":\"my_fmid\"}"
                }
            };

            Assert.IsTrue(request.ToXml().Contains("device_session_id"));
            Assert.IsTrue(request.ToXml().Contains("my_dsid"));
            Assert.IsTrue(request.ToXml().Contains("fraud_merchant_id"));
            Assert.IsTrue(request.ToXml().Contains("my_fmid"));
        }
        public Customer GetCustomer(int customerId)
        {
            CustomerRequest request = new CustomerRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.LoadOptions = new string[] { "Customer" };
            request.Criteria = new CustomerCriteria { CustomerId = customerId };

            CustomerResponse response = ActionServiceClient.GetCustomers(request);

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("GetCustomers: RequestId and CorrelationId do not match.");

            return response.Customer;
        }
        public void AddCustomer(Customer customer)
        {
            CustomerRequest request = new CustomerRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.Action = "Create";
            request.Customer = customer;

            CustomerResponse response = ActionServiceClient.SetCustomers(request);

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("AddCustomer: RequestId and CorrelationId do not match.");

            // These messages are for public consumption. Includes validation errors.
            if (response.Acknowledge == AcknowledgeType.Failure)
                throw new ApplicationException(response.Message);
        }
        public int DeleteCustomer(int customerId)
        {
            CustomerRequest request = new CustomerRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.Action = "Delete";
            request.Criteria = new CustomerCriteria { CustomerId = customerId };

            CustomerResponse response = ActionServiceClient.SetCustomers(request);

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("DeleteCustomer: RequestId and CorrelationId do not match.");

            if (response.Acknowledge == AcknowledgeType.Failure)
                throw new ApplicationException(response.Message);

            return response.RowsAffected;
        }
        public void CreateCustomerFromTransparentRedirect()
        {
            CustomerRequest trParams = new CustomerRequest
            {
                FirstName = "John"
            };

            CustomerRequest request = new CustomerRequest
            {
                LastName = "Doe"
            };

            string queryString = TestHelper.QueryStringForTR(trParams, request, gateway.TransparentRedirect.Url, service);
            Result<Customer> result = gateway.TransparentRedirect.ConfirmCustomer(queryString);
            Assert.IsTrue(result.IsSuccess());
            Customer customer = result.Target;

            Assert.AreEqual("John", customer.FirstName);
            Assert.AreEqual("Doe", customer.LastName);
        }
Beispiel #9
0
        public void Can_Create_A_Customer()
        {
            //// Arrange
            var gateway = this.BraintreeProviderSettings.AsBraintreeGateway();

            var customerRequest = new CustomerRequest()
                                      {
                                          CustomerId = this.CustomerKey.ToString(),
                                          FirstName = "Rusty",
                                          LastName = "Swayne",
                                          Company = "Mindfly",
                                          Email = "*****@*****.**",
                                          Website = "http://www.mindfly.com"
                                      };

            //// Act
            var result = gateway.Customer.Create(customerRequest);

            //// Assert
            Assert.IsTrue(result.IsSuccess());
        }
        public void Find_RaisesNotFoundErrorForCreditCardToken()
        {
            var createRequest = new CustomerRequest
            {
                CreditCard = new CreditCardRequest
                {
                    Number = "5555555555554444",
                    ExpirationDate = "05/12",
                    CVV = "123",
                }
            };

            var resp = gateway.Customer.Create(createRequest);
            Assert.IsNotNull(resp);
            Customer customer = resp.Target;
            Assert.IsNotNull(customer, resp.Message);
            try {
                gateway.PayPalAccount.Find(customer.CreditCards[0].Token);
                Assert.Fail("Should throw NotFoundException");
            } catch (NotFoundException) {}
        }
        public void Setup()
        {
            gateway = new BraintreeGateway
            {
                //Environment = Environment.DEVELOPMENT,
                //MerchantId = "integration_merchant_id",
                //PublicKey = "integration_public_key",
                //PrivateKey = "integration_private_key"
            };

            CustomerRequest request = new CustomerRequest
            {
                CreditCard = new CreditCardRequest
                {
                    CardholderName = "Fred Jones",
                    Number = "5555555555554444",
                    ExpirationDate = "05/12"
                }
            };

            customer = gateway.Customer.Create(request).Target;
            creditCard = customer.CreditCards[0];
        }
Beispiel #12
0
        public bool UpdateStoreInfo(StoreDetailModels model, ref string msg)
        {
            try
            {
                CustomerRequest paraBody = new CustomerRequest();
                paraBody.StoreInfo   = model;
                paraBody.CreatedUser = model.CreateUser;
                NSLog.Logger.Info("UpdateStoreInfo Request: ", paraBody);

                //====================
                var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.customerAPIEditStore, null, paraBody);
                if (result != null)
                {
                    if (result.Success)
                    {
                        return(true);
                    }
                    else
                    {
                        msg = result.Message;
                        NSLog.Logger.Info("UpdateStoreInfo", result.Message);
                        return(false);
                    }
                }
                else
                {
                    NSLog.Logger.Info("UpdateStoreInfo", result);
                    return(false);
                }
            }
            catch (Exception e)
            {
                NSLog.Logger.Error("UpdateStoreInfo", e);
                return(false);
            }
        }
Beispiel #13
0
        public void UpdateCustomer(Customer customer)
        {
            CustomerRequest request = new CustomerRequest();

            request.RequestId   = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag   = ClientTag;

            request.Action   = "Update";
            request.Customer = customer;

            CustomerResponse response = ActionServiceClient.SetCustomers(request);

            if (request.RequestId != response.CorrelationId)
            {
                throw new ApplicationException("UpdateCustomer: RequestId and CorrelationId do not match.");
            }

            // These messages are for public consumption. Includes validation errors.
            if (response.Acknowledge == AcknowledgeType.Failure)
            {
                throw new ApplicationException(response.Message);
            }
        }
        public void CardTypeIndicators()
        {
            string name          = Guid.NewGuid().ToString("n");
            var    createRequest = new CustomerRequest
            {
                CreditCard = new CreditCardRequest
                {
                    CardholderName = name,
                    Number         = TestUtil.CreditCardNumbers.CardTypeIndicators.Unknown,
                    ExpirationDate = "05/12",
                    Options        = new CreditCardOptionsRequest
                    {
                        VerifyCard = true
                    }
                }
            };

            gateway.Customer.Create(createRequest);

            CreditCardVerificationSearchRequest searchRequest = new CreditCardVerificationSearchRequest().
                                                                CreditCardCardholderName.Is(name);

            ResourceCollection <CreditCardVerification> collection = gateway.CreditCardVerification.Search(searchRequest);

            CreditCardVerification verification = collection.FirstItem;

            Assert.AreEqual(verification.CreditCard.Prepaid, Braintree.CreditCardPrepaid.UNKNOWN);
            Assert.AreEqual(verification.CreditCard.Debit, Braintree.CreditCardDebit.UNKNOWN);
            Assert.AreEqual(verification.CreditCard.DurbinRegulated, Braintree.CreditCardDurbinRegulated.UNKNOWN);
            Assert.AreEqual(verification.CreditCard.Commercial, Braintree.CreditCardCommercial.UNKNOWN);
            Assert.AreEqual(verification.CreditCard.Healthcare, Braintree.CreditCardHealthcare.UNKNOWN);
            Assert.AreEqual(verification.CreditCard.Payroll, Braintree.CreditCardPayroll.UNKNOWN);
            Assert.AreEqual(verification.CreditCard.CountryOfIssuance, Braintree.CreditCard.CountryOfIssuanceUnknown);
            Assert.AreEqual(verification.CreditCard.IssuingBank, Braintree.CreditCard.IssuingBankUnknown);
            Assert.AreEqual(verification.CreditCard.ProductId, Braintree.CreditCard.ProductIdUnknown);
        }
Beispiel #15
0
        private CustomerServiceResponse UpdateCustomer(CustomerRequest request)
        {
            var response = new CustomerServiceResponse();

            using (var context = customerContextFactory.CreateDbContext())
            {
                var customerToUpdate = context.Customers.SingleOrDefault(customer => customer.Id == request.CustomerInfo.Id);

                if (customerToUpdate == null)
                {
                    response.Success   = false;
                    response.Customers = new CustomerInfo[] { request.CustomerInfo };
                    return(response);
                }

                if (!string.IsNullOrEmpty(request.CustomerInfo.Name))
                {
                    customerToUpdate.Name = request.CustomerInfo.Name;
                }
                if (request.CustomerInfo.Age.HasValue)
                {
                    customerToUpdate.Age = request.CustomerInfo.Age;
                }
                if (request.CustomerInfo.LikesDisney.HasValue)
                {
                    customerToUpdate.LikesDisney = request.CustomerInfo.LikesDisney;
                }

                context.Customers.Update(customerToUpdate);
                context.SaveChanges();

                response.Success   = true;
                response.Customers = new CustomerInfo[] { customerToUpdate };
            }
            return(response);
        }
Beispiel #16
0
        public void Update_Success()
        {
            CustomerRequest request         = BuildCreateRequest();
            Customer        createdCustomer = client.Create(request);

            Thread.Sleep(1000);

            try
            {
                var updateRequest = new CustomerRequest
                {
                    FirstName = "New name",
                };
                Customer customer =
                    client.Update(createdCustomer.Id, updateRequest);

                Assert.NotNull(customer);
                Assert.Equal(updateRequest.FirstName, customer.FirstName);
            }
            finally
            {
                client.Delete(createdCustomer.Id);
            }
        }
Beispiel #17
0
        public async Task UpdateAsync_Success()
        {
            CustomerRequest request         = BuildCreateRequest();
            Customer        createdCustomer = await client.CreateAsync(request);

            await Task.Delay(1000);

            try
            {
                var updateRequest = new CustomerRequest
                {
                    FirstName = "New name",
                };
                Customer customer =
                    await client.UpdateAsync(createdCustomer.Id, updateRequest);

                Assert.NotNull(customer);
                Assert.Equal(updateRequest.FirstName, customer.FirstName);
            }
            finally
            {
                await client.DeleteAsync(createdCustomer.Id);
            }
        }
Beispiel #18
0
        public override async Task <CustomerCollectionResponse> GetCustomers(Empty request, ServerCallContext context)
        {
            var result = new CustomerCollectionResponse();

            try
            {
                var costumers = await _costumerRepository.GetAll();

                foreach (var costumer in costumers)
                {
                    costumer.CaesarDecipherObject(_keyCaesarEncipher);

                    var current = new CustomerRequest();
                    current.IdNumber   = costumer.IdNumber;
                    current.Address    = costumer.Address;
                    current.BirthDate  = costumer.BirthDate.ToString();
                    current.City       = costumer.City;
                    current.Country    = costumer.Country;
                    current.Email      = costumer.Email;
                    current.FirsName   = costumer.FirsName;
                    current.IdNumber   = costumer.IdNumber;
                    current.LastName   = costumer.LastName;
                    current.MiddleName = costumer.MiddleName;
                    current.Movil      = costumer.Movil;
                    current.Phone      = costumer.Phone;

                    result.Customers.Add(current);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"ERROR: GETALL Costumer");
                result.Message = $"ERROR: GETALL Costumer";
            }
            return(result);
        }
Beispiel #19
0
        private CustomerServiceResponse DeleteCustomer(CustomerRequest request)
        {
            var response = new CustomerServiceResponse();

            using (var context = customerContextFactory.CreateDbContext())
            {
                var customer = context.Customers.SingleOrDefault(user => user.Id == request.CustomerInfo.Id);

                if (customer != null)
                {
                    context.Customers.Remove(customer);
                    context.SaveChanges();

                    response.Success   = true;
                    response.Customers = new CustomerInfo[] { customer };
                }
                else
                {
                    response.Success   = false;
                    response.Customers = new CustomerInfo[] { request.CustomerInfo };
                }
            }
            return(response);
        }
Beispiel #20
0
        public void Update_UpdatesCustomerAndNestedValues()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName = "Old First",
                LastName = "Old Last",
                CreditCard = new CreditCardRequest()
                {
                    Number = "4111111111111111",
                    ExpirationDate = "10/10",
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        PostalCode = "11111"
                    }
                }
            };

            Customer customer = gateway.Customer.Create(createRequest).Target;
            CreditCard creditCard = customer.CreditCards[0];
            Address address = creditCard.BillingAddress;

            var updateRequest = new CustomerRequest()
            {
                FirstName = "New First",
                LastName = "New Last",
                CreditCard = new CreditCardRequest()
                {
                    ExpirationDate = "12/12",
                    Options = new CreditCardOptionsRequest()
                    {
                        UpdateExistingToken = creditCard.Token
                    },
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        PostalCode = "44444",
                        CountryName = "Chad",
                        CountryCodeAlpha2 = "TD",
                        CountryCodeAlpha3 = "TCD",
                        CountryCodeNumeric = "148",
                        Options = new CreditCardAddressOptionsRequest()
                        {
                            UpdateExisting = true
                        }
                    }
                }
            };

            Customer updatedCustomer = gateway.Customer.Update(customer.Id, updateRequest).Target;
            CreditCard updatedCreditCard = gateway.CreditCard.Find(creditCard.Token);
            Address updatedAddress = gateway.Address.Find(customer.Id, address.Id);

            Assert.AreEqual("New First", updatedCustomer.FirstName);
            Assert.AreEqual("New Last", updatedCustomer.LastName);
            Assert.AreEqual("12/2012", updatedCreditCard.ExpirationDate);
            Assert.AreEqual("44444", updatedAddress.PostalCode);
            Assert.AreEqual("Chad", updatedAddress.CountryName);
            Assert.AreEqual("TD", updatedAddress.CountryCodeAlpha2);
            Assert.AreEqual("TCD", updatedAddress.CountryCodeAlpha3);
            Assert.AreEqual("148", updatedAddress.CountryCodeNumeric);
        }
Beispiel #21
0
        public void Update_UpdatesCustomerAndNestedValuesViaTr()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName = "Old First",
                LastName = "Old Last",
                CreditCard = new CreditCardRequest()
                {
                    Number = "4111111111111111",
                    ExpirationDate = "10/10",
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        PostalCode = "11111"
                    }
                }
            };

            Customer customer = gateway.Customer.Create(createRequest).Target;
            CreditCard creditCard = customer.CreditCards[0];
            Address address = creditCard.BillingAddress;

            var trParams = new CustomerRequest()
            {
                CustomerId = customer.Id,
                FirstName = "New First",
                LastName = "New Last",
                CreditCard = new CreditCardRequest()
                {
                    ExpirationDate = "12/12",
                    Options = new CreditCardOptionsRequest()
                    {
                        UpdateExistingToken = creditCard.Token
                    },
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        PostalCode = "44444",
                        CountryName = "Chad",
                        CountryCodeAlpha2 = "TD",
                        CountryCodeAlpha3 = "TCD",
                        CountryCodeNumeric = "148",
                        Options = new CreditCardAddressOptionsRequest()
                        {
                            UpdateExisting = true
                        }
                    }
                }
            };

            string queryString = TestHelper.QueryStringForTR(trParams, new CustomerRequest(), gateway.Customer.TransparentRedirectURLForUpdate(), service);
            Customer updatedCustomer = gateway.Customer.ConfirmTransparentRedirect(queryString).Target;
            CreditCard updatedCreditCard = gateway.CreditCard.Find(creditCard.Token);

            Address updatedAddress = gateway.Address.Find(customer.Id, address.Id);

            Assert.AreEqual("New First", updatedCustomer.FirstName);
            Assert.AreEqual("New Last", updatedCustomer.LastName);
            Assert.AreEqual("12/2012", updatedCreditCard.ExpirationDate);
            Assert.AreEqual("44444", updatedAddress.PostalCode);
            Assert.AreEqual("Chad", updatedAddress.CountryName);
            Assert.AreEqual("TD", updatedAddress.CountryCodeAlpha2);
            Assert.AreEqual("TCD", updatedAddress.CountryCodeAlpha3);
            Assert.AreEqual("148", updatedAddress.CountryCodeNumeric);
        }
Beispiel #22
0
        public void ConfirmTransparentRedirect_CreatesNestedElementsAndCustomFields()
        {
            CustomerRequest trParams = new CustomerRequest();

            CustomerRequest request = new CustomerRequest
            {
                FirstName = "John",
                LastName = "Doe",
                CreditCard = new CreditCardRequest
                {
                    Number = SandboxValues.CreditCardNumber.VISA,
                    CardholderName = "John Doe",
                    ExpirationDate = "05/10",
                    BillingAddress = new CreditCardAddressRequest
                    {
                        CountryName = "Mexico",
                        CountryCodeAlpha2 = "MX",
                        CountryCodeAlpha3 = "MEX",
                        CountryCodeNumeric = "484"
                    }
                },
                CustomFields = new Dictionary<string, string>
                {
                    { "store_me", "a custom value" }
                }
            };

            string queryString = TestHelper.QueryStringForTR(trParams, request, gateway.Customer.TransparentRedirectURLForCreate(), service);
            Result<Customer> result = gateway.Customer.ConfirmTransparentRedirect(queryString);
            Assert.IsTrue(result.IsSuccess());
            Customer customer = result.Target;
            Assert.AreEqual("John", customer.FirstName);
            Assert.AreEqual("Doe", customer.LastName);
            Assert.AreEqual("John Doe", customer.CreditCards[0].CardholderName);
            Assert.AreEqual("a custom value", customer.CustomFields["store_me"]);

            Address address = customer.CreditCards[0].BillingAddress;
            Assert.AreEqual("Mexico", address.CountryName);
            Assert.AreEqual("MX", address.CountryCodeAlpha2);
            Assert.AreEqual("MEX", address.CountryCodeAlpha3);
            Assert.AreEqual("484", address.CountryCodeNumeric);
        }
Beispiel #23
0
        public void Create_WithVenmoSdkPaymentMethodCode()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName = "Michael",
                LastName = "Angelo",
                CreditCard = new CreditCardRequest()
                {
                    VenmoSdkPaymentMethodCode = SandboxValues.VenmoSdk.VISA_PAYMENT_METHOD_CODE
                }
            };

            Customer customer = gateway.Customer.Create(createRequest).Target;
            Assert.AreEqual("Michael", customer.FirstName);
            Assert.AreEqual("Angelo", customer.LastName);
            Assert.AreEqual("411111", customer.CreditCards[0].Bin);
            Assert.AreEqual("1111", customer.CreditCards[0].LastFour);
        }
Beispiel #24
0
        public void Create_CreateCustomerUsingAccessToken()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName = "Michael",
                LastName = "Angelo",
                Company = "Some Company",
                Email = "*****@*****.**",
                Phone = "312.555.1111",
                Fax = "312.555.1112",
                Website = "www.example.com",
            };

            //BraintreeGateway oauthGateway = new BraintreeGateway(
            //    "client_id$development$integration_client_id",
            //    "client_secret$development$integration_client_secret"
            //);
            //string code = OAuthTestHelper.CreateGrant(oauthGateway, "integration_merchant_id", "read_write");
            BraintreeGateway oauthGateway = new BraintreeGateway(
                "client_id$" + Environment.CONFIGURED.EnvironmentName + "$integration_client_id",
                "client_secret$" + Environment.CONFIGURED.EnvironmentName + "$integration_client_secret"
            );            
            string code = OAuthTestHelper.CreateGrant(oauthGateway, gateway.Configuration.MerchantId, "read_write");

            ResultImpl<OAuthCredentials> accessTokenResult = oauthGateway.OAuth.CreateTokenFromCode(new OAuthCredentialsRequest {
                Code = code,
                Scope = "read_write"
            });

            gateway = new BraintreeGateway(accessTokenResult.Target.AccessToken);

            Customer customer = gateway.Customer.Create(createRequest).Target;
            Assert.AreEqual("Michael", customer.FirstName);
            Assert.AreEqual("Angelo", customer.LastName);
            Assert.AreEqual("Some Company", customer.Company);
            Assert.AreEqual("*****@*****.**", customer.Email);
            Assert.AreEqual("312.555.1111", customer.Phone);
            Assert.AreEqual("312.555.1112", customer.Fax);
            Assert.AreEqual("www.example.com", customer.Website);
            Assert.AreEqual(DateTime.Now.Year, customer.CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.UpdatedAt.Value.Year);
        }
Beispiel #25
0
        public void Create_withErrorsOnCountry()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName = "Michael",
                LastName = "Angelo",
                Company = "Some Company",
                Email = "*****@*****.**",
                Phone = "312.555.1111",
                Fax = "312.555.1112",
                Website = "www.example.com",
                CreditCard = new CreditCardRequest()
                {
                    Number = "5555555555554444",
                    ExpirationDate = "05/22",
                    BillingAddress = new CreditCardAddressRequest
                    {
                        CountryName = "zzzzzz",
                        CountryCodeAlpha2 = "zz",
                        CountryCodeAlpha3 = "zzz",
                        CountryCodeNumeric = "000"
                    }
                }
            };

            Result<Customer> result = gateway.Customer.Create(createRequest);

            Assert.IsFalse(result.IsSuccess());

            Assert.AreEqual(
                ValidationErrorCode.ADDRESS_COUNTRY_NAME_IS_NOT_ACCEPTED,
                result.Errors.ForObject("Customer").ForObject("CreditCard").ForObject("BillingAddress").OnField("CountryName")[0].Code
            );
            Assert.AreEqual(
                ValidationErrorCode.ADDRESS_COUNTRY_CODE_ALPHA2_IS_NOT_ACCEPTED,
                result.Errors.ForObject("Customer").ForObject("CreditCard").ForObject("BillingAddress").OnField("CountryCodeAlpha2")[0].Code
            );
            Assert.AreEqual(
                ValidationErrorCode.ADDRESS_COUNTRY_CODE_ALPHA3_IS_NOT_ACCEPTED,
                result.Errors.ForObject("Customer").ForObject("CreditCard").ForObject("BillingAddress").OnField("CountryCodeAlpha3")[0].Code
            );
            Assert.AreEqual(
                ValidationErrorCode.ADDRESS_COUNTRY_CODE_NUMERIC_IS_NOT_ACCEPTED,
                result.Errors.ForObject("Customer").ForObject("CreditCard").ForObject("BillingAddress").OnField("CountryCodeNumeric")[0].Code
            );
        }
Beispiel #26
0
        public void Search_OnCreatedAt()
        {
            CustomerRequest request = new CustomerRequest();

            Customer customer = gateway.Customer.Create(request).Target;

            DateTime createdAt = customer.CreatedAt.Value;
            DateTime threeHoursEarlier = createdAt.AddHours(-3);
            DateTime oneHourEarlier = createdAt.AddHours(-1);
            DateTime oneHourLater = createdAt.AddHours(1);

            CustomerSearchRequest searchRequest = new CustomerSearchRequest().
                Id.Is(customer.Id).
                CreatedAt.Between(oneHourEarlier, oneHourLater);

            Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount);

            searchRequest = new CustomerSearchRequest().
                Id.Is(customer.Id).
                CreatedAt.GreaterThanOrEqualTo(oneHourEarlier);

            Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount);

            searchRequest = new CustomerSearchRequest().
                Id.Is(customer.Id).
                CreatedAt.LessThanOrEqualTo(oneHourLater);

            Assert.AreEqual(1, gateway.Customer.Search(searchRequest).MaximumCount);

            searchRequest = new CustomerSearchRequest().
                Id.Is(customer.Id).
                CreatedAt.Between(threeHoursEarlier, oneHourEarlier);

            Assert.AreEqual(0, gateway.Customer.Search(searchRequest).MaximumCount);
        }
Beispiel #27
0
 public async Task <CustomerResponse> CreateCustomerAsync(CustomerRequest request)
 {
     return(await this.PostAsync <CustomerResponse>($"customers", request).ConfigureAwait(false));
 }
Beispiel #28
0
 public Task <CustomerResponse> Update(Guid id, CustomerRequest model) => _customerRepository.Update(id, model);
Beispiel #29
0
 public Task <CustomerResponse> Create(CustomerRequest model) => _customerRepository.Create(model);
        public string proceedPayment(string nonce, string package, User u, int trial)
        {
            string nonceFromTheClient = nonce;

            if (u.Company_Name == null)
            {
                u.Company_Name = "Not Given";
            }
            var request = new CustomerRequest
            {
                FirstName = u.Name,
                Company   = u.Company_Name,
                Email     = u.Email,
                Phone     = u.Phone,
                Website   = u.Website_Address,
            };
            Result <Customer> result = gateway.Customer.Create(request);

            if (result.IsSuccess())
            {
                string customerId = result.Target.Id;
                var    request1   = new PaymentMethodRequest
                {
                    CustomerId         = customerId,
                    PaymentMethodNonce = nonce,
                    Options            = new PaymentMethodOptionsRequest
                    {
                        VerifyCard = true
                    }
                };

                Result <PaymentMethod> result1 = gateway.PaymentMethod.Create(request1);
                Result <Subscription>  result2;
                if (result1.IsSuccess())
                {
                    if (trial != 0)
                    {
                        var request2 = new SubscriptionRequest
                        {
                            PaymentMethodToken = result1.Target.Token,
                            PlanId             = package,
                            Options            = new SubscriptionOptionsRequest
                            {
                                StartImmediately = false
                            },
                            FirstBillingDate = DateTime.Now.AddMonths(trial)
                        };
                        result2 = gateway.Subscription.Create(request2);
                    }
                    else
                    {
                        var request2 = new SubscriptionRequest
                        {
                            PaymentMethodToken = result1.Target.Token,
                            PlanId             = package,
                            Options            = new SubscriptionOptionsRequest
                            {
                                StartImmediately = true
                            },
                        };
                        result2 = gateway.Subscription.Create(request2);
                    }
                    if (result2.IsSuccess())
                    {
                        string Subscription_Id = result2.Target.Id;
                        return(Subscription_Id);
                    }
                    else
                    {
                        //Please check your funds.
                        return("-3");
                    }
                }
                else
                {
                    //Your card is valid or not.
                    return("-2");
                }
            }
            else
            {
                // Requirements of customer for Braintree is not complete
                return("-1");
            }
        }
 public string GetIDbyRequest(CustomerRequest request) => request.IDuser;
Beispiel #32
0
 public bool UpdateCustomer(CustomerRequest request)
 {
     return(true);
 }
Beispiel #33
0
 public bool InsertCustomer(CustomerRequest request)
 {
     return(true);
 }
Beispiel #34
0
        public void Update_AcceptsPaymentMethodNonce()
        {
            var create = new CustomerRequest
            {
                CreditCard = new CreditCardRequest
                {
                    Number = "4111111111111111",
                    ExpirationDate = "10/18",
                }
            };
            var customer = gateway.Customer.Create(create).Target;

            var update = new CustomerRequest
            {
                PaymentMethodNonce = Nonce.PayPalFuturePayment
            };
            var updatedCustomer = gateway.Customer.Update(customer.Id, update).Target;

            Assert.AreEqual(1, updatedCustomer.PayPalAccounts.Length);
            Assert.AreEqual(1, updatedCustomer.CreditCards.Length);
            Assert.AreEqual(2, updatedCustomer.PaymentMethods.Length);
        }
Beispiel #35
0
 public void Find_IncludesApplePayCardsInPaymentMethods()
 {
     var createRequest = new CustomerRequest
     {
         PaymentMethodNonce = Nonce.ApplePayAmex
     };
     Customer createdCustomer = gateway.Customer.Create(createRequest).Target;
     Customer customer = gateway.Customer.Find(createdCustomer.Id);
     Assert.IsNotNull(customer.ApplePayCards);
     Assert.IsNotNull(customer.PaymentMethods);
     ApplePayCard card = customer.ApplePayCards[0];
     Assert.IsNotNull(card.Token);
     Assert.AreEqual(card, customer.PaymentMethods[0]);
 }
 public abstract Customer MapToDomain(CustomerRequest customer);
Beispiel #37
0
 public async Task <CustomerResponse> UpdateCustomerAsync(string customerId, CustomerRequest request)
 {
     return(await this.PostAsync <CustomerResponse>($"customers/{customerId}", request).ConfigureAwait(false));
 }
        public ActionResult CreateSubscription(FormCollection collection)
        {
            using (_db)
            {
                string nonceFromTheClient = collection["payment_method_nonce"];
                string planid             = collection["planid"];
                string cardToken          = "";
                var    user = _db.Users.Single(u => u.Email == User.Identity.Name);

                //Search for customer
                var customerRequest = new CustomerSearchRequest().Email.Is(User.Identity.Name);
                ResourceCollection <Customer> results = PaymentGateways.Gateway.Customer.Search(customerRequest);
                if (results.Ids.Count == 0)
                {
                    //  If no result, create the customer, create cardToken
                    var request = new CustomerRequest
                    {
                        FirstName  = user.FirstName,
                        LastName   = user.LastName,
                        Email      = User.Identity.Name,
                        Phone      = "",
                        CreditCard = new CreditCardRequest
                        {
                            PaymentMethodNonce = nonceFromTheClient,
                            Options            = new CreditCardOptionsRequest
                            {
                                VerifyCard = true
                            }
                        }
                    };

                    Result <Customer> result = PaymentGateways.Gateway.Customer.Create(request);
                    if (!result.IsSuccess())
                    {
                        TempData["message"] = result.Message;
                        return(Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri));
                    }

                    cardToken = result.Target.PaymentMethods[0].Token;
                }

                SubscriptionRequest newSub;
                if (!cardToken.Equals(""))
                {
                    newSub = new SubscriptionRequest
                    {
                        PaymentMethodToken = cardToken,
                        PlanId             = planid,
                        NeverExpires       = true,
                        Options            = new SubscriptionOptionsRequest
                        {
                            StartImmediately = true
                        }
                    };
                }
                else
                {
                    newSub = new SubscriptionRequest
                    {
                        PaymentMethodNonce = nonceFromTheClient,
                        PlanId             = planid,
                        NeverExpires       = true,
                        Options            = new SubscriptionOptionsRequest
                        {
                            StartImmediately = true
                        }
                    };
                }

                Result <Subscription> subResult = PaymentGateways.Gateway.Subscription.Create(newSub);
                if (!subResult.IsSuccess())
                {
                    TempData["message"] = subResult.Message;

                    return(Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri));
                }

                switch (int.Parse(planid))
                {
                case 1:
                    user.MemberLevel = MemberLevel.Bronze;
                    break;

                case 2:
                    user.MemberLevel = MemberLevel.Silver;
                    break;

                case 3:
                    user.MemberLevel = MemberLevel.Gold;
                    break;

                default:
                    Debug.WriteLine("Invalid Plan Number");
                    break;
                }
                _db.SaveChanges();
                TempData["message"] = "success";
                return(View("Index"));
            }
        }
Beispiel #39
0
        public void Create_CreateCustomerWithCreditCard()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName = "Michael",
                LastName = "Angelo",
                Company = "Some Company",
                Email = "*****@*****.**",
                Phone = "312.555.1111",
                Fax = "312.555.1112",
                Website = "www.example.com",
                CreditCard = new CreditCardRequest()
                {
                    Number = "5555555555554444",
                    ExpirationDate = "05/22",
                    CVV = "123",
                    CardholderName = "Michael Angelo"
                }
            };

            Customer customer = gateway.Customer.Create(createRequest).Target;
            Assert.AreEqual("Michael", customer.FirstName);
            Assert.AreEqual("Angelo", customer.LastName);
            Assert.AreEqual("Some Company", customer.Company);
            Assert.AreEqual("*****@*****.**", customer.Email);
            Assert.AreEqual("312.555.1111", customer.Phone);
            Assert.AreEqual("312.555.1112", customer.Fax);
            Assert.AreEqual("www.example.com", customer.Website);
            Assert.AreEqual(DateTime.Now.Year, customer.CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.UpdatedAt.Value.Year);
            Assert.AreEqual(1, customer.CreditCards.Length);
            Assert.AreEqual("555555", customer.CreditCards[0].Bin);
            Assert.AreEqual("4444", customer.CreditCards[0].LastFour);
            Assert.AreEqual("05", customer.CreditCards[0].ExpirationMonth);
            Assert.AreEqual("2022", customer.CreditCards[0].ExpirationYear);
            Assert.AreEqual("Michael Angelo", customer.CreditCards[0].CardholderName);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].UpdatedAt.Value.Year);
        }
 public JsonResult GetCustomerById(CustomerRequest customer)
 {
     return(new JsonResult(""));
 }
Beispiel #41
0
        public void Create_CreateCustomerWithCreditCardAndBillingAddress()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName = "Michael",
                LastName = "Angelo",
                Company = "Some Company",
                Email = "*****@*****.**",
                Phone = "312.555.1111",
                Fax = "312.555.1112",
                Website = "www.example.com",
                CreditCard = new CreditCardRequest()
                {
                    Number = "5555555555554444",
                    ExpirationDate = "05/22",
                    CVV = "123",
                    CardholderName = "Michael Angelo",
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        FirstName = "Michael",
                        LastName = "Angelo",
                        Company = "Angelo Co.",
                        StreetAddress = "1 E Main St",
                        ExtendedAddress = "Apt 3",
                        Locality = "Chicago",
                        Region = "IL",
                        PostalCode = "60622",
                        CountryName = "United States of America"
                    }
                }
            };

            Customer customer = gateway.Customer.Create(createRequest).Target;
            Assert.AreEqual("Michael", customer.FirstName);
            Assert.AreEqual("Angelo", customer.LastName);
            Assert.AreEqual("Some Company", customer.Company);
            Assert.AreEqual("*****@*****.**", customer.Email);
            Assert.AreEqual("312.555.1111", customer.Phone);
            Assert.AreEqual("312.555.1112", customer.Fax);
            Assert.AreEqual("www.example.com", customer.Website);
            Assert.AreEqual(DateTime.Now.Year, customer.CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.UpdatedAt.Value.Year);
            Assert.AreEqual(1, customer.CreditCards.Length);
            Assert.AreEqual("555555", customer.CreditCards[0].Bin);
            Assert.AreEqual("4444", customer.CreditCards[0].LastFour);
            Assert.AreEqual("05", customer.CreditCards[0].ExpirationMonth);
            Assert.AreEqual("2022", customer.CreditCards[0].ExpirationYear);
            Assert.AreEqual("Michael Angelo", customer.CreditCards[0].CardholderName);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].UpdatedAt.Value.Year);
            Assert.AreEqual(customer.Addresses[0].Id, customer.CreditCards[0].BillingAddress.Id);
            Assert.AreEqual("Michael", customer.Addresses[0].FirstName);
            Assert.AreEqual("Angelo", customer.Addresses[0].LastName);
            Assert.AreEqual("Angelo Co.", customer.Addresses[0].Company);
            Assert.AreEqual("1 E Main St", customer.Addresses[0].StreetAddress);
            Assert.AreEqual("Apt 3", customer.Addresses[0].ExtendedAddress);
            Assert.AreEqual("Chicago", customer.Addresses[0].Locality);
            Assert.AreEqual("IL", customer.Addresses[0].Region);
            Assert.AreEqual("60622", customer.Addresses[0].PostalCode);
            Assert.AreEqual("United States of America", customer.Addresses[0].CountryName);
        }
Beispiel #42
0
        public void Update_UpdatesCustomerAndNestedValuesViaTr()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName  = "Old First",
                LastName   = "Old Last",
                CreditCard = new CreditCardRequest()
                {
                    Number         = "4111111111111111",
                    ExpirationDate = "10/10",
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        PostalCode = "11111"
                    }
                }
            };

            Customer   customer   = gateway.Customer.Create(createRequest).Target;
            CreditCard creditCard = customer.CreditCards[0];
            Address    address    = creditCard.BillingAddress;

            var trParams = new CustomerRequest()
            {
                CustomerId = customer.Id,
                FirstName  = "New First",
                LastName   = "New Last",
                CreditCard = new CreditCardRequest()
                {
                    ExpirationDate = "12/12",
                    Options        = new CreditCardOptionsRequest()
                    {
                        UpdateExistingToken = creditCard.Token
                    },
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        PostalCode         = "44444",
                        CountryName        = "Chad",
                        CountryCodeAlpha2  = "TD",
                        CountryCodeAlpha3  = "TCD",
                        CountryCodeNumeric = "148",
                        Options            = new CreditCardAddressOptionsRequest()
                        {
                            UpdateExisting = true
                        }
                    }
                }
            };

            string     queryString       = TestHelper.QueryStringForTR(trParams, new CustomerRequest(), gateway.Customer.TransparentRedirectURLForUpdate(), service);
            Customer   updatedCustomer   = gateway.Customer.ConfirmTransparentRedirect(queryString).Target;
            CreditCard updatedCreditCard = gateway.CreditCard.Find(creditCard.Token);

            Address updatedAddress = gateway.Address.Find(customer.Id, address.Id);

            Assert.AreEqual("New First", updatedCustomer.FirstName);
            Assert.AreEqual("New Last", updatedCustomer.LastName);
            Assert.AreEqual("12/2012", updatedCreditCard.ExpirationDate);
            Assert.AreEqual("44444", updatedAddress.PostalCode);
            Assert.AreEqual("Chad", updatedAddress.CountryName);
            Assert.AreEqual("TD", updatedAddress.CountryCodeAlpha2);
            Assert.AreEqual("TCD", updatedAddress.CountryCodeAlpha3);
            Assert.AreEqual("148", updatedAddress.CountryCodeNumeric);
        }
Beispiel #43
0
        public void Create_WithVenmoSdkSession()
        {
            var createRequest = new CustomerRequest()
            {
                CreditCard = new CreditCardRequest()
                {
                    Number = "5555555555554444",
                    ExpirationDate = "05/22",
                    Options = new CreditCardOptionsRequest() {
                        VenmoSdkSession = SandboxValues.VenmoSdk.SESSION
                    }
                }
            };

            Customer customer = gateway.Customer.Create(createRequest).Target;
            Assert.IsTrue(customer.CreditCards[0].IsVenmoSdk.Value);
        }
Beispiel #44
0
        public void Search_OnAllTextFields()
        {
            string creditCardToken = string.Format("cc{0}", new Random().Next(1000000).ToString());

            CustomerRequest request = new CustomerRequest
            {
                Company    = "Braintree",
                Email      = "*****@*****.**",
                Fax        = "5551231234",
                FirstName  = "Tom",
                LastName   = "Smith",
                Phone      = "5551231235",
                Website    = "http://example.com",
                CreditCard = new CreditCardRequest
                {
                    CardholderName = "Tim Toole",
                    Number         = "4111111111111111",
                    ExpirationDate = "05/2012",
                    Token          = creditCardToken,
                    BillingAddress = new CreditCardAddressRequest
                    {
                        Company         = "Braintree",
                        CountryName     = "United States of America",
                        ExtendedAddress = "Suite 123",
                        FirstName       = "Drew",
                        LastName        = "Michaelson",
                        Locality        = "Chicago",
                        PostalCode      = "12345",
                        Region          = "IL",
                        StreetAddress   = "123 Main St"
                    }
                }
            };

            Customer customer = gateway.Customer.Create(request).Target;

            customer = gateway.Customer.Find(customer.Id);

            CustomerSearchRequest searchRequest = new CustomerSearchRequest().
                                                  Id.Is(customer.Id).
                                                  FirstName.Is("Tom").
                                                  LastName.Is("Smith").
                                                  Company.Is("Braintree").
                                                  Email.Is("*****@*****.**").
                                                  Website.Is("http://example.com").
                                                  Fax.Is("5551231234").
                                                  Phone.Is("5551231235").
                                                  AddressFirstName.Is("Drew").
                                                  AddressLastName.Is("Michaelson").
                                                  AddressLocality.Is("Chicago").
                                                  AddressPostalCode.Is("12345").
                                                  AddressRegion.Is("IL").
                                                  AddressCountryName.Is("United States of America").
                                                  AddressStreetAddress.Is("123 Main St").
                                                  AddressExtendedAddress.Is("Suite 123").
                                                  PaymentMethodToken.Is(creditCardToken).
                                                  CardholderName.Is("Tim Toole").
                                                  CreditCardNumber.Is("4111111111111111").
                                                  CreditCardExpirationDate.Is("05/2012");

            ResourceCollection <Customer> collection = gateway.Customer.Search(searchRequest);

            Assert.AreEqual(1, collection.MaximumCount);
            Assert.AreEqual(customer.Id, collection.FirstItem.Id);
        }
Beispiel #45
0
        public void ConfirmTransparentRedirect_UpdatesTheCustomer()
        {
            CustomerRequest createRequest = new CustomerRequest
            {
                FirstName = "Jane",
                LastName = "Deer"
            };
            Customer createdCustomer = gateway.Customer.Create(createRequest).Target;

            CustomerRequest trParams = new CustomerRequest
            {
                CustomerId = createdCustomer.Id
            };

            CustomerRequest request = new CustomerRequest
            {
                FirstName = "John",
                LastName = "Doe"
            };

            string queryString = TestHelper.QueryStringForTR(trParams, request, gateway.Customer.TransparentRedirectURLForUpdate(), service);
            Result<Customer> result = gateway.Customer.ConfirmTransparentRedirect(queryString);
            Assert.IsTrue(result.IsSuccess());
            Customer customer = result.Target;
            Assert.AreEqual("John", customer.FirstName);
            Assert.AreEqual("Doe", customer.LastName);
        }
        public async Task <IActionResult> Create([FromRoute] Guid businessId, [FromBody] CustomerRequest request)
        {
            var res = await CustomerService.Add(businessId, request);

            return(Ok(res));
        }
Beispiel #47
0
        public void Update_UpdatesCustomerWithNewValues()
        {
            string oldId = Guid.NewGuid().ToString();
            string newId = Guid.NewGuid().ToString();
            var createRequest = new CustomerRequest()
            {
                Id = oldId,
                FirstName = "Old First",
                LastName = "Old Last",
                Company = "Old Company",
                Email = "*****@*****.**",
                Phone = "312.555.1111 xOld",
                Fax = "312.555.1112 xOld",
                Website = "old.example.com"
            };

            gateway.Customer.Create(createRequest);

            var updateRequest = new CustomerRequest()
            {
                Id = newId,
                FirstName = "Michael",
                LastName = "Angelo",
                Company = "Some Company",
                Email = "*****@*****.**",
                Phone = "312.555.1111",
                Fax = "312.555.1112",
                Website = "www.example.com"
            };

            Customer updatedCustomer = gateway.Customer.Update(oldId, updateRequest).Target;
            Assert.AreEqual(newId, updatedCustomer.Id);
            Assert.AreEqual("Michael", updatedCustomer.FirstName);
            Assert.AreEqual("Angelo", updatedCustomer.LastName);
            Assert.AreEqual("Some Company", updatedCustomer.Company);
            Assert.AreEqual("*****@*****.**", updatedCustomer.Email);
            Assert.AreEqual("312.555.1111", updatedCustomer.Phone);
            Assert.AreEqual("312.555.1112", updatedCustomer.Fax);
            Assert.AreEqual("www.example.com", updatedCustomer.Website);
            Assert.AreEqual(DateTime.Now.Year, updatedCustomer.CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, updatedCustomer.UpdatedAt.Value.Year);
        }
        public IRestRequest Build()
        {
            var request = new CustomerRequest();

            return(request);
        }
Beispiel #49
0
        public void Update_AcceptsNestedBillingAddressId()
        {
            Customer customer = gateway.Customer.Create(new CustomerRequest()).Target;

            AddressRequest addressRequest = new AddressRequest
            {
                FirstName = "John",
                LastName = "Doe"
            };

            Address address = gateway.Address.Create(customer.Id, addressRequest).Target;

            var updateRequest = new CustomerRequest
            {
                CreditCard = new CreditCardRequest
                {
                    Number = "4111111111111111",
                    ExpirationDate = "10/10",
                    BillingAddressId = address.Id
                }
            };

            Customer updatedCustomer = gateway.Customer.Update(customer.Id, updateRequest).Target;
            Address billingAddress = updatedCustomer.CreditCards[0].BillingAddress;
            Assert.AreEqual(address.Id, billingAddress.Id);
            Assert.AreEqual("John", billingAddress.FirstName);
            Assert.AreEqual("Doe", billingAddress.LastName);
        }
Beispiel #50
0
        public ActionResult GetAccount(CustomerRequest customerRequest)
        {
            var customerAccount = _customerInfoService.RegisterAmount(customerRequest.customerId, customerRequest.initialCredit);

            return(RedirectToAction("Index", "Transactions", customerAccount));
        }
Beispiel #51
0
        public void Search_FindDuplicateCardsGivenPaymentMethodToken()
        {
            CreditCardRequest creditCard = new CreditCardRequest
            {
                Number = "4111111111111111",
                ExpirationDate = "05/2012"
            };

            CustomerRequest jimRequest = new CustomerRequest
            {
                FirstName = "Jim",
                CreditCard = creditCard
            };

            CustomerRequest joeRequest = new CustomerRequest
            {
                FirstName = "Jim",
                CreditCard = creditCard
            };

            Customer jim = gateway.Customer.Create(jimRequest).Target;
            Customer joe = gateway.Customer.Create(joeRequest).Target;

            CustomerSearchRequest searchRequest = new CustomerSearchRequest().
                PaymentMethodTokenWithDuplicates.Is(jim.CreditCards[0].Token);

            ResourceCollection<Customer> collection = gateway.Customer.Search(searchRequest);

            List<string> customerIds = new List<string>();
            foreach (Customer customer in collection) {
                customerIds.Add(customer.Id);
            }

            Assert.IsTrue(customerIds.Contains(jim.Id));
            Assert.IsTrue(customerIds.Contains(joe.Id));
        }
Beispiel #52
0
        public void Find_FindsCustomerWithGivenId()
        {
            string id = Guid.NewGuid().ToString();
            var createRequest = new CustomerRequest
            {
                Id = id,
                FirstName = "Michael",
                LastName = "Angelo",
                Company = "Some Company",
                Email = "*****@*****.**",
                Phone = "312.555.1111",
                Fax = "312.555.1112",
                Website = "www.example.com",
                CreditCard = new CreditCardRequest
                {
                    Number = "5555555555554444",
                    ExpirationDate = "05/22",
                    CVV = "123",
                    CardholderName = "Michael Angelo",
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        FirstName = "Mike",
                        LastName = "Smith",
                        Company = "Smith Co.",
                        StreetAddress = "1 W Main St",
                        ExtendedAddress = "Suite 330",
                        Locality = "Chicago",
                        Region = "IL",
                        PostalCode = "60622",
                        CountryName = "United States of America"
                    }
                }
            };

            Customer createdCustomer = gateway.Customer.Create(createRequest).Target;
            Customer customer = gateway.Customer.Find(createdCustomer.Id);
            Assert.AreEqual(id, customer.Id);
            Assert.AreEqual("Michael", customer.FirstName);
            Assert.AreEqual("Angelo", customer.LastName);
            Assert.AreEqual("Some Company", customer.Company);
            Assert.AreEqual("*****@*****.**", customer.Email);
            Assert.AreEqual("312.555.1111", customer.Phone);
            Assert.AreEqual("312.555.1112", customer.Fax);
            Assert.AreEqual("www.example.com", customer.Website);
            Assert.AreEqual(DateTime.Now.Year, customer.CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.UpdatedAt.Value.Year);
            Assert.AreEqual(1, customer.CreditCards.Length);
            Assert.AreEqual("555555", customer.CreditCards[0].Bin);
            Assert.AreEqual("4444", customer.CreditCards[0].LastFour);
            Assert.AreEqual("05", customer.CreditCards[0].ExpirationMonth);
            Assert.AreEqual("2022", customer.CreditCards[0].ExpirationYear);
            Assert.AreEqual("Michael Angelo", customer.CreditCards[0].CardholderName);
            Assert.IsTrue(Regex.IsMatch(customer.CreditCards[0].UniqueNumberIdentifier, "\\A\\w{32}\\z"));
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].UpdatedAt.Value.Year);
            Assert.AreEqual("Mike", customer.Addresses[0].FirstName);
            Assert.AreEqual("Smith", customer.Addresses[0].LastName);
            Assert.AreEqual("Smith Co.", customer.Addresses[0].Company);
            Assert.AreEqual("1 W Main St", customer.Addresses[0].StreetAddress);
            Assert.AreEqual("Suite 330", customer.Addresses[0].ExtendedAddress);
            Assert.AreEqual("Chicago", customer.Addresses[0].Locality);
            Assert.AreEqual("IL", customer.Addresses[0].Region);
            Assert.AreEqual("60622", customer.Addresses[0].PostalCode);
            Assert.AreEqual("United States of America", customer.Addresses[0].CountryName);
        }
Beispiel #53
0
        public void Search_OnAllTextFields()
        {
            string creditCardToken = string.Format("cc{0}", new Random().Next(1000000).ToString());

            CustomerRequest request = new CustomerRequest
            {
                Company = "Braintree",
                Email = "*****@*****.**",
                Fax = "5551231234",
                FirstName = "Tom",
                LastName = "Smith",
                Phone = "5551231235",
                Website = "http://example.com",
                CreditCard = new CreditCardRequest
                {
                    CardholderName = "Tim Toole",
                    Number = "4111111111111111",
                    ExpirationDate = "05/2012",
                    Token = creditCardToken,
                    BillingAddress = new CreditCardAddressRequest
                    {
                        Company = "Braintree",
                        CountryName = "United States of America",
                        ExtendedAddress = "Suite 123",
                        FirstName = "Drew",
                        LastName = "Michaelson",
                        Locality = "Chicago",
                        PostalCode = "12345",
                        Region = "IL",
                        StreetAddress = "123 Main St"
                    }
                }
            };

            Customer customer = gateway.Customer.Create(request).Target;
            customer = gateway.Customer.Find(customer.Id);

            CustomerSearchRequest searchRequest = new CustomerSearchRequest().
                Id.Is(customer.Id).
                FirstName.Is("Tom").
                LastName.Is("Smith").
                Company.Is("Braintree").
                Email.Is("*****@*****.**").
                Website.Is("http://example.com").
                Fax.Is("5551231234").
                Phone.Is("5551231235").
                AddressFirstName.Is("Drew").
                AddressLastName.Is("Michaelson").
                AddressLocality.Is("Chicago").
                AddressPostalCode.Is("12345").
                AddressRegion.Is("IL").
                AddressCountryName.Is("United States of America").
                AddressStreetAddress.Is("123 Main St").
                AddressExtendedAddress.Is("Suite 123").
                PaymentMethodToken.Is(creditCardToken).
                CardholderName.Is("Tim Toole").
                CreditCardNumber.Is("4111111111111111").
                CreditCardExpirationDate.Is("05/2012");

            ResourceCollection<Customer> collection = gateway.Customer.Search(searchRequest);

            Assert.AreEqual(1, collection.MaximumCount);
            Assert.AreEqual(customer.Id, collection.FirstItem.Id);
        }
Beispiel #54
0
        public void Create_withSecurityParams()
        {
            var createRequest = new CustomerRequest()
            {
                CreditCard = new CreditCardRequest()
                {
                    Number = "5555555555554444",
                    ExpirationDate = "05/22",
                    CVV = "123",
                    DeviceSessionId = "my_dsid"
                }
            };

            Result<Customer> result = gateway.Customer.Create(createRequest);

            Assert.IsTrue(result.IsSuccess());
        }
        public ActionResult CustomerRequest(RegisterRequestModel model)
        {
            using (TestElectricityKobiEntities db = new TestElectricityKobiEntities())
            {
                //ViewBag.IsModalOpen = "false";
                TempData["IsModalOpen"] = "false";
                string phoneNumber = string.Empty;
                //string olarak gelen değeri, Decimal değer tipine dönüştürdük.
                //model.AverageElectricityBillDecimal = Convert.ToDecimal(model.AverageElectricityBill);
                if (!string.IsNullOrWhiteSpace(model.PhoneNumber))
                {
                    phoneNumber = new String(model.PhoneNumber.Where(Char.IsDigit).ToArray());
                }

                var customerRequest = new CustomerRequest
                {
                    FirstName              = string.Empty,
                    LastName               = string.Empty,
                    PhoneNumber            = phoneNumber,
                    CompanyName            = string.Empty,
                    SubscriberGroupId      = 4,
                    AverageElectricityBill = default(decimal),
                    Email = string.IsNullOrWhiteSpace(model.Email) ? string.Empty : model.Email
                };

                db.CustomerRequests.Add(customerRequest);
                db.SaveChanges();
                TempData["IsModalOpen"] = "true";

                //var customerRequestId = customerRequest.Id;

                //var fileList = new List<HttpPostedFileBase>();
                //fileList.Add(model.Attachment1);
                //fileList.Add(model.Attachment2);

                //foreach (var file in fileList)
                //{
                //    byte[] billDocumentBinary = null;

                //    if (file != null)
                //    {
                //        try
                //        {
                //            using (Stream inputStream = file.InputStream)
                //            {
                //                MemoryStream memoryStream = inputStream as MemoryStream;
                //                if (memoryStream == null)
                //                {
                //                    memoryStream = new MemoryStream();
                //                    inputStream.CopyTo(memoryStream);
                //                }
                //                billDocumentBinary = memoryStream.ToArray();
                //            }

                //            db.BillDocuments.Add(new BillDocument { FileName = file.FileName, FileBinary = billDocumentBinary, CustomerRequestId = customerRequestId });
                //            db.SaveChanges();
                //            TempData["IsModalOpen"] = "true";
                //        }
                //        catch (Exception ex)
                //        {
                //            return RedirectToAction("Index", "Home");
                //        }
                //    }
                //}

                SendMail(phoneNumber, model.Email, null, string.Empty, null, string.Empty);

                return(RedirectToAction("Index", "Home"));
            }
        }
        public async Task <ReturnResponse> CreateCustomer(CustomerRequest customerRequest)
        {
            if (customerRequest == null)
            {
                return(new ReturnResponse()
                {
                    StatusCode = Utils.ObjectNull,
                    StatusMessage = Utils.StatusMessageObjectNull
                });
            }

            if (string.IsNullOrWhiteSpace(customerRequest.EmailAddress) || string.IsNullOrWhiteSpace(customerRequest.FullName) || string.IsNullOrWhiteSpace(customerRequest.PhoneNumber) || string.IsNullOrWhiteSpace(customerRequest.Address) || string.IsNullOrWhiteSpace(customerRequest.Password))
            {
                return(new ReturnResponse()
                {
                    StatusCode = Utils.ObjectNull,
                    StatusMessage = Utils.StatusMessageObjectNull
                });
            }

            var roleToFind = await _roleManager.FindByNameAsync(Utils.CustomerRole);

            if (roleToFind == null)
            {
                return(new ReturnResponse()
                {
                    StatusCode = Utils.NotFound,
                    StatusMessage = "Role Not Found"
                });
            }

            if (await _authRepository.UserEmailExists(customerRequest.EmailAddress))
            {
                return(new ReturnResponse()
                {
                    StatusCode = Utils.ObjectExists,
                    StatusMessage = Utils.StatusMessageObjectExists
                });
            }

            var customer = new Customer()
            {
                EmailAddress = customerRequest.EmailAddress,
                FullName     = customerRequest.FullName,
                PhoneNumber  = customerRequest.PhoneNumber,
                Address      = customerRequest.Address
            };

            var user = new User()
            {
                UserName = customerRequest.EmailAddress,
                Email    = customerRequest.EmailAddress,
                //UserTypeId = customer.CustomerId,
                UserType = Utils.Customer,
                Customer = customer
            };

            var result = await _userManager.CreateAsync(user, customerRequest.Password);

            if (result.Succeeded)
            {
                //UPDATE USERTYPEID IN USER TABLE
                user.UserTypeId = customer.CustomerId;
                var updateResult = await _userManager.UpdateAsync(user);

                if (!updateResult.Succeeded)
                {
                    return(new ReturnResponse()
                    {
                        StatusCode = Utils.NotSucceeded,
                        StatusMessage = Utils.StatusMessageNotSucceeded
                    });
                }

                //ASSIGN CUSTOMER ROLE TO USER (CUSTOMER)
                var assignmentResult = await _roleManagementRepository.AssignRolesToUser(new RoleUserAssignmentRequest()
                {
                    Users = new List <int>()
                    {
                        user.Id
                    },
                    Roles = new List <int>()
                    {
                        roleToFind.Id
                    }
                });

                if (assignmentResult.StatusCode == Utils.Success)
                {
                    //SEND MAIL TO CUSTOMER TO CONFIRM EMAIL
                    var userTokenVal = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    string hashedEmail           = _authRepository.GetHashedEmail(user.Email);
                    var    fullToken             = userTokenVal + "#" + hashedEmail;
                    var    emailVerificationLink = _authRepository.GetUserEmailVerificationLink(fullToken);
                    if (emailVerificationLink == null)
                    {
                        return(new ReturnResponse()
                        {
                            StatusCode = Utils.ObjectNull,
                            StatusMessage = Utils.StatusMessageObjectNull
                        });
                    }

                    var    emailMessage1 = "Please click the button below to complete your registration and activate you account.";
                    var    emailMessage2 = "";
                    string emailBody     = _globalRepository.GetMailBodyTemplate(customer.FullName, "", emailVerificationLink, emailMessage1, emailMessage2, "activation.html");
                    var    emailSubject  = "CONFIRM YOUR EMAIL ADDRESS";
                    //SEND MAIL TO CUSTOMER TO VERIFY EMAIL
                    MailModel mailObj  = new MailModel(_configuration.GetValue <string>("MercuryMartEmailAddress"), _configuration.GetValue <string>("MercuryMartEmailName"), customer.EmailAddress, emailSubject, emailBody);
                    var       response = await _mailRepository.SendMail(mailObj);

                    if (!response.StatusCode.Equals(HttpStatusCode.Accepted))
                    {
                        return(new ReturnResponse()
                        {
                            StatusCode = Utils.MailFailure,
                            StatusMessage = Utils.StatusMessageMailFailure
                        });
                    }

                    var customerToReturn = await GetCustomers(customer.CustomerId);

                    if (customerToReturn.StatusCode != Utils.Success)
                    {
                        return(new ReturnResponse()
                        {
                            StatusCode = Utils.NotSucceeded,
                            StatusMessage = "Error Occured while Fetching Customer Information"
                        });
                    }

                    return(new ReturnResponse()
                    {
                        StatusCode = Utils.Success,
                        StatusMessage = "Registration Successful!!!",
                        ObjectValue = (Customer)customerToReturn.ObjectValue
                    });
                }

                return(new ReturnResponse()
                {
                    StatusCode = Utils.NotSucceeded,
                    StatusMessage = Utils.StatusMessageNotSucceeded
                });
            }

            return(new ReturnResponse()
            {
                StatusCode = Utils.NotSucceeded,
                StatusMessage = Utils.StatusMessageNotSucceeded
            });
        }
 public async Task <JsonResult> SaveCustomer([FromBody] CustomerRequest customer)
 {
     return(new JsonResult(await _customerBusiness.SaveCustomer(customer)));
 }
Beispiel #58
0
        public void Find_FindsCustomerWithGivenId()
        {
            string id            = Guid.NewGuid().ToString();
            var    createRequest = new CustomerRequest
            {
                Id         = id,
                FirstName  = "Michael",
                LastName   = "Angelo",
                Company    = "Some Company",
                Email      = "*****@*****.**",
                Phone      = "312.555.1111",
                Fax        = "312.555.1112",
                Website    = "www.example.com",
                CreditCard = new CreditCardRequest
                {
                    Number         = "5105105105105100",
                    ExpirationDate = "05/12",
                    CVV            = "123",
                    CardholderName = "Michael Angelo",
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        FirstName       = "Mike",
                        LastName        = "Smith",
                        Company         = "Smith Co.",
                        StreetAddress   = "1 W Main St",
                        ExtendedAddress = "Suite 330",
                        Locality        = "Chicago",
                        Region          = "IL",
                        PostalCode      = "60622",
                        CountryName     = "United States of America"
                    }
                }
            };

            Customer createdCustomer = gateway.Customer.Create(createRequest).Target;
            Customer customer        = gateway.Customer.Find(createdCustomer.Id);

            Assert.AreEqual(id, customer.Id);
            Assert.AreEqual("Michael", customer.FirstName);
            Assert.AreEqual("Angelo", customer.LastName);
            Assert.AreEqual("Some Company", customer.Company);
            Assert.AreEqual("*****@*****.**", customer.Email);
            Assert.AreEqual("312.555.1111", customer.Phone);
            Assert.AreEqual("312.555.1112", customer.Fax);
            Assert.AreEqual("www.example.com", customer.Website);
            Assert.AreEqual(DateTime.Now.Year, customer.CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.UpdatedAt.Value.Year);
            Assert.AreEqual(1, customer.CreditCards.Length);
            Assert.AreEqual("510510", customer.CreditCards[0].Bin);
            Assert.AreEqual("5100", customer.CreditCards[0].LastFour);
            Assert.AreEqual("05", customer.CreditCards[0].ExpirationMonth);
            Assert.AreEqual("2012", customer.CreditCards[0].ExpirationYear);
            Assert.AreEqual("Michael Angelo", customer.CreditCards[0].CardholderName);
            Assert.IsTrue(Regex.IsMatch(customer.CreditCards[0].UniqueNumberIdentifier, "\\A\\w{32}\\z"));
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].UpdatedAt.Value.Year);
            Assert.AreEqual("Mike", customer.Addresses[0].FirstName);
            Assert.AreEqual("Smith", customer.Addresses[0].LastName);
            Assert.AreEqual("Smith Co.", customer.Addresses[0].Company);
            Assert.AreEqual("1 W Main St", customer.Addresses[0].StreetAddress);
            Assert.AreEqual("Suite 330", customer.Addresses[0].ExtendedAddress);
            Assert.AreEqual("Chicago", customer.Addresses[0].Locality);
            Assert.AreEqual("IL", customer.Addresses[0].Region);
            Assert.AreEqual("60622", customer.Addresses[0].PostalCode);
            Assert.AreEqual("United States of America", customer.Addresses[0].CountryName);
        }
        public async Task <ActionResult> Index(CheckoutModel model)
        {
            //Check if the model-state is valid -- this will catch anytime someone hacks your client-side validation
            if (ModelState.IsValid)
            {
                var gateway = new BraintreeGateway
                {
                    Environment = Braintree.Environment.SANDBOX,
                    MerchantId  = ConfigurationManager.AppSettings["Braintree.MerchantID"],
                    PublicKey   = ConfigurationManager.AppSettings["Braintree.PublicKey"],
                    PrivateKey  = ConfigurationManager.AppSettings["Braintree.PrivateKey"]
                };

                CustomerSearchRequest searchRequest = new CustomerSearchRequest();
                searchRequest.Email.Is(model.ContactEmail);

                Customer c = null;
                var      existingCustomers = await gateway.Customer.SearchAsync(searchRequest);

                if (existingCustomers.Ids.Any())
                {
                    c = existingCustomers.FirstItem;
                }
                else
                {
                    CustomerRequest newCustomer = new CustomerRequest();
                    newCustomer.FirstName = model.FirstName;
                    newCustomer.LastName  = model.LastName;
                    newCustomer.Email     = model.ContactEmail;
                    newCustomer.Phone     = model.ContactPhone;
                    var customerResult = await gateway.Customer.CreateAsync(newCustomer);

                    if (customerResult.IsSuccess())
                    {
                        c = customerResult.Target;
                    }
                    else
                    {
                        throw new Exception(customerResult.Errors.All().First().Message);
                    }
                }

                string token;

                Braintree.CreditCardRequest card = new Braintree.CreditCardRequest();
                card.Number          = model.CreditCardNumber;
                card.CVV             = model.CreditCardVerificationValue;
                card.ExpirationMonth = model.CreditCardExpirationMonth.ToString().PadLeft(2, '0');
                card.ExpirationYear  = model.CreditCardExpirationYear.ToString();
                card.CardholderName  = model.FirstName + " " + model.LastName;
                card.CustomerId      = c.Id;
                var cardResult = await gateway.CreditCard.CreateAsync(card);

                if (cardResult.IsSuccess())
                {
                    token = cardResult.Target.Token;
                }
                else
                {
                    throw new Exception(cardResult.Errors.All().First().Message);
                }

                HttpCookie cartCookie = Request.Cookies["cart"];
                var        order      = db.Orders.Find(int.Parse(cartCookie.Value));

                Braintree.TransactionRequest transaction = new TransactionRequest();
                transaction.PaymentMethodToken = token;
                transaction.Amount             = order.OrderedProducts.Sum(x => (x.Product.Price ?? 0) * (x.Quantity ?? 0));
                transaction.CustomerId         = c.Id;
                var saleResult = await gateway.Transaction.SaleAsync(transaction);

                if (saleResult.IsSuccess())
                {
                    Response.SetCookie(new HttpCookie("cart")
                    {
                        Expires = DateTime.Now
                    });
                    order.OrderCompletedDate = DateTime.UtcNow;
                    order.CustomerEmail      = model.ContactEmail;

                    order.BillingStreetAddress1 = model.BillingAddress.Street1;
                    if (model.BillingAddress.Street2 != null)
                    {
                        order.BillingStreetAddress2 = model.BillingAddress.Street2;
                    }
                    order.BillingCity  = model.BillingAddress.City;
                    order.BillingState = model.BillingAddress.State;
                    order.BillingZip   = model.BillingAddress.PostalCode;

                    order.ShippingStreetAddress1 = model.ShippingAddress.Street1;
                    if (model.ShippingAddress.Street2 != null)
                    {
                        order.ShippingStreetAddress2 = model.ShippingAddress.Street2;
                    }
                    order.ShippingCity  = model.ShippingAddress.City;
                    order.ShippingState = model.ShippingAddress.State;
                    order.ShippingZip   = model.ShippingAddress.PostalCode;

                    if (User.Identity.IsAuthenticated)
                    {
                        var user = db.Users.FirstOrDefault(X => X.AspNetUser.UserName == User.Identity.Name);
                        order.AspNetUserID = user.AspNetUserID;
                    }
                    order.LastModifiedOn = DateTime.UtcNow;

                    await db.SaveChangesAsync();

                    string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"];

                    SendGrid.ISendGridClient client = new SendGridClient(apiKey);

                    EmailAddress from = new EmailAddress("*****@*****.**", "Paracord Store");

                    EmailAddress to = new EmailAddress(model.ContactEmail);

                    string subject = string.Format("Your Paracord Store Order {0}", order.OrderID);

                    string htmlContent      = CreateReceiptEmail(order);
                    string plainTextContent = CreatePlaintextEmail(order);

                    SendGridMessage message = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
                    message.SetTemplateId("a179572c-a791-467e-aebb-5ea6cca0fb2c");

                    Response response = await client.SendEmailAsync(message);

                    TempData["EmailAddress"] = model.ContactEmail;

                    return(RedirectToAction("Index", "Receipt", new { id = order.OrderID }));
                }
            }
            return(View(model));
        }
Beispiel #60
0
        public void Create_CreateCustomerWithCreditCardAndBillingAddress()
        {
            var createRequest = new CustomerRequest()
            {
                FirstName  = "Michael",
                LastName   = "Angelo",
                Company    = "Some Company",
                Email      = "*****@*****.**",
                Phone      = "312.555.1111",
                Fax        = "312.555.1112",
                Website    = "www.example.com",
                CreditCard = new CreditCardRequest()
                {
                    Number         = "5105105105105100",
                    ExpirationDate = "05/12",
                    CVV            = "123",
                    CardholderName = "Michael Angelo",
                    BillingAddress = new CreditCardAddressRequest()
                    {
                        FirstName       = "Michael",
                        LastName        = "Angelo",
                        Company         = "Angelo Co.",
                        StreetAddress   = "1 E Main St",
                        ExtendedAddress = "Apt 3",
                        Locality        = "Chicago",
                        Region          = "IL",
                        PostalCode      = "60622",
                        CountryName     = "United States of America"
                    }
                }
            };

            Customer customer = gateway.Customer.Create(createRequest).Target;

            Assert.AreEqual("Michael", customer.FirstName);
            Assert.AreEqual("Angelo", customer.LastName);
            Assert.AreEqual("Some Company", customer.Company);
            Assert.AreEqual("*****@*****.**", customer.Email);
            Assert.AreEqual("312.555.1111", customer.Phone);
            Assert.AreEqual("312.555.1112", customer.Fax);
            Assert.AreEqual("www.example.com", customer.Website);
            Assert.AreEqual(DateTime.Now.Year, customer.CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.UpdatedAt.Value.Year);
            Assert.AreEqual(1, customer.CreditCards.Length);
            Assert.AreEqual("510510", customer.CreditCards[0].Bin);
            Assert.AreEqual("5100", customer.CreditCards[0].LastFour);
            Assert.AreEqual("05", customer.CreditCards[0].ExpirationMonth);
            Assert.AreEqual("2012", customer.CreditCards[0].ExpirationYear);
            Assert.AreEqual("Michael Angelo", customer.CreditCards[0].CardholderName);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].CreatedAt.Value.Year);
            Assert.AreEqual(DateTime.Now.Year, customer.CreditCards[0].UpdatedAt.Value.Year);
            Assert.AreEqual(customer.Addresses[0].Id, customer.CreditCards[0].BillingAddress.Id);
            Assert.AreEqual("Michael", customer.Addresses[0].FirstName);
            Assert.AreEqual("Angelo", customer.Addresses[0].LastName);
            Assert.AreEqual("Angelo Co.", customer.Addresses[0].Company);
            Assert.AreEqual("1 E Main St", customer.Addresses[0].StreetAddress);
            Assert.AreEqual("Apt 3", customer.Addresses[0].ExtendedAddress);
            Assert.AreEqual("Chicago", customer.Addresses[0].Locality);
            Assert.AreEqual("IL", customer.Addresses[0].Region);
            Assert.AreEqual("60622", customer.Addresses[0].PostalCode);
            Assert.AreEqual("United States of America", customer.Addresses[0].CountryName);
        }