public void Find_FindsUsBankAccountWithToken() { Result <Customer> result = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(result.IsSuccess()); string nonce = TestHelper.GenerateValidUsBankAccountNonce(gateway); var request = new PaymentMethodRequest { CustomerId = result.Target.Id, PaymentMethodNonce = nonce }; Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request); Assert.IsTrue(paymentMethodResult.IsSuccess()); Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target); UsBankAccount usbankAccount = (UsBankAccount)paymentMethodResult.Target; UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); usbankAccount = usBankAccountGateway.Find(usbankAccount.Token); Assert.AreEqual("123456789", usbankAccount.RoutingNumber); Assert.AreEqual("1234", usbankAccount.Last4); Assert.AreEqual("checking", usbankAccount.AccountType); Assert.AreEqual("PayPal Checking - 1234", usbankAccount.AccountDescription); Assert.AreEqual("Dan Schulman", usbankAccount.AccountHolderName); }
public void Create_ReturnsSuccessfulResponse() { Result <Customer> customer = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(customer.IsSuccess()); var request = new PaymentMethodRequest { CustomerId = customer.Target.Id, PaymentMethodNonce = TestHelper.GenerateValidUsBankAccountNonce(gateway), Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID, UsBankAccountVerificationMethod = UsBankAccountVerificationMethod.NETWORK_CHECK } }; Result <PaymentMethod> result = gateway.PaymentMethod.Create(request); Assert.IsTrue(result.IsSuccess()); UsBankAccount usBankAccount = (UsBankAccount)result.Target; Assert.IsNotNull(usBankAccount.Token); UsBankAccountVerification verification = usBankAccount.Verifications[0]; Assert.AreEqual(UsBankAccountVerificationMethod.NETWORK_CHECK, verification.VerificationMethod); Assert.AreEqual(UsBankAccountVerificationStatus.VERIFIED, verification.Status); Assert.NotNull(verification.Id); Assert.NotNull(verification.VerificationDeterminedAt); }
public void Find_FindsUsBankAccountWithToken() { Result <Customer> result = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(result.IsSuccess()); string nonce = TestHelper.GenerateValidUsBankAccountNonce(gateway); var request = new PaymentMethodRequest { CustomerId = result.Target.Id, PaymentMethodNonce = nonce }; Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request); Assert.IsTrue(paymentMethodResult.IsSuccess()); Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target); UsBankAccount usBankAccount = (UsBankAccount)paymentMethodResult.Target; UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); usBankAccount = usBankAccountGateway.Find(usBankAccount.Token); Assert.AreEqual("021000021", usBankAccount.RoutingNumber); Assert.AreEqual("1234", usBankAccount.Last4); Assert.AreEqual("checking", usBankAccount.AccountType); Assert.AreEqual("Dan Schulman", usBankAccount.AccountHolderName); Assert.IsTrue(Regex.IsMatch(usBankAccount.BankName, ".*CHASE.*")); AchMandate achMandate = usBankAccount.AchMandate; Assert.AreEqual("cl mandate text", achMandate.Text); Assert.AreEqual("DateTime", achMandate.AcceptedAt.GetType().Name); Assert.IsTrue(usBankAccount.IsDefault); }
public void MultipleAttemptConfirm_MicroTransferVerification() { gateway = new BraintreeGateway { Environment = Environment.DEVELOPMENT, MerchantId = "integration2_merchant_id", PublicKey = "integration2_public_key", PrivateKey = "integration2_private_key" }; Result <Customer> customer = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(customer.IsSuccess()); var request = new PaymentMethodRequest { CustomerId = customer.Target.Id, PaymentMethodNonce = TestHelper.GenerateValidUsBankAccountNonce(gateway, "1000000000"), Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.ANOTHER_US_BANK_MERCHANT_ACCOUNT_ID, UsBankAccountVerificationMethod = UsBankAccountVerificationMethod.MICRO_TRANSFERS } }; Result <PaymentMethod> result = gateway.PaymentMethod.Create(request); Assert.IsTrue(result.IsSuccess()); UsBankAccount usBankAccount = (UsBankAccount)result.Target; Assert.IsNotNull(usBankAccount.Token); UsBankAccountVerification verification = usBankAccount.Verifications[0]; Assert.AreEqual(UsBankAccountVerificationMethod.MICRO_TRANSFERS, verification.VerificationMethod); Assert.AreEqual(UsBankAccountVerificationStatus.PENDING, verification.Status); var confirmRequest = new UsBankAccountVerificationConfirmRequest { DepositAmounts = new int[] { 1, 1 } }; for (int i = 0; i < 4; i++) { var r = gateway.UsBankAccountVerification.ConfirmMicroTransferAmounts(verification.Id, confirmRequest); Assert.IsFalse(r.IsSuccess()); Assert.AreEqual( ValidationErrorCode.US_BANK_ACCOUNT_VERIFICATION_AMOUNTS_DO_NOT_MATCH, r.Errors.ForObject("us-bank-account-verification").OnField("base")[0].Code); } var confirmResult = gateway.UsBankAccountVerification.ConfirmMicroTransferAmounts(verification.Id, confirmRequest); Assert.IsFalse(confirmResult.IsSuccess()); Assert.AreEqual( ValidationErrorCode.US_BANK_ACCOUNT_VERIFICATION_TOO_MANY_CONFIRMATION_ATTEMPTS, confirmResult.Errors.ForObject("us-bank-account-verification").OnField("base")[0].Code); }
public void SuccessfullyConfirmSettled_MicroTransferVerification() { gateway = new BraintreeGateway { Environment = Environment.DEVELOPMENT, MerchantId = "integration2_merchant_id", PublicKey = "integration2_public_key", PrivateKey = "integration2_private_key" }; Result <Customer> customer = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(customer.IsSuccess()); var request = new PaymentMethodRequest { CustomerId = customer.Target.Id, PaymentMethodNonce = TestHelper.GenerateValidUsBankAccountNonce(gateway, "1000000000"), Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.ANOTHER_US_BANK_MERCHANT_ACCOUNT_ID, UsBankAccountVerificationMethod = UsBankAccountVerificationMethod.MICRO_TRANSFERS } }; Result <PaymentMethod> result = gateway.PaymentMethod.Create(request); Assert.IsTrue(result.IsSuccess()); UsBankAccount usBankAccount = (UsBankAccount)result.Target; Assert.IsNotNull(usBankAccount.Token); UsBankAccountVerification verification = usBankAccount.Verifications[0]; Assert.AreEqual(UsBankAccountVerificationMethod.MICRO_TRANSFERS, verification.VerificationMethod); Assert.AreEqual(UsBankAccountVerificationStatus.PENDING, verification.Status); var confirmRequest = new UsBankAccountVerificationConfirmRequest { DepositAmounts = new int[] { 17, 29 } }; var confirmResult = gateway.UsBankAccountVerification.ConfirmMicroTransferAmounts(verification.Id, confirmRequest); Assert.IsTrue(confirmResult.IsSuccess()); verification = (UsBankAccountVerification)confirmResult.Target; Assert.AreEqual(UsBankAccountVerificationStatus.VERIFIED, verification.Status); usBankAccount = (UsBankAccount)gateway.PaymentMethod.Find(verification.UsBankAccount.Token); Assert.IsTrue(usBankAccount.IsVerified); }
public void Sale_TransactUsBankAccountWithToken() { Result <Customer> result = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(result.IsSuccess()); string nonce = TestHelper.GenerateValidUsBankAccountNonce(gateway); var request = new PaymentMethodRequest { CustomerId = result.Target.Id, PaymentMethodNonce = nonce, Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID } }; Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request); Assert.IsTrue(paymentMethodResult.IsSuccess()); Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target); UsBankAccount usBankAccount = (UsBankAccount)paymentMethodResult.Target; Assert.IsTrue(usBankAccount.IsVerified); Assert.AreEqual(1, usBankAccount.Verifications.Count); var transactionRequest = new TransactionRequest { Amount = SandboxValues.TransactionAmount.AUTHORIZE, MerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID }; UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); Result <Transaction> transactionResult = usBankAccountGateway.Sale(usBankAccount.Token, transactionRequest); Assert.IsTrue(transactionResult.IsSuccess()); Transaction transaction = transactionResult.Target; Assert.AreEqual(TransactionStatus.SETTLEMENT_PENDING, transaction.Status); UsBankAccountDetails usBankAccountDetails = transaction.UsBankAccountDetails; Assert.AreEqual(usBankAccount.RoutingNumber, usBankAccountDetails.RoutingNumber); Assert.AreEqual(usBankAccount.Last4, usBankAccountDetails.Last4); Assert.AreEqual(usBankAccount.AccountType, usBankAccountDetails.AccountType); Assert.AreEqual(usBankAccount.AccountHolderName, usBankAccountDetails.AccountHolderName); AchMandate achMandate = usBankAccountDetails.AchMandate; Assert.AreEqual(usBankAccount.AchMandate.Text, achMandate.Text); Assert.AreEqual("DateTime", achMandate.AcceptedAt.GetType().Name); }
public void SearchAsync_OnMultipleValueFields() { Task.Run(async () => #endif { Result<Customer> customer = await gateway.Customer.CreateAsync(new CustomerRequest()); Assert.IsTrue(customer.IsSuccess()); var request1 = new PaymentMethodRequest { CustomerId = customer.Target.Id, PaymentMethodNonce = TestHelper.GenerateValidUsBankAccountNonce(gateway), Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID, UsBankAccountVerificationMethod = UsBankAccountVerificationMethod.NETWORK_CHECK } }; var request2 = new PaymentMethodRequest { CustomerId = customer.Target.Id, PaymentMethodNonce = TestHelper.GenerateValidUsBankAccountNonce(gateway), Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID, UsBankAccountVerificationMethod = UsBankAccountVerificationMethod.INDEPENDENT_CHECK } }; UsBankAccount result1 = (UsBankAccount) (await gateway.PaymentMethod.CreateAsync(request1)).Target; UsBankAccount result2 = (UsBankAccount) (await gateway.PaymentMethod.CreateAsync(request2)).Target; UsBankAccountVerification verification1 = gateway.UsBankAccountVerification.Find(result1.Verifications[0].Id); UsBankAccountVerification verification2 = gateway.UsBankAccountVerification.Find(result2.Verifications[0].Id); UsBankAccountVerificationSearchRequest searchRequest = new UsBankAccountVerificationSearchRequest(). VerificationMethod.IncludedIn(UsBankAccountVerificationMethod.INDEPENDENT_CHECK, UsBankAccountVerificationMethod.NETWORK_CHECK). Ids.IncludedIn(verification1.Id, verification2.Id). Status.IncludedIn(UsBankAccountVerificationStatus.VERIFIED); ResourceCollection<UsBankAccountVerification> collection = await gateway.UsBankAccountVerification.SearchAsync(searchRequest); Assert.AreEqual(2, collection.MaximumCount); } #if net452 ).GetAwaiter().GetResult(); }
public void CompliantMerchant_FailsToTransactUnverifiedToken() { gateway = new BraintreeGateway { Environment = Environment.DEVELOPMENT, MerchantId = "integration2_merchant_id", PublicKey = "integration2_public_key", PrivateKey = "integration2_private_key" }; Result <Customer> customerResult = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(customerResult.IsSuccess()); string nonce = TestHelper.GenerateValidUsBankAccountNonce(gateway); var request = new PaymentMethodRequest { CustomerId = customerResult.Target.Id, PaymentMethodNonce = nonce, Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = "another_us_bank_merchant_account" } }; Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request); Assert.IsTrue(paymentMethodResult.IsSuccess()); Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target); UsBankAccount usBankAccount = (UsBankAccount)paymentMethodResult.Target; Assert.IsFalse(usBankAccount.IsVerified); Assert.AreEqual(0, usBankAccount.Verifications.Count); var transactionRequest = new TransactionRequest { Amount = SandboxValues.TransactionAmount.AUTHORIZE, MerchantAccountId = "another_us_bank_merchant_account" }; UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); Result <Transaction> transactionResult = usBankAccountGateway.Sale(usBankAccount.Token, transactionRequest); Assert.IsFalse(transactionResult.IsSuccess()); Assert.AreEqual( ValidationErrorCode.TRANSACTION_US_BANK_ACCOUNT_MUST_BE_VERIFIED, transactionResult.Errors.ForObject("transaction").OnField("payment-method-token")[0].Code); }
public void Search_OnTextFields() { Result <Customer> customer = gateway.Customer.Create(new CustomerRequest { Email = "*****@*****.**", }); Assert.IsTrue(customer.IsSuccess()); var request = new PaymentMethodRequest { CustomerId = customer.Target.Id, PaymentMethodNonce = TestHelper.GenerateValidUsBankAccountNonce(gateway), Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID, UsBankAccountVerificationMethod = UsBankAccountVerificationMethod.NETWORK_CHECK } }; UsBankAccount result = (UsBankAccount)gateway.PaymentMethod.Create(request).Target; string token = result.Token; string accountHolderName = result.AccountHolderName; string accountType = result.AccountType; string customerId = customer.Target.Id; string customerEmail = customer.Target.Email; UsBankAccountVerificationSearchRequest searchRequest = new UsBankAccountVerificationSearchRequest(). PaymentMethodToken.Is(token). CustomerId.Is(customerId). CustomerEmail.Is(customerEmail). AccountHolderName.Is(accountHolderName). AccountType.Is(accountType); ResourceCollection <UsBankAccountVerification> collection = gateway.UsBankAccountVerification.Search(searchRequest); UsBankAccountVerification verification = collection.FirstItem; Assert.AreEqual(1, collection.MaximumCount); Assert.AreEqual(accountHolderName, verification.UsBankAccount.AccountHolderName); Assert.AreEqual(accountType, verification.UsBankAccount.AccountType); }