public AchSaleRequest(string id, string key, string originatorId, Ach ach, decimal amount) : base(id, key, "VIRTUAL_CHECK_PPD_SALE") { Data["C_ORIGINATOR_ID"] = originatorId; ach.SetAchData(Data); Data["T_AMT"] = amount.ToString("n2"); }
public AchCharge(bool isTesting, string apiKey, string ach_id, Ach ach, Payer payer, decimal amt, string tranId, string tranDesc, string peopleId) : base(isTesting, apiKey, ach_id, paymentTypeAch, amt, tranId, tranId, payer) { Data["params[0][ach_acct_num]"] = ach.AchAccNum; Data["params[0][ach_routing_num]"] = ach.AchRoutingNum; }
public AchSaleRequest(string userName, string password, Ach ach, decimal amount) : base(userName, password) { Data["type"] = "sale"; Data["payment"] = "check"; ach.SetAchData(Data); Data["amount"] = amount.ToString("0.00"); }
public CreateAchVaultRequest(string userName, string password, Ach ach) : base(userName, password) { Data["customer_vault"] = "add_customer"; Data["method"] = "check"; Data["sec_code"] = "WEB"; ach.SetAchData(Data); }
public async Task <Ach> UpdateAchAccountAsync(Ach account) { var result = await accountService.UpdateAchAccountAsync(account); if (result != null) { DumpObject("UpdateAchAccountAsync", result); } return(result); }
public TransactionResponse PayWithCheck(int peopleId, decimal amt, string routing, string acct, string description, int tranid, string email, string first, string middle, string last, string suffix, string addr, string addr2, string city, string state, string country, string zip, string phone) { var type = AchType(peopleId); var ach = new Ach { NameOnAccount = $"{first} {last}", AccountNumber = acct, RoutingNumber = routing, Type = type, BillingAddress = new BillingAddress { FirstName = first, LastName = last, Address1 = addr, Address2 = addr2, City = city, State = state, Country = country, Zip = zip, Email = email, Phone = phone } }; var achSaleRequest = new AchSaleRequest( _userName, _password, ach, amt, tranid.ToString(CultureInfo.InvariantCulture), description, peopleId.ToString(CultureInfo.InvariantCulture)); var response = achSaleRequest.Execute(); if (type == "savings") { var s = JsonConvert.SerializeObject(ach, Formatting.Indented).Replace("\r\n", "\n"); var c = db.Content("AchSavingsLog", "-", ContentTypeCode.TypeText); c.Body = $"--------------------------\n{DateTime.Now:g}\ntranid={response.TransactionId}\n\n{s}\n{c.Body}"; db.SubmitChanges(); } return(new TransactionResponse { Approved = response.ResponseStatus == ResponseStatus.Approved, AuthCode = response.AuthCode, Message = response.ResponseText, TransactionId = response.TransactionId }); }
public void AccountNumber_Is_One_Digit_Generates_Error() { // Arrange var validator = new AchValidator(); var account = new Ach { AccountNumber = "1" }; // Act var result = validator.Validate(account); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "AccountNumber must be numeric string and must be between 4 and 100 digits")); }
public void RoutingNumber_Has_Alpha_Generates_Error() { // Arrange var validator = new AchValidator(); var account = new Ach { RoutingNumber = "12345678A" }; // Act var result = validator.Validate(account); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "RoutingNumber must be a 9 digit number")); }
public void BankName_Is_Empty_Generates_Error() { // Arrange var validator = new AchValidator(); var account = new Ach { BankName = "" }; // Act var result = validator.Validate(account); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "BankName is required")); }
public void BankName_Is_100_Characters_Is_Valid() { // Arrange var validator = new AchValidator(); var account = new Ach { BankName = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" }; // Act var result = validator.Validate(account); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "BankName cannot exceed 100 characters")); }
public void RoutingNumber_Has_9_Digits_Is_Valid() { // Arrange var validator = new AchValidator(); var account = new Ach { RoutingNumber = "123456789" }; // Act var result = validator.Validate(account); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "RoutingNumber must be a 9 digit number")); }
public void AccountNumber_Ninety_Four_Asterisk_Four_Numbers_Is_Valid() { // Arrange var validator = new AchValidator(); var account = new Ach { AccountNumber = "************************************************************************************************1111" }; // Act var result = validator.Validate(account); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "AccountNumber must be numeric string and must be between 4 and 100 digits")); }
public async Task CreateAchAccountAsync_Verify_ValidationService_Validate() { // Arrange webServiceRequest.Setup(m => m.PostDeserializedAsync <Ach, Result <Ach> >(It.IsAny <Uri>(), It.IsAny <Ach>())).ReturnsAsync(new Result <Ach> { Response = new Ach() }); var ach = new Ach(); // Act await service.CreateAchAccountAsync(ach); // Assert validationService.Verify(m => m.Validate(It.IsAny <Ach>())); }
public async Task UpdateAchAccountAsync_Verify_WebServiceRequest_PutDeserializedAsync() { // Arrange webServiceRequest.Setup(m => m.PutDeserializedAsync <Ach, Result <Ach> >(It.IsAny <Uri>(), It.IsAny <Ach>())).ReturnsAsync(new Result <Ach> { Response = new Ach() }); var ach = new Ach(); // Act await service.UpdateAchAccountAsync(ach); // Assert webServiceRequest.Verify(m => m.PutDeserializedAsync <Ach, Result <Ach> >(It.IsAny <Uri>(), It.IsAny <Ach>())); }
public async Task CreateAchAccountAsync_Uses_Correct_Endpoint() { // Arrange var ach = new Ach(); Uri endpoint = null; webServiceRequest.Setup(m => m.PostDeserializedAsync <Ach, Result <Ach> >(It.IsAny <Uri>(), It.IsAny <Ach>())) .Callback((Uri a, Ach b) => endpoint = a) .ReturnsAsync(new Result <Ach>()); // Act await service.CreateAchAccountAsync(ach); // Assert Assert.Equal(string.Format("{0}/v4/account/ach", settings.BaseUrl), endpoint.AbsoluteUri); }
public AchSaleRequest(string userName, string password, Ach ach, decimal amount, string orderId, string orderDescription) : this(userName, password, ach, amount, orderId) { Data["orderdescription"] = orderDescription; }
public StorePayerRequest(bool isTesting, string apiKey, Payer payer, CreditCard creditCard, Ach ach) : base(isTesting, apiKey, action) { string expMonth = string.IsNullOrEmpty(creditCard.CardExpiration) ? string.Empty : creditCard.CardExpiration.Substring(0, 2); string expYear = string.IsNullOrEmpty(creditCard.CardExpiration) ? string.Empty : creditCard.CardExpiration.Substring(2, 2); Data["params[0][payer_email]"] = payer.Email; Data["params[0][payer_fname]"] = payer.FirstName; Data["params[0][payer_lname]"] = payer.LastName; Data["params[0][payer_address]"] = payer.Address; Data["params[0][payer_address2]"] = payer.Address2; Data["params[0][payer_city]"] = payer.City; Data["params[0][payer_state]"] = payer.State; Data["params[0][payer_country]"] = payer.Country; Data["params[0][payer_zip]"] = payer.Zip; Data["params[0][payer_phone]"] = payer.Phone; Data["params[0][cc_num]"] = creditCard.CardNum; Data["params[0][cc_exp_mo]"] = expMonth; Data["params[0][cc_exp_yr]"] = expYear; Data["params[0][ach_acct_num]"] = ach.AchAccNum; Data["params[0][ach_routing_num]"] = ach.AchRoutingNum; }
public async Task <AccountList> AccountCertification(int customerId) { var accounts = new AccountList(); try { // Create an ACH account var ach = new Ach { CustomerId = customerId, RoutingNumber = "307075259", AccountNumber = "751111111", BankName = "PaySimple Bank" }; var createAchResult = await CreateAchAccountAsync(ach); // Add for payments certification accounts.AchAccounts = new List <Ach> { createAchResult }; // Sample Error: Attempt to create the same ACH account var recreateAchResult = await CreateAchAccountAsync(ach); } catch (PaySimpleException ex) { DumpObject("PaySimpleException", ex.ValidationErrors); } catch (PaySimpleEndpointException ex) { // 400 Bad Request - Account Already Exists DumpObject("PaySimpleEndpointException", ex.EndpointErrors); } try { // Create an CreditCard account var creditCard = new CreditCard { CustomerId = customerId, CreditCardNumber = "371449635398456", ExpirationDate = "12/2021", Issuer = Issuer.Amex }; var createCCResult = await CreateCreditCardAccountAsync(creditCard); // Add for payments certification accounts.CreditCardAccounts = new List <CreditCard> { createCCResult }; var invalidCreditCard = new CreditCard { CustomerId = customerId, CreditCardNumber = "1111111111111111", ExpirationDate = "12/2021", Issuer = Issuer.Amex }; // Sample Error: Attempt to create the same CreditCard account var invalidCCResult = await CreateCreditCardAccountAsync(invalidCreditCard); } catch (PaySimpleException ex) { DumpObject("PaySimpleException", ex.ValidationErrors); } catch (PaySimpleEndpointException ex) { // 400 Bad Request - Account Already Exists DumpObject("PaySimpleEndpointException", ex.EndpointErrors); } return(accounts); }
// This method is intended to run all immediately available operations // (e.g. operations that can run without waiting for long running system // actions like the ability to Refund a Settled payment). // WILL YOUR PAYMENT SURVIVE? public async Task RunTheGauntlet() { var warrior = new Customer { FirstName = "Red", LastName = "Warrior", Email = "*****@*****.**" }; var valkyrie = new Customer { FirstName = "Blue", LastName = "Valkyrie", Email = "*****@*****.**" }; var wizard = new Customer { FirstName = "Yellow", LastName = "Wizard", Email = "*****@*****.**" }; var elf = new Customer { FirstName = "Green", LastName = "Elf", Email = "*****@*****.**" }; // Create Customer warrior = await CreateCustomerAsync(warrior); valkyrie = await CreateCustomerAsync(valkyrie); wizard = await CreateCustomerAsync(wizard); elf = await CreateCustomerAsync(elf); if (warrior == null || valkyrie == null || wizard == null || elf == null) { Console.WriteLine("Failed to create customer"); return; } // Update Customer warrior.Website = "http://www.gauntlet.com"; warrior.ShippingSameAsBilling = true; warrior = await UpdateCustomerAsync(warrior); if (warrior.Website != "http://www.gauntlet.com") { Console.WriteLine("Failed to update customer"); return; } // Get Customer var getCustomer = await GetCustomerAsync(warrior.Id); if (getCustomer == null) { Console.WriteLine("Failed to get customer"); return; } // Get Customers var customers = await GetCustomersAsync(); if (customers == null || customers.Items == null) { Console.WriteLine("Failed to get customers"); return; } // Create ACH Account var ach = new Ach { CustomerId = warrior.Id, RoutingNumber = "131111114", AccountNumber = "751111111", BankName = "PaySimple Bank" }; ach = await CreateAchAccountAsync(ach); if (ach == null) { Console.WriteLine("Failed to create ACH account"); return; } // Create Credit Card Account var visa = new CreditCard { CustomerId = warrior.Id, CreditCardNumber = "4111111111111111", ExpirationDate = "12/2021", Issuer = Issuer.Visa, BillingZipCode = "11111" }; visa = await CreateCreditCardAccountAsync(visa); if (visa == null) { Console.WriteLine("Failed to create Credit Card account"); return; } // Update Ach Account ach.AccountNumber = "751111111"; ach.IsCheckingAccount = true; ach = await UpdateAchAccountAsync(ach); if (ach == null) { Console.WriteLine("Failed to update ACH account"); return; } // Update Credit Card Account visa.CreditCardNumber = "4111111111111111"; visa.ExpirationDate = "12/2022"; visa = await UpdateCreditCardAccountAsync(visa); if (visa == null) { Console.WriteLine("Failed to update Credit Card account"); return; } // Get Ach Account ach = await GetAchAccountAsync(ach.Id); if (ach == null) { Console.WriteLine("Failed to get ACH account"); return; } // Get Credit Card Account visa = await GetCreditCardAccountAsync(visa.Id); if (visa == null) { Console.WriteLine("Failed to get Credit Card account"); return; } // Get All Customer Accounts var customerAccounts = await GetAllAccountsAsync(warrior.Id); if (customerAccounts == null) { Console.WriteLine("Failed to get customer accounts"); return; } // Get Customer Ach Accounts var achAccounts = await GetAchAccountsAsync(warrior.Id); if (achAccounts == null) { Console.WriteLine("Failed to get customer ACH accounts"); return; } // Get Customer Credit Card Accounts var creditCardAccounts = await GetAchAccountsAsync(warrior.Id); if (creditCardAccounts == null) { Console.WriteLine("Failed to get customer Credit Card accounts"); return; } // Get Customer Default Ach Account var defaultAchAccount = await GetDefaultAchAccountAsync(warrior.Id); if (defaultAchAccount == null) { Console.WriteLine("Failed to get customer default ACH account"); return; } // Get Customer Default Credit Card Account var defaultCreditCardAccount = await GetDefaultCreditCardAccountAsync(warrior.Id); if (defaultCreditCardAccount == null) { Console.WriteLine("Failed to get customer default Credit Card account"); return; } // Set Customer Default Account await SetDefaultAccountAsync(warrior.Id, visa.Id); // Create Payments var achPayment = new Payment { AccountId = ach.Id, Amount = 5.00M }; achPayment = await CreatePaymentAsync(achPayment); if (achPayment == null) { Console.WriteLine("Failed to create ACH payment"); return; } var creditCardPayment = new Payment { AccountId = visa.Id, Amount = 5.00M, Cvv = "995", }; creditCardPayment = await CreatePaymentAsync(creditCardPayment); if (creditCardPayment == null) { Console.WriteLine("Failed to create Credit Card payment"); return; } // Get Payment creditCardPayment = await GetPaymentAsync(creditCardPayment.Id.Value); if (creditCardPayment == null) { Console.WriteLine("Failed to get Credit Card payment"); return; } // Get Payments var allPayments = await GetPaymentsAsync(); if (allPayments == null) { Console.WriteLine("Failed to get all payments"); return; } // Get Customer Payments var payments = await GetPaymentsAsync(warrior.Id); if (payments == null) { Console.WriteLine("Failed to get customer payments"); return; } // Create Payment Plan var paymentPlan = new PaymentPlan { AccountId = visa.Id, TotalDueAmount = 100.00M, TotalNumberOfPayments = 5, StartDate = DateTime.Now.AddDays(1), ExecutionFrequencyType = ExecutionFrequencyType.FirstOfMonth }; paymentPlan = await CreatePaymentPlanAsync(paymentPlan); if (paymentPlan == null) { Console.WriteLine("Failed to create payment plan"); return; } // Create Recurring Payment var recurringPayment = new RecurringPayment { AccountId = visa.Id, PaymentAmount = 10.00M, StartDate = DateTime.Now.AddDays(1), ExecutionFrequencyType = ExecutionFrequencyType.FirstOfMonth, }; recurringPayment = await CreateRecurringPaymentAsync(recurringPayment); if (recurringPayment == null) { Console.WriteLine("Failed to create recurring payment"); return; } // Update Recurring Payment var updateRecurringPayment = new RecurringPayment { Id = recurringPayment.Id, AccountId = visa.Id, PaymentAmount = 100.00M, StartDate = DateTime.Now.AddDays(1), ExecutionFrequencyType = ExecutionFrequencyType.FirstOfMonth }; updateRecurringPayment = await UpdateRecurringPaymentAsync(updateRecurringPayment); if (updateRecurringPayment == null) { Console.WriteLine("Failed to update recurring payment"); return; } // Get Recurring Schedule recurringPayment = await GetRecurringScheduleAsync(recurringPayment.Id); if (recurringPayment == null) { Console.WriteLine("Failed to get recurring schedule"); return; } // Get Customer Payment Plans var paymentPlans = await GetPaymentPlansAsync(warrior.Id); if (paymentPlans == null) { Console.WriteLine("Failed to get customer payment plans"); return; } // Get Customer Payment Schedules var paymentSchedules = await GetPaymentSchedulesAsync(warrior.Id); if (paymentSchedules == null) { Console.WriteLine("Failed to get customer payment schedules"); return; } // Get Customer Recurring Payment Schedules var recurringPaymentSchedules = await GetRecurringPaymentSchedulesAsync(warrior.Id); if (recurringPaymentSchedules == null) { Console.WriteLine("Failed to get customer recurring payment schedules"); return; } // Get All Payment Plan Schedules var allPaymentSchedules = await GetAllPaymentSchedulesAsync(); if (allPaymentSchedules == null) { Console.WriteLine("Failed to get all payment schedules"); return; } // Get Payment Plan Payments var paymentPlanPayments = await GetPaymentPlanPaymentsAsync(paymentPlan.Id); if (paymentPlanPayments == null) { Console.WriteLine("Failed to get payment plan payments"); return; } // Get Payment Plan Schedule paymentPlan = await GetPaymentPlanScheduleAsync(paymentPlan.Id); if (paymentPlan == null) { Console.WriteLine("Failed to get payment plan schedule"); return; } // Get Recurring Payments var recurringPayments = await GetRecurringPaymentsAsync(recurringPayment.Id); if (recurringPayments == null) { Console.WriteLine("Failed to get recurring payments"); return; } // Pause Payment Plan await PausePaymentPlanAsync(paymentPlan.Id, DateTime.Now.AddDays(1)); // Pause Recurring Payment await PauseRecurringPaymentAsync(recurringPayment.Id, DateTime.Now.AddDays(1)); // Resume Payment Plan await ResumePaymentPlanAsync(paymentPlan.Id); // Resume Recurring Payment await ResumeRecurringPaymentAsync(recurringPayment.Id); // Suspend Payment Plan await SuspendPaymentPlanAsync(paymentPlan.Id); // Suspend Recurring Payment await SuspendRecurringPaymentAsync(recurringPayment.Id); // Void Payments var voidAchPayment = await VoidPaymentAsync(achPayment.Id.Value); if (voidAchPayment == null) { Console.WriteLine("Failed to void ACH payment"); return; } var voidCreditCardPayment = await VoidPaymentAsync(creditCardPayment.Id.Value); if (voidCreditCardPayment == null) { Console.WriteLine("Failed to void Credit Card payment"); return; } // Delete Payment Plans await DeletePaymentPlanAsync(paymentPlan.Id); // Delete Recurring Payments await DeleteRecurringPaymentAsync(recurringPayment.Id); // Delete Accounts await DeleteAchAccountAsync(ach.Id); await DeleteCreditCardAccountAsync(visa.Id); // Delete Customers await DeleteCustomerAsync(warrior.Id); await DeleteCustomerAsync(valkyrie.Id); await DeleteCustomerAsync(wizard.Id); await DeleteCustomerAsync(elf.Id); }
public StoreNewPayer(bool isTesting, string apiKey, Payer payer, string peopleId, CreditCard creditCard, Ach ach) : base(isTesting, apiKey, payer, creditCard, ach) { Data["params[0][client_payer_id]"] = peopleId; }
public StorePayer(bool isTesting, string apiKey, Payer payer, string acceptivaPayerId, CreditCard creditCard, Ach ach) : base(isTesting, apiKey, payer, creditCard, ach) { Data["params[0][payer_id_str]"] = acceptivaPayerId; }
public AchSaleRequest(string id, string key, string originatorId, Ach ach, decimal amount, string orderNumber) : this(id, key, originatorId, ach, amount) { Data["T_ORDERNUM"] = orderNumber; }
public AchSaleRequest(string userName, string password, Ach ach, decimal amount, string orderId) : this(userName, password, ach, amount) { Data["orderid"] = orderId; }
public UpdateAchVaultRequest(string userName, string password, string vaultId, Ach ach) : this(userName, password, vaultId) { ach.SetAchData(Data); }
public AchSaleRequest(string userName, string password, Ach ach, decimal amount, string orderId, string orderDescription, string poNumber) : this(userName, password, ach, amount, orderId, orderDescription) { Data["ponumber"] = poNumber; }