public void ecomm_003_PersonalSavings() { eCheck check = new eCheck { RoutingNumber = "490000018", AccountNumber = "24413815", AccountType = AccountType.SAVINGS, CheckType = CheckType.PERSONAL, SecCode = SecCode.WEB, DriversLicenseNumber = "09876543210", DriversLicenseState = "NJ", CheckHolderName = "John Doe", PhoneNumber = "5558675309" }; Transaction response = check.Charge(21m) .WithCurrency("USD") .WithAddress(address) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode, response.ResponseMessage); Debug.WriteLine("Test 3: " + response.TransactionId); Transaction voidResponse = response.Void().Execute(); Assert.IsNotNull(voidResponse); Assert.AreEqual("00", voidResponse.ResponseCode); Debug.WriteLine("Test 5: " + voidResponse.TransactionId); }
public void SupportTestCase() { ServicesContainer.ConfigureService(new PorticoConfig { SecretApiKey = "skapi_cert_MTyMAQBiHVEAewvIzXVFcmUd2UcyBge_eCpaASUp0A", Environment = Environment.TEST, RequestLogger = new RequestFileLogger(@"C:\temp\portico\requestlog.txt") } ); var check = new eCheck { AccountNumber = "24413815", RoutingNumber = "490000018", AccountType = AccountType.CHECKING, CheckType = CheckType.PERSONAL, EntryMode = EntryMethod.Manual, SecCode = SecCode.PPD, CheckHolderName = "John Doe" }; var address = new Address { StreetAddress1 = "123 Main St.", City = "Downtown", State = "NJ", PostalCode = "12345" }; var response = check.Charge(10.00m) .WithCurrency("USD") .WithAddress(address) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); }
public void Charge_UsingTokenizedACH_ReturnsSuccessfulTransaction() { var service = new BillPayService(); var result = ach.Tokenize(); var fee = service.CalculateConvenienceAmount(ach, bill.Amount); var paymentMethod = new eCheck() { AccountType = AccountType.CHECKING, CheckType = CheckType.BUSINESS, SecCode = "WEB", CheckHolderName = "Tester", Token = result }; Assert.IsFalse(string.IsNullOrWhiteSpace(result)); RunAndValidateTransaction(() => { return(paymentMethod .Charge(bill.Amount) .WithBills(bill) .WithConvenienceAmount(fee) .WithCurrency("USD") .WithAddress(address) .Execute()); }); }
public void Init() { ServicesContainer.ConfigureService(new PorticoConfig { SecretApiKey = "skapi_cert_MTyMAQBiHVEAewvIzXVFcmUd2UcyBge_eCpaASUp0A" }); check = new eCheck { AccountNumber = "24413815", RoutingNumber = "490000018", CheckType = CheckType.PERSONAL, SecCode = SecCode.PPD, AccountType = AccountType.CHECKING, EntryMode = EntryMethod.Manual, CheckHolderName = "John Doe", DriversLicenseNumber = "09876543210", DriversLicenseState = "TX", PhoneNumber = "8003214567", BirthYear = 1997, SsnLast4 = "4321" }; address = new Address { StreetAddress1 = "123 Main St.", City = "Downtown", State = "NJ", PostalCode = "12345" }; }
public NWSCheckTests() { AcceptorConfig acceptorConfig = new AcceptorConfig { // data code values CardDataInputCapability = CardDataInputCapability.ContactlessEmv_ContactEmv_MagStripe_KeyEntry, CardHolderAuthenticationCapability = CardHolderAuthenticationCapability.PIN, CardHolderAuthenticationEntity = CardHolderAuthenticationEntity.ByMerchant, TerminalOutputCapability = TerminalOutputCapability.Printing_Display, OperatingEnvironment = OperatingEnvironment.OnPremises_CardAcceptor_Unattended, // hardware software config values HardwareLevel = "34", SoftwareLevel = "21205710", // pos configuration values SupportsPartialApproval = true, SupportsShutOffAmount = true, SupportsReturnBalance = true, SupportsDiscoverNetworkReferenceId = true, SupportsAvsCnvVoidReferrals = true, SupportsEmvPin = true }; // gateway config NetworkGatewayConfig config = new NetworkGatewayConfig(NetworkGatewayType.NWS) { ServiceUrl = "test.txns-c.secureexchange.net", PrimaryPort = 15031, SecondaryEndpoint = "test.txns-e.secureexchange.net", SecondaryPort = 15031, CompanyId = "SPSA", TerminalId = "NWSDOTNET01", //UniqueDeviceId = "0001", AcceptorConfig = acceptorConfig, EnableLogging = true, StanProvider = StanGenerator.GetInstance(), BatchProvider = BatchProvider.GetInstance() }; ServicesContainer.ConfigureService(config); // with merchant type config.MerchantType = "5542"; ServicesContainer.ConfigureService(config, "ICR"); address = new Address { StreetAddress1 = "123 Main St.", City = "Downtown", State = "NJ", PostalCode = "12345" }; //check = new eCheck { AccountNumber = "0273771700", AccountType = AccountType.CHECKING, AchVerify = false }; check = TestChecks.Certification(); }
void RebindGrid(eCheck Check = eCheck.None) { Int64 Top = 0; try { Top = Convert.ToInt64(this.Txt_Top.Text); } catch { } Int32 Page = 0; try { Page = Convert.ToInt32(this.Cbo_Page.SelectedValue); } catch { } string ViewState_DisplayFilterString = (string)this.ViewState[CnsDisplayFilterString]; string ViewState_DisplayOrderString = (string)this.ViewState[CnsDisplayOrderString]; string ViewState_OrderString = (string)this.ViewState[CnsOrderString]; QueryCondition Qc = null; try { Qc = (QueryCondition)this.ViewState[CnsObj_QueryCondition]; } catch { } if (Qc == null) { Qc = new QueryCondition(); } this.Details_SetPaginator(Top, this.List_Count(Qc)); try { this.Cbo_Page.SelectedValue = Page.ToString(); } catch { try { Page = Convert.ToInt32(this.Cbo_Page.SelectedValue); } catch { } } DataTable Dt; try { Dt = this.List(Qc, ViewState_OrderString, Top, Page); } catch { Dt = this.List(Qc, "", Top, Page); ViewState_OrderString = ""; ViewState_DisplayOrderString = ""; this.ViewState[CnsOrderString] = ViewState_OrderString; this.ViewState[CnsDisplayOrderString] = ViewState_DisplayOrderString; } this.BindGrid(Dt, Check); }
//[-] List <ClsBindGridColumn_EO> BindGrid( DataTable Dt_List , eCheck Check = eCheck.None) { DataRow Dr_Bind = Do_Methods_Query.GetSystemBindDefinition(this.mSelectionName); List <ClsBindGridColumn_EO> List_Gc = Layer01_Methods_Web_EO.GetBindGridColumn_EO(this.mSelectionName); string Bind_TableKey = (string)Do_Methods.IsNull(Dr_Bind["TableKey"], ""); string TableKey = (string)this.ViewState[CnsQuery_Selection_Key]; if (TableKey != "") { Bind_TableKey = TableKey; } Dt_List.Columns.Add("IsSelect", typeof(bool)); ClsBindGridColumn_EO Gc = new ClsBindGridColumn_EO( "IsSelect" , "Select?" , 80 , "" , Layer01_Common.Common.Layer01_Constants.eSystem_Lookup_FieldType.FieldType_Checkbox , this.mIsMultipleSelect); List_Gc.Insert(0, Gc); if (Check == eCheck.None) { foreach (DataRow Dr in this.mDt_Selected.Rows) { DataRow[] Inner_ArrDr = Dt_List.Select(Bind_TableKey + " = " + Convert.ToInt64(Dr["ID"]).ToString()); if (Inner_ArrDr.Length > 0) { Inner_ArrDr[0]["IsSelect"] = Do_Methods.IsNull(Dr["IsSelect"], false); } } } else { bool Inner_IsSelect = Check == eCheck.CheckAll; foreach (DataRow Dr in Dt_List.Rows) { Dr["IsSelect"] = Inner_IsSelect; } } this.EOGrid_Selection.FullRowMode = true; Layer01_Methods_Web_EO.BindEOGrid(ref this.EOGrid_Selection, Dt_List, List_Gc, Bind_TableKey, false, false); return(List_Gc); }
public CheckServiceTests() { service = new CheckService(new PorticoConfig { SecretApiKey = "skapi_cert_MTyMAQBiHVEAewvIzXVFcmUd2UcyBge_eCpaASUp0A" }); check = TestData.TestChecks.Certification(); address = new Address { StreetAddress1 = "123 Main St.", City = "Downtown", State = "NJ", PostalCode = "12345" }; }
public CheckServiceTests() { service = new CheckService(new GatewayConfig { SecretApiKey = "skapi_cert_MTyMAQBiHVEAewvIzXVFcmUd2UcyBge_eCpaASUp0A", ServiceUrl = "https://cert.api2.heartlandportico.com", OpenPathApiKey = "fteaWC5MYeVKdZ2EaQASDDgCtAS4Fh2zrzW4Yyds", OpenPathApiUrl = "http://localhost:35808/v1/globalpayments" }); check = TestData.TestChecks.Certification(); address = new Address { StreetAddress1 = "123 Main St.", City = "Downtown", State = "NJ", PostalCode = "12345" }; }
public void TestInitialize() { address = new Address { StreetAddress1 = "Apartment 852", StreetAddress2 = "Complex 741", StreetAddress3 = "no", City = "Chicago", PostalCode = "5001", State = "IL", CountryCode = "US" }; var bankAddress = new Address { StreetAddress1 = "12000 Smoketown Rd", StreetAddress2 = "Apt 3B", StreetAddress3 = "no", City = "Mesa", PostalCode = "22192", State = "AZ", CountryCode = "US" }; eCheck = new eCheck { AccountNumber = "1234567890", RoutingNumber = "122000030", AccountType = AccountType.SAVINGS, SecCode = SecCode.WEB, CheckReference = "123", MerchantNotes = "123", BankName = "First Union", CheckHolderName = "Jane Doe", BankAddress = bankAddress }; customer = new Customer { Id = "e193c21a-ce64-4820-b5b6-8f46715de931", FirstName = "James", LastName = "Mason", DateOfBirth = "1980-01-01", MobilePhone = "+35312345678", HomePhone = "+11234589" }; }
/// <summary> /// Builds the ACH Account section of the request /// </summary> /// <param name="parent"></param> /// <param name="eCheck"></param> /// <param name="amountToCharge"></param> /// <param name="feeAmount"></param> protected void BuildACHAccount(Element parent, eCheck eCheck, decimal amountToCharge, decimal?feeAmount) { var achAccounts = et.SubElement(parent, "bdms:ACHAccountsToCharge"); var achAccount = et.SubElement(achAccounts, "bdms:ACHAccountToCharge"); et.SubElement(achAccount, "bdms:Amount", amountToCharge); et.SubElement(achAccount, "bdms:ExpectedFeeAmount", feeAmount ?? 0M); // PLACEHOLDER: ACHReturnEmailAddress et.SubElement(achAccount, "bdms:ACHStandardEntryClass", eCheck.SecCode); et.SubElement(achAccount, "bdms:AccountNumber", eCheck.AccountNumber); et.SubElement(achAccount, "bdms:AccountType", GetDepositType(eCheck.CheckType.Value)); et.SubElement(achAccount, "bdms:DepositType", GetACHAccountType(eCheck.AccountType.Value)); // PLACEHOLDER: DocumentID // PLACEHOLDER: InternalAccountNumber et.SubElement(achAccount, "bdms:PayorName", eCheck.CheckHolderName); et.SubElement(achAccount, "bdms:RoutingNumber", eCheck.RoutingNumber); // PLACEHOLDER: SendEmailOnReturn // PLACEHOLDER: SubmitDate // PLACEHOLDER: TrackingNumber }
public void ecomm_002_BusinessChecking() { eCheck check = new eCheck { RoutingNumber = "490000018", AccountNumber = "24413815", AccountType = AccountType.CHECKING, CheckType = CheckType.BUSINESS, SecCode = SecCode.WEB, DriversLicenseNumber = "09876543210", DriversLicenseState = "NJ", CheckHolderName = "Acme Unlimited", PhoneNumber = "5558675309" }; Transaction response = check.Charge(20m) .WithCurrency("USD") .WithAddress(address) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode, response.ResponseMessage); Debug.WriteLine("Test 2: " + response.TransactionId); }
public void CheckReauthorize() { var eCheckReauth = new eCheck { SecCode = SecCode.PPD, AccountNumber = "051904524", RoutingNumber = "123456780", }; var amount = 1.29m; var response = ReportingService.FindTransactionsPaged(1, 10) .OrderBy(TransactionSortProperty.TimeCreated, SortDirection.Descending) .Where(SearchCriteria.StartDate, DateTime.Now.AddYears(-1)) .And(SearchCriteria.EndDate, DateTime.Now.AddDays(-2)) .And(SearchCriteria.PaymentType, PaymentType.Sale) .And(SearchCriteria.PaymentMethodName, PaymentMethodName.BankTransfer) .And(DataServiceCriteria.Amount, amount) .Execute(); Assert.IsNotNull(response); Assert.IsNotNull(response.Results); var transactionSummary = response.Results.FirstOrDefault(); Assert.IsNotNull(transactionSummary); Assert.AreEqual(amount, transactionSummary.Amount); var transaction = new Transaction { TransactionId = transactionSummary.TransactionId, PaymentMethodType = PaymentMethodType.ACH }; var resp = transaction.Reauthorize() .WithDescription("Resubmitting " + transaction.ReferenceNumber) .WithBankTransferDetails(eCheckReauth) .Execute(); assertResponse(resp, TransactionStatus.Captured); }
public void CheckSaleWithSingleUseToken() { var check = new eCheck { Token = "supt_bUNE7MtGwN0hdDcElNijZ83A", CheckType = CheckType.PERSONAL, SecCode = SecCode.PPD, AccountType = AccountType.CHECKING, EntryMode = EntryMethod.Manual, CheckHolderName = "John Doe", DriversLicenseNumber = "09876543210", DriversLicenseState = "TX", PhoneNumber = "8003214567", BirthYear = 1997, SsnLast4 = "4321" }; var response = check.Charge(11m) .WithCurrency("USD") .WithAddress(address) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode, response.ResponseMessage); }
/// <summary> /// Set the election check information /// </summary> /// <remarks> /// This value is sent during the authorization process and is displayed /// in the consumer's account. /// </remarks> /// <param name="value">eCheck</param> /// <returns>AuthorizationBuilder</returns> public ManagementBuilder WithBankTransferDetails(eCheck value) { BankTransferDetails = value; return(this); }
internal static GpApiRequest BuildRequest(AuthorizationBuilder builder, GpApiConnector gateway) { var merchantUrl = !string.IsNullOrEmpty(gateway.GpApiConfig.MerchantId) ? $"/merchants/{gateway.GpApiConfig.MerchantId}" : string.Empty; var paymentMethod = new JsonDoc() .Set("entry_mode", GetEntryMode(builder, gateway.GpApiConfig.Channel)); // [MOTO, ECOM, IN_APP, CHIP, SWIPE, MANUAL, CONTACTLESS_CHIP, CONTACTLESS_SWIPE] paymentMethod.Set("narrative", !string.IsNullOrEmpty(builder.DynamicDescriptor) ? builder.DynamicDescriptor : null); if (builder.PaymentMethod is CreditCardData && (builder.TransactionModifier == TransactionModifier.EncryptedMobile || builder.TransactionModifier == TransactionModifier.DecryptedMobile)) { var digitalWallet = new JsonDoc(); var creditCardData = (builder.PaymentMethod as CreditCardData); //Digital Wallet if (builder.TransactionModifier == TransactionModifier.EncryptedMobile) { digitalWallet .Set("payment_token", JsonDoc.Parse(creditCardData.Token)); } else if (builder.TransactionModifier == TransactionModifier.DecryptedMobile) { var tokenFormat = DigitalWalletTokenFormat.CARD_NUMBER; digitalWallet .Set("token", creditCardData.Token) .Set("token_format", DigitalWalletTokenFormat.CARD_NUMBER) .Set("expiry_month", creditCardData.ExpMonth.HasValue ? creditCardData.ExpMonth.ToString().PadLeft(2, '0') : null) .Set("expiry_year", creditCardData.ExpYear.HasValue ? creditCardData.ExpYear.ToString().PadLeft(4, '0').Substring(2, 2) : null) .Set("cryptogram", creditCardData.Cryptogram) .Set("eci", creditCardData.Eci); } digitalWallet.Set("provider", (builder.PaymentMethod as CreditCardData).MobileType); paymentMethod.Set("digital_wallet", digitalWallet); } else { if (builder.PaymentMethod is ICardData) { var cardData = builder.PaymentMethod as ICardData; var card = new JsonDoc() .Set("number", cardData.Number) .Set("expiry_month", cardData.ExpMonth.HasValue ? cardData.ExpMonth.ToString().PadLeft(2, '0') : null) .Set("expiry_year", cardData.ExpYear.HasValue ? cardData.ExpYear.ToString().PadLeft(4, '0').Substring(2, 2) : null) //.Set("track", "") .Set("tag", builder.TagData) .Set("cvv", cardData.Cvn) .Set("avs_address", builder.BillingAddress?.StreetAddress1) .Set("avs_postal_code", builder.BillingAddress?.PostalCode) .Set("authcode", builder.OfflineAuthCode) .Set("brand_reference", builder.CardBrandTransactionId); card.Set("chip_condition", EnumConverter.GetMapping(Target.GP_API, builder.EmvChipCondition)); // [PREV_SUCCESS, PREV_FAILED] if (!(builder.TransactionType == TransactionType.Tokenize || builder.TransactionType == TransactionType.Verify)) { card.Set("cvv_indicator", cardData.CvnPresenceIndicator != 0 ? EnumConverter.GetMapping(Target.GP_API, cardData.CvnPresenceIndicator) : null); // [ILLEGIBLE, NOT_PRESENT, PRESENT] card.Set("funding", builder.PaymentMethod?.PaymentMethodType == PaymentMethodType.Debit ? "DEBIT" : "CREDIT"); // [DEBIT, CREDIT] } var hasToken = builder.PaymentMethod is ITokenizable tokenData && !string.IsNullOrEmpty(tokenData.Token); if (!hasToken) { paymentMethod.Set("card", card); } if (builder.TransactionType == TransactionType.Tokenize) { var tokenizationData = new JsonDoc() .Set("account_name", gateway.GpApiConfig.AccessTokenInfo.TokenizationAccountName) .Set("reference", builder.ClientTransactionId ?? Guid.NewGuid().ToString()) .Set("usage_mode", EnumConverter.GetMapping(Target.GP_API, builder.PaymentMethodUsageMode)) .Set("card", card); return(new GpApiRequest { Verb = HttpMethod.Post, Endpoint = $"{merchantUrl}/payment-methods", RequestBody = tokenizationData.ToString(), }); } else if (builder.TransactionType == TransactionType.DccRateLookup) { // tokenized payment method if (builder.PaymentMethod is ITokenizable) { string token = ((ITokenizable)builder.PaymentMethod).Token; if (!string.IsNullOrEmpty(token)) { paymentMethod.Set("id", token); } } var RequestData = new JsonDoc() .Set("account_name", gateway.GpApiConfig.AccessTokenInfo.TransactionProcessingAccountName) .Set("channel", EnumConverter.GetMapping(Target.GP_API, gateway.GpApiConfig.Channel)) .Set("reference", builder.ClientTransactionId ?? Guid.NewGuid().ToString()) .Set("amount", builder.Amount.ToNumericCurrencyString()) .Set("currency", builder.Currency) .Set("country", gateway.GpApiConfig.Country) .Set("payment_method", paymentMethod); return(new GpApiRequest { Verb = HttpMethod.Post, Endpoint = $"{merchantUrl}/currency-conversions", RequestBody = RequestData.ToString(), }); } else if (builder.TransactionType == TransactionType.Verify) { if (builder.RequestMultiUseToken && string.IsNullOrEmpty((builder.PaymentMethod as ITokenizable).Token)) { var tokenizationData = new JsonDoc() .Set("account_name", gateway.GpApiConfig.AccessTokenInfo.TokenizationAccountName) .Set("reference", builder.ClientTransactionId ?? Guid.NewGuid().ToString()) .Set("usage_mode", EnumConverter.GetMapping(Target.GP_API, builder.PaymentMethodUsageMode)) .Set("fingerprint_mode", builder.CustomerData?.DeviceFingerPrint ?? null) .Set("card", card); return(new GpApiRequest { Verb = HttpMethod.Post, Endpoint = $"{merchantUrl}/payment-methods", RequestBody = tokenizationData.ToString(), }); } else { var verificationData = new JsonDoc() .Set("account_name", gateway.GpApiConfig.AccessTokenInfo.TransactionProcessingAccountName) .Set("channel", EnumConverter.GetMapping(Target.GP_API, gateway.GpApiConfig.Channel)) .Set("reference", builder.ClientTransactionId ?? Guid.NewGuid().ToString()) .Set("currency", builder.Currency) .Set("country", gateway.GpApiConfig.Country) .Set("payment_method", paymentMethod); if (builder.PaymentMethod is ITokenizable && !string.IsNullOrEmpty((builder.PaymentMethod as ITokenizable).Token)) { verificationData.Remove("payment_method"); verificationData.Set("payment_method", new JsonDoc() .Set("entry_mode", GetEntryMode(builder, gateway.GpApiConfig.Channel)) .Set("id", (builder.PaymentMethod as ITokenizable).Token) .Set("fingerprint_mode", builder.CustomerData?.DeviceFingerPrint ?? null) ); } return(new GpApiRequest { Verb = HttpMethod.Post, Endpoint = $"{merchantUrl}/verifications", RequestBody = verificationData.ToString(), }); } } } else if (builder.PaymentMethod is ITrackData) { var track = builder.PaymentMethod as ITrackData; var card = new JsonDoc() .Set("track", track.Value) .Set("tag", builder.TagData) .Set("avs_address", builder.BillingAddress?.StreetAddress1) .Set("avs_postal_code", builder.BillingAddress?.PostalCode) .Set("authcode", builder.OfflineAuthCode); if (builder.TransactionType == TransactionType.Verify) { paymentMethod.Set("card", card); var verificationData = new JsonDoc() .Set("account_name", gateway.GpApiConfig.AccessTokenInfo.TransactionProcessingAccountName) .Set("channel", EnumConverter.GetMapping(Target.GP_API, gateway.GpApiConfig.Channel)) .Set("reference", builder.ClientTransactionId ?? Guid.NewGuid().ToString()) .Set("currency", builder.Currency) .Set("country", gateway.GpApiConfig.Country) .Set("payment_method", paymentMethod) .Set("fingerprint_mode", builder.CustomerData?.DeviceFingerPrint ?? null); return(new GpApiRequest { Verb = HttpMethod.Post, Endpoint = $"{merchantUrl}/verifications", RequestBody = verificationData.ToString(), }); } if (builder.TransactionType == TransactionType.Sale || builder.TransactionType == TransactionType.Refund) { if (string.IsNullOrEmpty(track.Value)) { card.Set("number", track.Pan); card.Set("expiry_month", track.Expiry?.Substring(2, 2)); card.Set("expiry_year", track.Expiry?.Substring(0, 2)); } if (string.IsNullOrEmpty(builder.TagData)) { card.Set("chip_condition", EnumConverter.GetMapping(Target.GP_API, builder.EmvChipCondition)); // [PREV_SUCCESS, PREV_FAILED] } } if (builder.TransactionType == TransactionType.Sale) { card.Set("funding", builder.PaymentMethod?.PaymentMethodType == PaymentMethodType.Debit ? "DEBIT" : "CREDIT"); // [DEBIT, CREDIT] } paymentMethod.Set("card", card); } // tokenized payment method if (builder.PaymentMethod is ITokenizable) { string token = ((ITokenizable)builder.PaymentMethod).Token; if (!string.IsNullOrEmpty(token)) { paymentMethod.Set("id", token); } } } // payment method storage mode if (builder.RequestMultiUseToken) { //ToDo: there might be a typo: should be storage_mode paymentMethod.Set("storage_mode", "ON_SUCCESS"); } // pin block if (builder.PaymentMethod is IPinProtected) { paymentMethod.Get("card")?.Set("pin_block", ((IPinProtected)builder.PaymentMethod).PinBlock); } // authentication if (builder.PaymentMethod is CreditCardData) { paymentMethod.Set("name", (builder.PaymentMethod as CreditCardData).CardHolderName); var secureEcom = (builder.PaymentMethod as CreditCardData).ThreeDSecure; if (secureEcom != null) { var authentication = new JsonDoc().Set("id", secureEcom.ServerTransactionId); paymentMethod.Set("authentication", authentication); } paymentMethod.Set("fingerprint_mode", builder.CustomerData?.DeviceFingerPrint ?? null); } if (builder.PaymentMethod is EBT) { paymentMethod.Set("name", (builder.PaymentMethod as EBT).CardHolderName); } if (builder.PaymentMethod is eCheck) { eCheck check = (builder.PaymentMethod as eCheck); paymentMethod.Set("name", check.CheckHolderName); var bankTransfer = new JsonDoc() .Set("account_number", check.AccountNumber) .Set("account_type", (check.AccountType != null) ? EnumConverter.GetMapping(Target.GP_API, check.AccountType) : null) .Set("check_reference", check.CheckReference) .Set("sec_code", check.SecCode) .Set("narrative", check.MerchantNotes); var bank = new JsonDoc() .Set("code", check.RoutingNumber) .Set("name", check.BankName); var address = new JsonDoc() .Set("line_1", check.BankAddress?.StreetAddress1) .Set("line_2", check.BankAddress?.StreetAddress2) .Set("line_3", check.BankAddress?.StreetAddress3) .Set("city", check.BankAddress?.City) .Set("postal_code", check.BankAddress?.PostalCode) .Set("state", check.BankAddress?.State) .Set("country", check.BankAddress?.CountryCode); bank.Set("address", address); bankTransfer.Set("bank", bank); paymentMethod.Set("bank_transfer", bankTransfer); } if (builder.PaymentMethod is AlternativePaymentMethod) { var alternatepaymentMethod = (AlternativePaymentMethod)builder.PaymentMethod; paymentMethod.Set("name", alternatepaymentMethod.AccountHolderName); var apm = new JsonDoc() .Set("provider", alternatepaymentMethod.AlternativePaymentMethodType?.ToString()?.ToLower()) .Set("address_override_mode", alternatepaymentMethod.AddressOverrideMode); paymentMethod.Set("apm", apm); } // encryption if (builder.PaymentMethod is IEncryptable) { var encryptionData = ((IEncryptable)builder.PaymentMethod).EncryptionData; if (encryptionData != null) { var encryption = new JsonDoc() .Set("version", encryptionData.Version); if (!string.IsNullOrEmpty(encryptionData.KTB)) { encryption.Set("method", "KTB"); encryption.Set("info", encryptionData.KTB); } else if (!string.IsNullOrEmpty(encryptionData.KSN)) { encryption.Set("method", "KSN"); encryption.Set("info", encryptionData.KSN); } if (encryption.Has("info")) { paymentMethod.Set("encryption", encryption); } } } if (builder.TransactionType == TransactionType.Create && builder.PayLinkData is PayLinkData) { var payLinkData = builder.PayLinkData; var requestData = new JsonDoc() .Set("usage_limit", payLinkData.UsageLimit.ToString()) .Set("usage_mode", EnumConverter.GetMapping(Target.GP_API, payLinkData.UsageMode)) .Set("images", payLinkData.Images) .Set("description", builder.Description ?? null) .Set("type", payLinkData.Type?.ToString()) .Set("expiration_date", payLinkData.ExpirationDate ?? null); var transaction = new JsonDoc() .Set("country", gateway.GpApiConfig.Country) .Set("amount", builder.Amount.ToNumericCurrencyString()) .Set("channel", EnumConverter.GetMapping(Target.GP_API, gateway.GpApiConfig.Channel)) .Set("currency", builder.Currency) .Set("allowed_payment_methods", GetAllowedPaymentMethod(payLinkData.AllowedPaymentMethods)); requestData.Set("transactions", transaction) .Set("reference", builder.ClientTransactionId ?? Guid.NewGuid().ToString()) .Set("shipping_amount", payLinkData.ShippingAmount.ToNumericCurrencyString()) .Set("shippable", payLinkData.IsShippable?.ToString() ?? false.ToString()) .Set("account_name", gateway.GpApiConfig.AccessTokenInfo.TransactionProcessingAccountName) .Set("name", payLinkData.Name ?? null); var notification = new JsonDoc() .Set("cancel_url", payLinkData.CancelUrl) .Set("return_url", payLinkData.ReturnUrl) .Set("status_url", payLinkData.StatusUpdateUrl); requestData.Set("notifications", notification) .Set("status", payLinkData.Status.ToString()); return(new GpApiRequest { Verb = HttpMethod.Post, Endpoint = $"{merchantUrl}/links", RequestBody = requestData.ToString(), }); } var data = new JsonDoc() .Set("account_name", gateway.GpApiConfig.AccessTokenInfo.TransactionProcessingAccountName) .Set("type", builder.TransactionType == TransactionType.Refund ? "REFUND" : "SALE") // [SALE, REFUND] .Set("channel", EnumConverter.GetMapping(Target.GP_API, gateway.GpApiConfig.Channel)) // [CP, CNP] .Set("capture_mode", GetCaptureMode(builder)) // [AUTO, LATER, MULTIPLE] //.Set("remaining_capture_count", "") //Pending Russell .Set("authorization_mode", builder.AllowPartialAuth ? "PARTIAL" : null) .Set("amount", builder.Amount.ToNumericCurrencyString()) .Set("currency", builder.Currency) .Set("reference", builder.ClientTransactionId ?? Guid.NewGuid().ToString()) .Set("description", builder.Description) //.Set("order_reference", builder.OrderId) .Set("gratuity_amount", builder.Gratuity.ToNumericCurrencyString()) .Set("cashback_amount", builder.CashBackAmount.ToNumericCurrencyString()) .Set("surcharge_amount", builder.SurchargeAmount.ToNumericCurrencyString()) .Set("convenience_amount", builder.ConvenienceAmount.ToNumericCurrencyString()) .Set("country", gateway.GpApiConfig.Country) //.Set("language", EnumConverter.GetMapping(Target.GP_API, Language)) .Set("ip_address", builder.CustomerIpAddress) //.Set("site_reference", "") // .Set("currency_conversion", !string.IsNullOrEmpty(builder.DccRateData?.DccId) ? new JsonDoc().Set("id", builder.DccRateData.DccId) : null) .Set("payment_method", paymentMethod) .Set("link", !string.IsNullOrEmpty(builder.PaymentLinkId) ? new JsonDoc() .Set("id", builder.PaymentLinkId) : null); if (builder.PaymentMethod is eCheck || builder.PaymentMethod is AlternativePaymentMethod) { data.Set("payer", SetPayerInformation(builder)); } // set order reference if (!string.IsNullOrEmpty(builder.OrderId)) { var order = new JsonDoc() .Set("reference", builder.OrderId); data.Set("order", order); } if (builder.PaymentMethod is AlternativePaymentMethod) { setOrderInformation(builder, ref data); var alternatepaymentMethod = (AlternativePaymentMethod)builder.PaymentMethod; var notifications = new JsonDoc() .Set("return_url", alternatepaymentMethod?.ReturnUrl) .Set("status_url", alternatepaymentMethod?.StatusUpdateUrl) .Set("cancel_url", alternatepaymentMethod?.CancelUrl); data.Set("notifications", notifications); } // stored credential if (builder.StoredCredential != null) { data.Set("initiator", EnumConverter.GetMapping(Target.GP_API, builder.StoredCredential.Initiator)); var storedCredential = new JsonDoc() .Set("model", EnumConverter.GetMapping(Target.GP_API, builder.StoredCredential.Type)) .Set("reason", EnumConverter.GetMapping(Target.GP_API, builder.StoredCredential.Reason)) .Set("sequence", EnumConverter.GetMapping(Target.GP_API, builder.StoredCredential.Sequence)); data.Set("stored_credential", storedCredential); } return(new GpApiRequest { Verb = HttpMethod.Post, Endpoint = $"{merchantUrl}/transactions", RequestBody = data.ToString(), }); }
//[-] List<ClsBindGridColumn_EO> BindGrid( DataTable Dt_List , eCheck Check = eCheck.None) { DataRow Dr_Bind = Do_Methods_Query.GetSystemBindDefinition(this.mSelectionName); List<ClsBindGridColumn_EO> List_Gc = Layer01_Methods_Web_EO.GetBindGridColumn_EO(this.mSelectionName); string Bind_TableKey = (string)Do_Methods.IsNull(Dr_Bind["TableKey"], ""); string TableKey = (string)this.ViewState[CnsQuery_Selection_Key]; if (TableKey != "") { Bind_TableKey = TableKey; } Dt_List.Columns.Add("IsSelect", typeof(bool)); ClsBindGridColumn_EO Gc = new ClsBindGridColumn_EO( "IsSelect" , "Select?" , 80 , "" , Layer01_Common.Common.Layer01_Constants.eSystem_Lookup_FieldType.FieldType_Checkbox , this.mIsMultipleSelect); List_Gc.Insert(0, Gc); if (Check == eCheck.None) { foreach (DataRow Dr in this.mDt_Selected.Rows) { DataRow[] Inner_ArrDr = Dt_List.Select(Bind_TableKey + " = " + Convert.ToInt64(Dr["ID"]).ToString()); if (Inner_ArrDr.Length > 0) { Inner_ArrDr[0]["IsSelect"] = Do_Methods.IsNull(Dr["IsSelect"], false); } } } else { bool Inner_IsSelect = Check == eCheck.CheckAll; foreach (DataRow Dr in Dt_List.Rows) { Dr["IsSelect"] = Inner_IsSelect; } } this.EOGrid_Selection.FullRowMode = true; Layer01_Methods_Web_EO.BindEOGrid(ref this.EOGrid_Selection, Dt_List, List_Gc, Bind_TableKey, false, false); return List_Gc; }
public void Init() { ServicesContainer.ConfigureService(new BillPayConfig { MerchantName = "IntegrationTesting", Username = "******", Password = "******", ServiceUrl = ServiceEndpoints.BILLPAY_CERTIFICATION }); ServicesContainer.ConfigureService(new BillPayConfig { MerchantName = "IntegrationTestingBillUpload", Username = "******", Password = "******", ServiceUrl = ServiceEndpoints.BILLPAY_CERTIFICATION }, "billload"); ach = new eCheck() { AccountNumber = "12345", RoutingNumber = "064000017", AccountType = AccountType.CHECKING, CheckType = CheckType.BUSINESS, SecCode = "WEB", CheckHolderName = "Tester", BankName = "Regions" }; clearTextCredit = new CreditCardData() { Number = "4444444444444448", ExpMonth = DateTime.Now.Month, ExpYear = DateTime.Now.Year, Cvn = "123", CardHolderName = "Test Tester" }; address = new Address() { StreetAddress1 = "1234 Test St", StreetAddress2 = "Apt 201", City = "Auburn", State = "AL", Country = "US", PostalCode = "12345" }; customer = new Customer() { Address = address, Email = "*****@*****.**", FirstName = "Test", LastName = "Tester", HomePhone = "555-555-4444", }; bill = new Bill() { Amount = 50M, Identifier1 = "12345" }; bills = new Bill[] { new Bill() { BillType = "Tax Payments", Identifier1 = "123", Amount = 10M }, new Bill() { BillType = "Tax Payments", Identifier1 = "321", Amount = 10M } }; billLoad = new Bill() { Amount = 50M, BillType = "Tax Payments", Identifier1 = "12345", Identifier2 = "23456", BillPresentment = BillPresentment.Full, DueDate = DateTime.Now.AddDays(3), Customer = customer }; blindBill = new Bill() { Amount = 50M, BillType = "Tax Payments", Identifier1 = "12345", Identifier2 = "23456", BillPresentment = BillPresentment.Full, DueDate = DateTime.Now.AddDays(1), Customer = customer }; }
public void Init() { ServicesContainer.ConfigureService(new GatewayConfig { SecretApiKey = "skapi_cert_MTYcAgCxWWEAp8AlBkChNfvTSWWkjf-nkAw2cdoijg", ServiceUrl = "https://cert.api2.heartlandportico.com", // OpenPathApiKey = "fteaWC5MYeVKdZ2EaQASDDgCtAS4Fh2zrzW4Yyds", OpenPathApiUrl = "http://localhost:35808/v1/globalpayments" }); activateCard1 = new eCheck { CheckHolderName = "First Last", RoutingNumber = "122000030", AccountNumber = "1357902468", EntryMode = EntryMethod.Manual, SecCode = "WEB", AccountType = AccountType.CHECKING, CheckType = CheckType.PERSONAL, }; activateCard2 = new eCheck { CheckHolderName = "First Last", RoutingNumber = "122000030", AccountNumber = "1357902468", EntryMode = EntryMethod.Manual, SecCode = "WEB", AccountType = AccountType.SAVINGS, CheckType = CheckType.PERSONAL, }; activateCard3 = new eCheck { CheckHolderName = "First Last", RoutingNumber = "122000030", AccountNumber = "1357902468", EntryMode = EntryMethod.Manual, SecCode = "WEB", AccountType = AccountType.SAVINGS, CheckType = CheckType.BUSINESS, CheckName = "First Last" }; check = new eCheck { AccountNumber = "24413815", RoutingNumber = "490000018", CheckType = CheckType.PERSONAL, SecCode = SecCode.PPD, AccountType = AccountType.CHECKING, EntryMode = EntryMethod.Manual, CheckHolderName = "John Doe", DriversLicenseNumber = "09876543210", DriversLicenseState = "TX", PhoneNumber = "8003214567", BirthYear = 1997, SsnLast4 = "4321", CheckName = "" }; address = new Address { StreetAddress1 = "123 Main St.", City = "Downtown", State = "NJ", PostalCode = "12345" }; }
void EOCb_Search_Execute(object sender, EO.Web.CallbackEventArgs e) { eCheck Check = eCheck.None; if (e.Parameter == this.Btn_NewSearch.ID) { this.Selection_ClearFilters(); this.Selection_AddFilter(); } else if (e.Parameter == this.Btn_AddSearch.ID) { this.Selection_AddFilter(); } else if (e.Parameter == this.Btn_SortAsc.ID) { this.Selection_AddSort(true); } else if (e.Parameter == this.Btn_SortDesc.ID) { this.Selection_AddSort(false); } else if (e.Parameter == this.Btn_Clear.ID) { this.Selection_ClearFilters(); } else if (e.Parameter == this.Btn_CheckAll.ID) { Check = eCheck.CheckAll; } else if (e.Parameter == this.Btn_UncheckAll.ID) { Check = eCheck.UncheckAll; } if (Check == eCheck.None) { this.PostGrid_Selected(); } this.RebindGrid(Check); string ViewState_DisplayFilterString = (string)this.ViewState[CnsDisplayFilterString]; string ViewState_DisplayOrderString = (string)this.ViewState[CnsDisplayOrderString]; string Desc_Count = ""; string Desc_Filter = ""; string Desc_Sort = ""; Desc_Count = this.Details_ItemsCount() + @"<br /><br />"; if (ViewState_DisplayFilterString != "") { Desc_Filter = "Filtered By: " + ViewState_DisplayFilterString + @"<br /><br />"; } if (ViewState_DisplayOrderString != "") { Desc_Sort = "Sorted By: " + ViewState_DisplayOrderString + @"<br /><br />"; } this.Lbl_AppliedFilters.Text = Desc_Count + Desc_Filter + Desc_Sort; try { this.EOCbp_EOGrid_Selection.Update(); this.EOCbp_Applied.Update(); this.EOCb_Cbo_Page.Update(); } catch { } }