activemerchant 1.131.0 → 1.137.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +262 -0
- data/lib/active_merchant/billing/check.rb +2 -2
- data/lib/active_merchant/billing/compatibility.rb +4 -4
- data/lib/active_merchant/billing/credit_card.rb +13 -8
- data/lib/active_merchant/billing/credit_card_formatting.rb +4 -0
- data/lib/active_merchant/billing/credit_card_methods.rb +64 -7
- data/lib/active_merchant/billing/gateway.rb +9 -0
- data/lib/active_merchant/billing/gateways/adyen.rb +240 -41
- data/lib/active_merchant/billing/gateways/airwallex.rb +26 -12
- data/lib/active_merchant/billing/gateways/alelo.rb +23 -5
- data/lib/active_merchant/billing/gateways/authorize_net.rb +43 -35
- data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +10 -6
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +1 -3
- data/lib/active_merchant/billing/gateways/axcessms.rb +6 -2
- data/lib/active_merchant/billing/gateways/banwire.rb +4 -2
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +7 -3
- data/lib/active_merchant/billing/gateways/blue_pay.rb +13 -5
- data/lib/active_merchant/billing/gateways/blue_snap.rb +5 -5
- data/lib/active_merchant/billing/gateways/borgun.rb +6 -4
- data/lib/active_merchant/billing/gateways/braintree/token_nonce.rb +65 -20
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +226 -73
- data/lib/active_merchant/billing/gateways/braintree_orange.rb +1 -1
- data/lib/active_merchant/billing/gateways/card_connect.rb +5 -2
- data/lib/active_merchant/billing/gateways/card_stream.rb +4 -6
- data/lib/active_merchant/billing/gateways/cashnet.rb +1 -1
- data/lib/active_merchant/billing/gateways/cecabank/cecabank_common.rb +36 -0
- data/lib/active_merchant/billing/gateways/cecabank/cecabank_json.rb +316 -0
- data/lib/active_merchant/billing/gateways/cecabank/cecabank_xml.rb +220 -0
- data/lib/active_merchant/billing/gateways/cecabank.rb +7 -240
- data/lib/active_merchant/billing/gateways/checkout_v2.rb +242 -41
- data/lib/active_merchant/billing/gateways/commerce_hub.rb +69 -8
- data/lib/active_merchant/billing/gateways/credorax.rb +3 -5
- data/lib/active_merchant/billing/gateways/cyber_source.rb +192 -41
- data/lib/active_merchant/billing/gateways/cyber_source_rest.rb +102 -58
- data/lib/active_merchant/billing/gateways/d_local.rb +26 -15
- data/lib/active_merchant/billing/gateways/data_cash.rb +21 -17
- data/lib/active_merchant/billing/gateways/datatrans.rb +279 -0
- data/lib/active_merchant/billing/gateways/decidir.rb +53 -18
- data/lib/active_merchant/billing/gateways/decidir_plus.rb +4 -1
- data/lib/active_merchant/billing/gateways/deepstack.rb +382 -0
- data/lib/active_merchant/billing/gateways/ebanx.rb +40 -36
- data/lib/active_merchant/billing/gateways/efsnet.rb +6 -2
- data/lib/active_merchant/billing/gateways/elavon.rb +99 -33
- data/lib/active_merchant/billing/gateways/element.rb +36 -7
- data/lib/active_merchant/billing/gateways/epay.rb +6 -2
- data/lib/active_merchant/billing/gateways/evo_ca.rb +6 -2
- data/lib/active_merchant/billing/gateways/eway.rb +4 -2
- data/lib/active_merchant/billing/gateways/eway_managed.rb +6 -2
- data/lib/active_merchant/billing/gateways/exact.rb +6 -2
- data/lib/active_merchant/billing/gateways/fat_zebra.rb +31 -3
- data/lib/active_merchant/billing/gateways/federated_canada.rb +6 -2
- data/lib/active_merchant/billing/gateways/first_pay/first_pay_common.rb +15 -0
- data/lib/active_merchant/billing/gateways/first_pay/first_pay_json.rb +190 -0
- data/lib/active_merchant/billing/gateways/first_pay/first_pay_xml.rb +183 -0
- data/lib/active_merchant/billing/gateways/first_pay.rb +6 -172
- data/lib/active_merchant/billing/gateways/firstdata_e4.rb +6 -2
- data/lib/active_merchant/billing/gateways/firstdata_e4_v27.rb +7 -3
- data/lib/active_merchant/billing/gateways/flex_charge.rb +347 -0
- data/lib/active_merchant/billing/gateways/garanti.rb +4 -2
- data/lib/active_merchant/billing/gateways/global_collect.rb +45 -37
- data/lib/active_merchant/billing/gateways/hi_pay.rb +286 -0
- data/lib/active_merchant/billing/gateways/hps.rb +1 -1
- data/lib/active_merchant/billing/gateways/iats_payments.rb +7 -2
- data/lib/active_merchant/billing/gateways/inspire.rb +6 -4
- data/lib/active_merchant/billing/gateways/instapay.rb +7 -4
- data/lib/active_merchant/billing/gateways/ipg.rb +10 -6
- data/lib/active_merchant/billing/gateways/iridium.rb +15 -5
- data/lib/active_merchant/billing/gateways/itransact.rb +6 -2
- data/lib/active_merchant/billing/gateways/iveri.rb +3 -3
- data/lib/active_merchant/billing/gateways/ixopay.rb +2 -2
- data/lib/active_merchant/billing/gateways/jetpay.rb +4 -2
- data/lib/active_merchant/billing/gateways/jetpay_v2.rb +4 -2
- data/lib/active_merchant/billing/gateways/kushki.rb +73 -13
- data/lib/active_merchant/billing/gateways/linkpoint.rb +6 -2
- data/lib/active_merchant/billing/gateways/litle.rb +33 -50
- data/lib/active_merchant/billing/gateways/mastercard.rb +4 -4
- data/lib/active_merchant/billing/gateways/maxipago.rb +2 -2
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +8 -5
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +11 -4
- data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +11 -4
- data/lib/active_merchant/billing/gateways/merchant_warrior.rb +19 -3
- data/lib/active_merchant/billing/gateways/mercury.rb +6 -2
- data/lib/active_merchant/billing/gateways/metrics_global.rb +8 -6
- data/lib/active_merchant/billing/gateways/migs/migs_codes.rb +1 -0
- data/lib/active_merchant/billing/gateways/migs.rb +6 -2
- data/lib/active_merchant/billing/gateways/mit.rb +25 -20
- data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +18 -10
- data/lib/active_merchant/billing/gateways/monei.rb +1 -1
- data/lib/active_merchant/billing/gateways/moneris.rb +9 -3
- data/lib/active_merchant/billing/gateways/money_movers.rb +6 -2
- data/lib/active_merchant/billing/gateways/nab_transact.rb +12 -4
- data/lib/active_merchant/billing/gateways/net_registry.rb +6 -2
- data/lib/active_merchant/billing/gateways/netbanx.rb +1 -3
- data/lib/active_merchant/billing/gateways/netbilling.rb +6 -2
- data/lib/active_merchant/billing/gateways/network_merchants.rb +6 -2
- data/lib/active_merchant/billing/gateways/nmi.rb +23 -6
- data/lib/active_merchant/billing/gateways/ogone.rb +6 -2
- data/lib/active_merchant/billing/gateways/openpay.rb +4 -2
- data/lib/active_merchant/billing/gateways/opp.rb +1 -2
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +6 -2
- data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +1 -3
- data/lib/active_merchant/billing/gateways/orbital.rb +83 -24
- data/lib/active_merchant/billing/gateways/pac_net_raven.rb +7 -4
- data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +6 -2
- data/lib/active_merchant/billing/gateways/pay_hub.rb +4 -2
- data/lib/active_merchant/billing/gateways/pay_junction.rb +6 -2
- data/lib/active_merchant/billing/gateways/pay_secure.rb +6 -2
- data/lib/active_merchant/billing/gateways/pay_trace.rb +31 -18
- data/lib/active_merchant/billing/gateways/payeezy.rb +19 -8
- data/lib/active_merchant/billing/gateways/payex.rb +4 -2
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +1 -1
- data/lib/active_merchant/billing/gateways/payflow.rb +1 -3
- data/lib/active_merchant/billing/gateways/payment_express.rb +8 -4
- data/lib/active_merchant/billing/gateways/paymentez.rb +23 -11
- data/lib/active_merchant/billing/gateways/paysafe.rb +12 -11
- data/lib/active_merchant/billing/gateways/payscout.rb +7 -4
- data/lib/active_merchant/billing/gateways/paystation.rb +7 -3
- data/lib/active_merchant/billing/gateways/payway.rb +6 -2
- data/lib/active_merchant/billing/gateways/payway_dot_com.rb +3 -3
- data/lib/active_merchant/billing/gateways/pin.rb +22 -4
- data/lib/active_merchant/billing/gateways/plexo.rb +49 -10
- data/lib/active_merchant/billing/gateways/plugnpay.rb +6 -2
- data/lib/active_merchant/billing/gateways/priority.rb +6 -5
- data/lib/active_merchant/billing/gateways/psigate.rb +6 -2
- data/lib/active_merchant/billing/gateways/psl_card.rb +6 -2
- data/lib/active_merchant/billing/gateways/qbms.rb +6 -2
- data/lib/active_merchant/billing/gateways/quantum.rb +6 -2
- data/lib/active_merchant/billing/gateways/quickbooks.rb +6 -5
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +7 -4
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_v4to7.rb +6 -2
- data/lib/active_merchant/billing/gateways/rapyd.rb +148 -46
- data/lib/active_merchant/billing/gateways/reach.rb +11 -4
- data/lib/active_merchant/billing/gateways/redsys.rb +2 -10
- data/lib/active_merchant/billing/gateways/redsys_rest.rb +507 -0
- data/lib/active_merchant/billing/gateways/s5.rb +3 -3
- data/lib/active_merchant/billing/gateways/safe_charge.rb +38 -17
- data/lib/active_merchant/billing/gateways/sage.rb +12 -4
- data/lib/active_merchant/billing/gateways/sage_pay.rb +79 -5
- data/lib/active_merchant/billing/gateways/sallie_mae.rb +6 -2
- data/lib/active_merchant/billing/gateways/secure_net.rb +6 -2
- data/lib/active_merchant/billing/gateways/secure_pay.rb +8 -6
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +12 -4
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +6 -2
- data/lib/active_merchant/billing/gateways/securion_pay.rb +24 -10
- data/lib/active_merchant/billing/gateways/shift4.rb +17 -20
- data/lib/active_merchant/billing/gateways/shift4_v2.rb +117 -0
- data/lib/active_merchant/billing/gateways/simetrik.rb +17 -11
- data/lib/active_merchant/billing/gateways/skip_jack.rb +6 -2
- data/lib/active_merchant/billing/gateways/smart_ps.rb +7 -4
- data/lib/active_merchant/billing/gateways/so_easy_pay.rb +4 -2
- data/lib/active_merchant/billing/gateways/spreedly_core.rb +2 -4
- data/lib/active_merchant/billing/gateways/stripe.rb +63 -19
- data/lib/active_merchant/billing/gateways/stripe_payment_intents.rb +280 -88
- data/lib/active_merchant/billing/gateways/sum_up.rb +223 -0
- data/lib/active_merchant/billing/gateways/swipe_checkout.rb +4 -2
- data/lib/active_merchant/billing/gateways/telr.rb +3 -4
- data/lib/active_merchant/billing/gateways/trans_first.rb +1 -2
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +8 -16
- data/lib/active_merchant/billing/gateways/transact_pro.rb +1 -1
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +6 -2
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +9 -8
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +6 -2
- data/lib/active_merchant/billing/gateways/vanco.rb +2 -4
- data/lib/active_merchant/billing/gateways/vantiv_express.rb +587 -0
- data/lib/active_merchant/billing/gateways/verifi.rb +6 -2
- data/lib/active_merchant/billing/gateways/viaklix.rb +6 -2
- data/lib/active_merchant/billing/gateways/visanet_peru.rb +2 -2
- data/lib/active_merchant/billing/gateways/vpos.rb +4 -4
- data/lib/active_merchant/billing/gateways/wirecard.rb +7 -3
- data/lib/active_merchant/billing/gateways/wompi.rb +5 -0
- data/lib/active_merchant/billing/gateways/worldpay.rb +141 -93
- data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +13 -10
- data/lib/active_merchant/billing/gateways/xpay.rb +242 -0
- data/lib/active_merchant/billing/network_tokenization_credit_card.rb +1 -1
- data/lib/active_merchant/billing/response.rb +2 -2
- data/lib/active_merchant/connection.rb +3 -17
- data/lib/active_merchant/country.rb +1 -0
- data/lib/active_merchant/errors.rb +10 -0
- data/lib/active_merchant/version.rb +1 -1
- data/lib/support/gateway_support.rb +2 -2
- data/lib/support/ssl_verify.rb +4 -4
- data/lib/support/ssl_version.rb +6 -6
- metadata +30 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d71204a4cd8ef7e75b2c6f2116d56af1d2effc900cc89aa4946181d664a1ffb2
|
|
4
|
+
data.tar.gz: ead62c51a2d708e9e79e39fea62021dfdc72fbdaefad045099e4b9238d9ac355
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1d029ce9b932cc72acd56799cfa4ed6debb36ce153290eb99c260a400abd08f108fd9f0ae547e558f009c0d37f49df5008c7b0bbc5adf5e4810ed562058d82bb
|
|
7
|
+
data.tar.gz: 1ecb1bc3e94611c3017f233ed3ea59efd91213ad07497aa2f38ec731536aec6bd518853d6cf044d7a9217a068c92f08e1df98cca29596d1005773bc2bdeb1692
|
data/CHANGELOG
CHANGED
|
@@ -3,6 +3,267 @@
|
|
|
3
3
|
|
|
4
4
|
== HEAD
|
|
5
5
|
|
|
6
|
+
= Version 1.137.0 (August 2, 2024)
|
|
7
|
+
|
|
8
|
+
* Unlock dependency on `rexml` to allow fixing a CVE (#5181).
|
|
9
|
+
* Bump Ruby version to 3.1 [dustinhaefele] #5104
|
|
10
|
+
* FlexCharge: Update inquire method to use the new orders end-point
|
|
11
|
+
* Worldpay: Prefer options for network_transaction_id [aenand] #5129
|
|
12
|
+
* Braintree: Prefer options for network_transaction_id [aenand] #5129
|
|
13
|
+
* Cybersource Rest: Update support for stored credentials [aenand] #5083
|
|
14
|
+
* Plexo: Add support to NetworkToken payments [euribe09] #5130
|
|
15
|
+
* Braintree: Update card verfification payload if billing address fields are not present [yunnydang] #5142
|
|
16
|
+
* DLocal: Update the phone and ip fields [yunnydang] #5143
|
|
17
|
+
* CheckoutV2: Add support for risk data fields [yunnydang] #5147
|
|
18
|
+
* Pin Payments: Add new 3DS params mentioned in Pin Payments docs [hudakh] #4720
|
|
19
|
+
* RedsysRest: Add support for stored credentials & 3DS exemptions [jherreraa] #5132
|
|
20
|
+
* CheckoutV2: Truncate the reference id for amex transactions [yunnydang] #5151
|
|
21
|
+
* CommerceHub: Add billing address name override [yunnydang] #5157
|
|
22
|
+
* StripePI: Add optional ability for 3DS exemption on verify calls [yunnydang] #5160
|
|
23
|
+
* CyberSource: Update stored credentials [sinourain] #5136
|
|
24
|
+
* Orbital: Update to accept UCAF Indicator GSF [almalee24] #5150
|
|
25
|
+
* CyberSource: Add addtional invoiceHeader fields [yunnydang] #5161
|
|
26
|
+
* MerchantWarrior: Update phone, email, ip and store ID [almalee24] #5158
|
|
27
|
+
* Credorax: Update 3DS version mapping [almalee24] #5159
|
|
28
|
+
* Add Maestro card bins [yunnydang] #5172
|
|
29
|
+
* Braintree: Remove stored credential v1 [almalee24] #5175
|
|
30
|
+
* Braintree Blue: Pass overridden mid into client token for GS 3DS [sinourain] #5166
|
|
31
|
+
* Moneris: Update crypt_type for 3DS [almalee24] #5162
|
|
32
|
+
* CheckoutV2: Update 3DS message & error code [almalee24] #5177
|
|
33
|
+
* DecicirPlus: Update error_message to add safety navigator [almalee24] #5187
|
|
34
|
+
* Elavon: Add updated stored credential version [almalee24] #5170
|
|
35
|
+
* Adyen: Add header fields to response body [yunnydang] #5184
|
|
36
|
+
* Stripe and Stripe PI: Add header fields to response body [yunnydang] #5185
|
|
37
|
+
|
|
38
|
+
== Version 1.136.0 (June 3, 2024)
|
|
39
|
+
* Shift4V2: Add new gateway based on SecurionPay adapter [heavyblade] #4860
|
|
40
|
+
* TNS: Use the specified order_id in request if available [yunnydang] #4880
|
|
41
|
+
* Cybersource: Support recurring apple pay [aenand] #4874
|
|
42
|
+
* Verve BIN ranges and add card type to Rapyd gateway [jherreraa] #4875
|
|
43
|
+
* Rapyd: Add network_reference_id, initiation_type, and update stored credential method [yunnydang] #4877
|
|
44
|
+
* Adyen: Add the store field [yunnydang] #4878
|
|
45
|
+
* Stripe Payment Intents: Expand balance txns for regular transactions [yunnydang] #4882
|
|
46
|
+
* CyberSource (SOAP): Added support for 3DS exemption request fields [BritneyS] #4881
|
|
47
|
+
* StripePI: Adding network tokenization fields to Stripe PaymentIntents [BritneyS] #4867
|
|
48
|
+
* Shift4: Fixing currency bug [Heavyblade] #4887
|
|
49
|
+
* Rapyd: fixing issue with json encoding and signatures [Heavyblade] #4892
|
|
50
|
+
* SumUp: Setup, Scrub and Purchase build [sinourain] #4890
|
|
51
|
+
* XpayGateway: Initial setup [javierpedrozaing] #4889
|
|
52
|
+
* Rapyd: Add validation to not send cvv and network_reference_id [javierpedrozaing] #4895
|
|
53
|
+
* Ebanx: Add Ecuador and Bolivia as supported countries [almalee24] #4893
|
|
54
|
+
* Decidir: Add support for network tokens [almalee24] #4870
|
|
55
|
+
* Element: Fix credit card name bug [almalee24] #4898
|
|
56
|
+
* Adyen: Add payout endpoint [almalee24] #4885
|
|
57
|
+
* Adding Oauth Response for access tokens [almalee24] #4851
|
|
58
|
+
* CheckoutV2: Update stored credentials [almalee24] #4901
|
|
59
|
+
* Revert "Adding Oauth Response for access tokens" [almalee24] #4906
|
|
60
|
+
* Braintree: Create credit card nonce [gasb150] #4897
|
|
61
|
+
* Adyen: Fix shopperEmail bug [almalee24] #4904
|
|
62
|
+
* Add Cabal card bin ranges [yunnydang] #4908
|
|
63
|
+
* Kushki: Fixing issue with 3DS info on visa cc [heavyblade] #4899
|
|
64
|
+
* Adyen: Add MIT flagging for Network Tokens [aenand] #4905
|
|
65
|
+
* Moneris: Update sca actions [almalee24] #4902
|
|
66
|
+
* Ogone: Add gateway specific 3ds option with default options mapping [jherreraa] #4894
|
|
67
|
+
* Rapyd: Add recurrence_type field [yunnydang] #4912
|
|
68
|
+
* Revert "Adyen: Update MIT flagging for NT" [almalee24] #4914
|
|
69
|
+
* SumUp: Void and partial refund calls [sinourain] #4891
|
|
70
|
+
* SecurionPay/Shift4_v2: authorization from [gasb150] #4913
|
|
71
|
+
* Rapyd: Update recurrence_type field [yunnydang] #4922
|
|
72
|
+
* Element: Add lodging fields [yunnydang] #4813
|
|
73
|
+
* SafeCharge: Update sg_CreditType field on the credit method [yunnydang] #4918
|
|
74
|
+
* Rapyd: add force_3ds_secure flag [Heavyblade] #4927
|
|
75
|
+
* Beanstream: add alternate option for passing phone number [jcreiff] #4923
|
|
76
|
+
* AuthorizeNet: Update network token method [almalee24] #4852
|
|
77
|
+
* Adding Oauth Response for access tokens [almalee24] #4907
|
|
78
|
+
* GlobalCollect: Added support for 3DS exemption request field [almalee24] #4917
|
|
79
|
+
* NMI: Update supported countries list [jcreiff] #4931
|
|
80
|
+
* Adyen: Add mcc field [jcreiff] #4926
|
|
81
|
+
* Quickbooks: Remove raise OAuth from extract_response_body_or_raise [almalee24] #4935
|
|
82
|
+
* Cecabank: Add new Cecabank gateway to use the JSON REST API [sinourain] #4920
|
|
83
|
+
* Cecabank: Add 3DS Global to Cecabank REST JSON gateway [sinourain] #4940
|
|
84
|
+
* Cecabank: Add scrub implementation [sinourain] #4945
|
|
85
|
+
* GlobalCollect: Fix bug in success_from logic [DustinHaefele] #4939
|
|
86
|
+
* Worldpay: Update 3ds logic to accept df_reference_id directly [DustinHaefele] #4929
|
|
87
|
+
* Orbital: Enable Third Party Vaulting [javierpedrozaing] #4928
|
|
88
|
+
* Payeezy: Add the customer_ref and reference_3 fields [yunnydang] #4942
|
|
89
|
+
* Redsys Rest: Add support for new gateway type Redsys Rest [aenand] #4951
|
|
90
|
+
* CyberSource: Surface the reconciliationID2 field [yunnydang] #4934
|
|
91
|
+
* Worldpay: Update stored credentials logic [DustinHaefele] #4950
|
|
92
|
+
* Vantiv Express: New Xml gateway [DustinHaefele] #4956
|
|
93
|
+
* Shift4 V2: Add unstore function [javierpedrozaing] #4953
|
|
94
|
+
* CommerceHub: Add 3DS global support [sinourain] #4957
|
|
95
|
+
* SumUp Gateway: Fix refund method [sinourain] #4924
|
|
96
|
+
* Braintree: Add v2 stored credential option [aenand] #4937
|
|
97
|
+
* Cybersource REST: Remove request-target parens [curiousepic] #4960
|
|
98
|
+
* Ogone: Fix signature calulcation for blank fields [Heavyblade] #4963
|
|
99
|
+
* VisaNet Peru: Add purchaseNumber to response object [yunnydang] #4961
|
|
100
|
+
* SafeCharge: Support tokens [almalee24] #4948
|
|
101
|
+
* Redsys: Update to $0 verify [almalee24] #4944
|
|
102
|
+
* Litle: Update stored credentials [almalee24] #4903
|
|
103
|
+
* WorldPay: Accept GooglePay pan only [almalee24] #4943
|
|
104
|
+
* Braintree: Correct issue in v2 stored credentials [aenand] #4967
|
|
105
|
+
* Stripe Payment Intents: Add the card brand field [yunnydang] #4964
|
|
106
|
+
* Rapyd: Enable new auth mode payment_redirect [javierpedrozaing] #4970
|
|
107
|
+
* Cecabank: Fix exemption_type when it is blank and update the error code for some tests [sinourain] #4968
|
|
108
|
+
* RedsysRest: Update to $0 verify [almalee24] #4973
|
|
109
|
+
* CommerceHub: Add credit transaction [sinourain] #4965
|
|
110
|
+
* PayTrace: Send CSC value on gateway request. [DustinHaefele] #4974
|
|
111
|
+
* Orbital: Remove needless GSF for TPV [javierpedrozaing] #4959
|
|
112
|
+
* Adyen: Provide ZZ as default country code [jcreiff] #4971
|
|
113
|
+
* MIT: Add test_url [jcreiff] #4977
|
|
114
|
+
* VantivExpress: Fix eci bug [almalee24] #4982
|
|
115
|
+
* IPG: Allow for Merchant Aggregator credential usage [DustinHaefele] #4986
|
|
116
|
+
* Adyen: Add support for `metadata` object [rachelkirk] #4987
|
|
117
|
+
* Xpay: New adapter basic operations added [jherreraa] #4669
|
|
118
|
+
* Rapyd: Enable idempotent request support [javierpedrozaing] #4980
|
|
119
|
+
* Litle: Update account type [almalee24] #4976
|
|
120
|
+
* Wompi: Add support for `tip_in_cents` [rachelkirk] #4983
|
|
121
|
+
* HiPay: Add Gateway [gasb150] #4979
|
|
122
|
+
* Xpay: New adapter basic operations added [jherreraa] #4669
|
|
123
|
+
* Braintree: Add support for more payment details fields in response [yunnydang] #4992
|
|
124
|
+
* CyberSource: Add the first_recurring_payment auth service field [yunnydang] #4989
|
|
125
|
+
* CommerceHub: Add dynamic descriptors [jcreiff] #4994
|
|
126
|
+
* Rapyd: Update email mapping [javierpedrozaing] #4996
|
|
127
|
+
* SagePay: Add support for v4 [aenand] #4990
|
|
128
|
+
* Braintree: Send merchant_account_id when generating client token [almalee24] #4991
|
|
129
|
+
* CheckoutV2: Update reponse message for 3DS transactions [almalee24] #4975
|
|
130
|
+
* HiPay: Scrub/Refund/Void [gasb150] #4995
|
|
131
|
+
* Rapyd: Adding fixed_side and requested_currency options [Heavyblade] #4962
|
|
132
|
+
* Add new card type Tuya. GlobalCollect & Decidir: Improve support for Tuya card type [sinourain] #4993
|
|
133
|
+
* Cecabank: Encrypt credit card fields [sinourain] #4998
|
|
134
|
+
* HiPay: Add unstore [gasb150] #4999
|
|
135
|
+
* Rapyd: Fix transaction with two digits in month and year [javierpedrozaing] #5008
|
|
136
|
+
* SagePay: Add support for stored credentials [almalee24] #5007
|
|
137
|
+
* Payeezy: Pull cardholer name from billing address [almalee24] #5006
|
|
138
|
+
* HiPay: Add 3ds params [gasb150] #5012
|
|
139
|
+
* Cecabank: Fix gateway scrub method [sinourain] #5009
|
|
140
|
+
* Pin: Add the platform_adjustment field [yunnydang] #5011
|
|
141
|
+
* Priority: Allow gateway fields to be available on capture [yunnydang] #5010
|
|
142
|
+
* Add payment_data to NetworkTokenizationCreditCard [almalee24] #4888
|
|
143
|
+
* IPG: Update handling of ChargeTotal [jcreiff] #5017
|
|
144
|
+
* Plexo: Add the invoice_number field [yunnydang] #5019
|
|
145
|
+
* CheckoutV2: Handle empty address in payout destination data [jcreiff] #5024
|
|
146
|
+
* CyberSource: Add the auth service aggregator_id field [yunnydang] #5026
|
|
147
|
+
* Cecabank: exclude 3ds empty parameter [jherreraa] #5021
|
|
148
|
+
* Moneris: Add the customer id field [yunnydang] #5028
|
|
149
|
+
* Kushki: Add the product_details field [yunnydang] #5027
|
|
150
|
+
* GlobalCollect: Add support for encryptedPaymentData [almalee24] #5015
|
|
151
|
+
* Rapyd: Adding 500 errors handling [Heavyblade] #5029
|
|
152
|
+
* SumUp: Add 3DS fields [sinourain] #5030
|
|
153
|
+
* Cecabank: Enable network_transaction_id as GSF [javierpedrozaing] #5034
|
|
154
|
+
* Braintree: Surface the paypal_details in response object [yunnydang] #5043
|
|
155
|
+
* Worldline (formerly GlobalCollect): Update API endpoints [deemeyers] #5049
|
|
156
|
+
* Quickbooks: Update scrub method [almalee24] #5049
|
|
157
|
+
* Worldline (formerly GlobalCollect):Remove decrypted payment data [almalee24] #5032
|
|
158
|
+
* StripePI: Update authorization_from [almalee24] #5048
|
|
159
|
+
* FirstPay: Add REST JSON transaction methods [sinourain] #5035
|
|
160
|
+
* Braintree: Add payment details to failed transaction hash [yunnydang] #5050
|
|
161
|
+
* Cecabank: Amex CVV Update [sinourain] #5051
|
|
162
|
+
* FirstPay: Add support for ApplePay and GooglePay [sinourain] #5036
|
|
163
|
+
* XPay: Update 3DS to support 3 step process [sinourain] #5046
|
|
164
|
+
* SagePay: Update API endpoints [almalee24] #5057
|
|
165
|
+
* Bin Update: Add sodexo bins [yunnydang] #5061
|
|
166
|
+
* Authorize Net: Add the surcharge field [yunnydang] #5062
|
|
167
|
+
* Paymentez: Update field for reference_id [almalee24] #5065
|
|
168
|
+
* CyberSource: Extend support for `gratuity_amount` and update Mastercard NT field order [rachelkirk] #5063
|
|
169
|
+
* XPay: Refactor basic transactions after implement 3DS 3steps API [sinourain] #5058
|
|
170
|
+
* AuthorizeNet: Remove turn_on_nt flow [almalee24] #5056
|
|
171
|
+
* CheckoutV2: Add processing and recipient fields [yunnydang] #5068
|
|
172
|
+
* RedsysRest: Omit CVV from requests when not present [jcreiff] #5077
|
|
173
|
+
* Bin Update: Add Unionpay bin [yunnydang] #5079
|
|
174
|
+
* MerchantWarrior: Adding support for 3DS Global fields [Heavyblade] #5072
|
|
175
|
+
* FatZebra: Adding third-party 3DS params [Heavyblade] #5066
|
|
176
|
+
* SumUp: Remove Void method [sinourain] #5060
|
|
177
|
+
* StripePI: Add new ApplePay and GooglePay flow [almalee24] #5075
|
|
178
|
+
* Braintree: Add merchant_account_id to Verify [almalee24] #5070
|
|
179
|
+
* Paymentez: Update success_from [jherrera] #5082
|
|
180
|
+
* Update Rubocop to 1.14.0 [almalee24] #5069
|
|
181
|
+
* Adyen: Update error code mapping [dustinhaefele] #5085
|
|
182
|
+
* Updates to StripePI scrub and Paymentez success_from [almalee24] #5090
|
|
183
|
+
* Bin Update: Add Routex bin [yunnydang] #5089
|
|
184
|
+
* SumUp: Improve success_from and message_from methods [sinourain] #5087
|
|
185
|
+
* Adyen: Send new ignore_threed_dynamic for success_from [almalee24] #5078
|
|
186
|
+
* Plexo: Add flow field to capture, purchase, and auth [yunnydang] #5092
|
|
187
|
+
* PayTrace: Always send name in billing_address [almalee24] #5086
|
|
188
|
+
* StripePI: Update eci format [almalee24] #5097
|
|
189
|
+
* Paymentez: Remove reference_id flag [almalee24] #5081
|
|
190
|
+
* Cybersource Rest: Add support for normalized three ds [aenand] #5105
|
|
191
|
+
* Braintree: Add additional data to response [aenand] #5084
|
|
192
|
+
* CheckoutV2: Retain and refresh OAuth access token [sinourain] #5098
|
|
193
|
+
* Worldpay: Remove default ECI value [aenand] #5103
|
|
194
|
+
* DataTrans: Add Gateway [gasb150] #5108
|
|
195
|
+
* CyberSource: Update NT flow [almalee24] #5106
|
|
196
|
+
* FlexCharge: Add Gateway [Heavyblade] #5108
|
|
197
|
+
* Litle: Update enhanced data fields to pass integers [yunnydang] #5113
|
|
198
|
+
* Litle: Update commodity code and line item total fields [yunnydang] #5115
|
|
199
|
+
* Cybersource Rest: Add support for network tokens [aenand] #5107
|
|
200
|
+
* Decidir: Add support for customer object [rachelkirk] #5071
|
|
201
|
+
* Worldpay: Add support for stored credentials with network tokens [aenand] #5114
|
|
202
|
+
* Paymentez: Update success_from method for refunds [almalee24] #5116
|
|
203
|
+
* DataTrans: Add ThirdParty 3DS params [gasb150] #5118
|
|
204
|
+
* FlexCharge: Add ThirdParty 3DS params [javierpedrozaing] #5121
|
|
205
|
+
* FlexCharge: Add support for TPV store [edgarv09] #5120
|
|
206
|
+
* CheckoutV2: Add sender payment fields to purchase and auth [yunnydang] #5124
|
|
207
|
+
* HiPay: Fix parse authorization string [javierpedrozaing] #5119
|
|
208
|
+
* Worldpay: Add support for deafult ECI value [aenand] #5126
|
|
209
|
+
* DLocal: Update stored credentials [sinourain] #5112
|
|
210
|
+
* NMI: Add NTID override [yunnydang] #5134
|
|
211
|
+
* Cybersource Rest: Support L2/L3 data [aenand] #5117
|
|
212
|
+
* Worldpay: Support L2/L3 data [aenand] #5117
|
|
213
|
+
* Support UATP cardtype [javierpedrozaing] #5137
|
|
214
|
+
* Litle: Add 141 and 142 as successful responses [almalee24] #5135
|
|
215
|
+
|
|
216
|
+
== Version 1.135.0 (August 24, 2023)
|
|
217
|
+
* PaymentExpress: Correct endpoints [steveh] #4827
|
|
218
|
+
* Adyen: Add option to elect which error message [aenand] #4843
|
|
219
|
+
* Reach: Update list of supported countries [jcreiff] #4842
|
|
220
|
+
* Paysafe: Truncate address fields [jcreiff] #4841
|
|
221
|
+
* Braintree: Support third party Network Tokens [aenand] #4775
|
|
222
|
+
* Kushki: Fix add amount default method for subtotalIva and subtotalIva0 [yunnydang] #4845
|
|
223
|
+
* Rapyd: Add customer object to requests [aenand] #4838
|
|
224
|
+
* CyberSource: Add merchant_id [almalee24] #4844
|
|
225
|
+
* Global Collect: Add agent numeric code and house number field [yunnydang] #4847
|
|
226
|
+
* Deepstack: Add Deepstack Gateway [khoinguyendeepstack] #4830
|
|
227
|
+
* Braintree: Additional tests for credit transactions [jcreiff] #4848
|
|
228
|
+
* Rapyd: Change nesting of description, statement_descriptor, complete_payment_url, and error_payment_url [jcreiff] #4849
|
|
229
|
+
* Rapyd: Add merchant_reference_id [jcreiff] #4858
|
|
230
|
+
* Braintree: Return error for ACH on credit [jcreiff] #4859
|
|
231
|
+
* Rapyd: Update handling of ewallet and billing address phone [jcreiff] #4863
|
|
232
|
+
* IPG: Change credentials inputs to use a combined store and user ID string as the user ID input [kylene-spreedly] #4854
|
|
233
|
+
* Braintree Blue: Update the credit card details transaction hash [yunnydang] #4865
|
|
234
|
+
* VisaNet Peru: Update generate_purchase_number_stamp [almalee24] #4855
|
|
235
|
+
* Braintree: Add sca_exemption [almalee24] #4864
|
|
236
|
+
* Ebanx: Update Verify [almalee24] #4866
|
|
237
|
+
* Quickbooks: Remove OAuth response from refresh_access_token [almalee24] #4949
|
|
238
|
+
|
|
239
|
+
== Version 1.134.0 (July 25, 2023)
|
|
240
|
+
* Update required Ruby version [almalee24] #4823
|
|
241
|
+
* Kushki: Enable 3ds2 [jherreraa] #4832
|
|
242
|
+
|
|
243
|
+
== Version 1.133.0 (July 20, 2023)
|
|
244
|
+
* CyberSource: remove credentials from tests [bbraschi] #4836
|
|
245
|
+
* Paysafe: Map order_id to merchantRefNum [jcreiff] #4839
|
|
246
|
+
* Stripe PI: Gate sending NTID [almalee24] #4828
|
|
247
|
+
|
|
248
|
+
== Version 1.132.0 (July 20, 2023)
|
|
249
|
+
* Stripe Payment Intents: Add support for new card on file field [aenand] #4807
|
|
250
|
+
* Commerce Hub: Add `physicalGoodsIndicator` and `schemeReferenceTransactionId` GSFs [sinourain] #4786
|
|
251
|
+
* Nuvei (formerly SafeCharge): Add customer details to credit action [yunnydang] #4820
|
|
252
|
+
* IPG: Update live url to correct endpoint [curiousepic] #4121
|
|
253
|
+
* VPos: Adding Panal Credit Card type [jherreraa] #4814
|
|
254
|
+
* Stripe PI: Update parameters for creation of customer [almalee24] #4782
|
|
255
|
+
* WorldPay: Update xml tag for Credit Cards [almalee24] #4797
|
|
256
|
+
* PaywayDotCom: update `live_url` [jcreiff] #4824
|
|
257
|
+
* Stripe & Stripe PI: Update login key validation [almalee24] #4816
|
|
258
|
+
* CheckoutV2: Parse the AVS and CVV checks more often [aenand] #4822
|
|
259
|
+
* NMI: Add shipping_firstname, shipping_lastname, shipping_email, and surcharge fields [jcreiff] #4825
|
|
260
|
+
* Borgun: Update authorization_from & message_from [almalee24] #4826
|
|
261
|
+
* Kushki: Add Brazil as supported country [almalee24] #4829
|
|
262
|
+
* Adyen: Add additional data for airline and lodging [javierpedrozaing] #4815
|
|
263
|
+
* MIT: Changed how the payload was sent to the gateway [alejandrofloresm] #4655
|
|
264
|
+
* SafeCharge: Add unreferenced_refund field [yunnydang] #4831
|
|
265
|
+
* CyberSource: include `paymentSolution` for ApplePay and GooglePay [bbraschi] #4835
|
|
266
|
+
|
|
6
267
|
== Version 1.131.0 (June 21, 2023)
|
|
7
268
|
* Redsys: Add supported countries [jcreiff] #4811
|
|
8
269
|
* Authorize.net: Truncate nameOnAccount for bank refunds [jcreiff] #4808
|
|
@@ -785,6 +1046,7 @@
|
|
|
785
1046
|
* PayU Latam: Improve error response [esmitperez] #3717
|
|
786
1047
|
* Vantiv: Vantiv Express - CardPresentCode, PaymentType, SubmissionType, DuplicateCheckDisableFlag [esmitperez] #3730,#3731
|
|
787
1048
|
* Cybersource: Ensure issueradditionaldata comes before partnerSolutionId [britth] #3733
|
|
1049
|
+
* RedsysRest: Add support for 3DS [almalee24] #5042
|
|
788
1050
|
|
|
789
1051
|
== Version 1.111.0
|
|
790
1052
|
* Fat Zebra: standardized 3DS fields and card on file extra data for Visa scheme rules [montdidier] #3409
|
|
@@ -7,8 +7,8 @@ module ActiveMerchant #:nodoc:
|
|
|
7
7
|
# You may use Check in place of CreditCard with any gateway that supports it.
|
|
8
8
|
class Check < Model
|
|
9
9
|
attr_accessor :first_name, :last_name,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
:bank_name, :routing_number, :account_number,
|
|
11
|
+
:account_holder_type, :account_type, :number
|
|
12
12
|
|
|
13
13
|
# Used for Canadian bank accounts
|
|
14
14
|
attr_accessor :institution_number, :transit_number
|
|
@@ -29,7 +29,7 @@ module ActiveMerchant
|
|
|
29
29
|
result = lower_case_and_underscored_word.to_s.dup
|
|
30
30
|
result.gsub!(/_id$/, '')
|
|
31
31
|
result.tr!('_', ' ')
|
|
32
|
-
result.gsub(/([a-z\d]*)/i, &:downcase).gsub(/^\w/) {
|
|
32
|
+
result.gsub(/([a-z\d]*)/i, &:downcase).gsub(/^\w/) { Regexp.last_match(0).upcase }
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -90,8 +90,8 @@ module ActiveMerchant
|
|
|
90
90
|
add(:base, error)
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
def each_full
|
|
94
|
-
full_messages.each
|
|
93
|
+
def each_full(&block)
|
|
94
|
+
full_messages.each(&block)
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
def full_messages
|
|
@@ -113,6 +113,6 @@ module ActiveMerchant
|
|
|
113
113
|
end
|
|
114
114
|
end
|
|
115
115
|
|
|
116
|
-
Compatibility::Model.
|
|
116
|
+
Compatibility::Model.include Rails::Model
|
|
117
117
|
end
|
|
118
118
|
end
|
|
@@ -38,6 +38,10 @@ module ActiveMerchant #:nodoc:
|
|
|
38
38
|
# * Edenred
|
|
39
39
|
# * Anda
|
|
40
40
|
# * Creditos directos (Tarjeta D)
|
|
41
|
+
# * Panal
|
|
42
|
+
# * Verve
|
|
43
|
+
# * Tuya
|
|
44
|
+
# * UATP
|
|
41
45
|
#
|
|
42
46
|
# For testing purposes, use the 'bogus' credit card brand. This skips the vast majority of
|
|
43
47
|
# validations, allowing you to focus on your core concerns until you're ready to be more concerned
|
|
@@ -130,6 +134,10 @@ module ActiveMerchant #:nodoc:
|
|
|
130
134
|
# * +'edenred'+
|
|
131
135
|
# * +'anda'+
|
|
132
136
|
# * +'tarjeta-d'+
|
|
137
|
+
# * +'panal'+
|
|
138
|
+
# * +'verve'+
|
|
139
|
+
# * +'tuya'+
|
|
140
|
+
# * +'uatp'+
|
|
133
141
|
#
|
|
134
142
|
# Or, if you wish to test your implementation, +'bogus'+.
|
|
135
143
|
#
|
|
@@ -286,7 +294,7 @@ module ActiveMerchant #:nodoc:
|
|
|
286
294
|
end
|
|
287
295
|
|
|
288
296
|
%w(month year start_month start_year).each do |m|
|
|
289
|
-
class_eval
|
|
297
|
+
class_eval <<~RUBY, __FILE__, __LINE__ + 1
|
|
290
298
|
def #{m}=(v)
|
|
291
299
|
@#{m} = case v
|
|
292
300
|
when "", nil, 0
|
|
@@ -295,7 +303,7 @@ module ActiveMerchant #:nodoc:
|
|
|
295
303
|
v.to_i
|
|
296
304
|
end
|
|
297
305
|
end
|
|
298
|
-
|
|
306
|
+
RUBY
|
|
299
307
|
end
|
|
300
308
|
|
|
301
309
|
def verification_value?
|
|
@@ -393,9 +401,7 @@ module ActiveMerchant #:nodoc:
|
|
|
393
401
|
def validate_card_brand_and_number #:nodoc:
|
|
394
402
|
errors = []
|
|
395
403
|
|
|
396
|
-
if !empty?(brand)
|
|
397
|
-
errors << [:brand, 'is invalid'] if !CreditCard.card_companies.include?(brand)
|
|
398
|
-
end
|
|
404
|
+
errors << [:brand, 'is invalid'] if !empty?(brand) && !CreditCard.card_companies.include?(brand)
|
|
399
405
|
|
|
400
406
|
if empty?(number)
|
|
401
407
|
errors << [:number, 'is required']
|
|
@@ -403,9 +409,7 @@ module ActiveMerchant #:nodoc:
|
|
|
403
409
|
errors << [:number, 'is not a valid credit card number']
|
|
404
410
|
end
|
|
405
411
|
|
|
406
|
-
if errors.empty?
|
|
407
|
-
errors << [:brand, 'does not match the card number'] if !CreditCard.matching_brand?(number, brand)
|
|
408
|
-
end
|
|
412
|
+
errors << [:brand, 'does not match the card number'] if errors.empty? && !CreditCard.matching_brand?(number, brand)
|
|
409
413
|
|
|
410
414
|
errors
|
|
411
415
|
end
|
|
@@ -423,6 +427,7 @@ module ActiveMerchant #:nodoc:
|
|
|
423
427
|
|
|
424
428
|
class ExpiryDate #:nodoc:
|
|
425
429
|
attr_reader :month, :year
|
|
430
|
+
|
|
426
431
|
def initialize(month, year)
|
|
427
432
|
@month = month.to_i
|
|
428
433
|
@year = year.to_i
|
|
@@ -5,6 +5,10 @@ module ActiveMerchant #:nodoc:
|
|
|
5
5
|
"#{format(credit_card.month, :two_digits)}#{format(credit_card.year, :two_digits)}"
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
+
def strftime_yyyymm(credit_card)
|
|
9
|
+
format(credit_card.year, :four_digits) + format(credit_card.month, :two_digits)
|
|
10
|
+
end
|
|
11
|
+
|
|
8
12
|
# This method is used to format numerical information pertaining to credit cards.
|
|
9
13
|
#
|
|
10
14
|
# format(2005, :two_digits) # => "05"
|
|
@@ -24,7 +24,11 @@ module ActiveMerchant #:nodoc:
|
|
|
24
24
|
},
|
|
25
25
|
'maestro_no_luhn' => ->(num) { num =~ /^(501080|501081|501082)\d{6,13}$/ },
|
|
26
26
|
'forbrugsforeningen' => ->(num) { num =~ /^600722\d{10}$/ },
|
|
27
|
-
'sodexo' =>
|
|
27
|
+
'sodexo' => lambda { |num|
|
|
28
|
+
num&.size == 16 && (
|
|
29
|
+
SODEXO_BINS.any? { |bin| num.slice(0, bin.size) == bin }
|
|
30
|
+
)
|
|
31
|
+
},
|
|
28
32
|
'alia' => ->(num) { num =~ /^(504997|505878|601030|601073|505874)\d{10}$/ },
|
|
29
33
|
'vr' => ->(num) { num =~ /^(627416|637036)\d{10}$/ },
|
|
30
34
|
'unionpay' => ->(num) { (16..19).cover?(num&.size) && in_bin_range?(num.slice(0, 8), UNIONPAY_RANGES) },
|
|
@@ -39,14 +43,18 @@ module ActiveMerchant #:nodoc:
|
|
|
39
43
|
'creditel' => ->(num) { num =~ /^601933\d{10}$/ },
|
|
40
44
|
'confiable' => ->(num) { num =~ /^560718\d{10}$/ },
|
|
41
45
|
'synchrony' => ->(num) { num =~ /^700600\d{10}$/ },
|
|
42
|
-
'routex' => ->(num) { num =~ /^(700676|700678)\d{13}$/ },
|
|
46
|
+
'routex' => ->(num) { num =~ /^(700674|700676|700678)\d{13}$/ },
|
|
43
47
|
'mada' => ->(num) { num&.size == 16 && in_bin_range?(num.slice(0, 6), MADA_RANGES) },
|
|
44
48
|
'bp_plus' => ->(num) { num =~ /^(7050\d\s\d{9}\s\d{3}$|705\d\s\d{8}\s\d{5}$)/ },
|
|
45
49
|
'passcard' => ->(num) { num =~ /^628026\d{10}$/ },
|
|
46
50
|
'edenred' => ->(num) { num =~ /^637483\d{10}$/ },
|
|
47
51
|
'anda' => ->(num) { num =~ /^603199\d{10}$/ },
|
|
48
52
|
'tarjeta-d' => ->(num) { num =~ /^601828\d{10}$/ },
|
|
49
|
-
'hipercard' => ->(num) { num&.size == 16 && in_bin_range?(num.slice(0, 6), HIPERCARD_RANGES) }
|
|
53
|
+
'hipercard' => ->(num) { num&.size == 16 && in_bin_range?(num.slice(0, 6), HIPERCARD_RANGES) },
|
|
54
|
+
'panal' => ->(num) { num&.size == 16 && in_bin_range?(num.slice(0, 6), PANAL_RANGES) },
|
|
55
|
+
'verve' => ->(num) { (16..19).cover?(num&.size) && in_bin_range?(num.slice(0, 6), VERVE_RANGES) },
|
|
56
|
+
'tuya' => ->(num) { num =~ /^588800\d{10}$/ },
|
|
57
|
+
'uatp' => ->(num) { num =~ /^(1175|1290)\d{11}$/ }
|
|
50
58
|
}
|
|
51
59
|
|
|
52
60
|
SODEXO_NO_LUHN = ->(num) { num =~ /^(505864|505865)\d{10}$/ }
|
|
@@ -71,6 +79,13 @@ module ActiveMerchant #:nodoc:
|
|
|
71
79
|
(491730..491759),
|
|
72
80
|
]
|
|
73
81
|
|
|
82
|
+
SODEXO_BINS = Set.new(
|
|
83
|
+
%w[
|
|
84
|
+
606071 603389 606070 606069 606068 600818 505864 505865
|
|
85
|
+
60607601 60607607 60894400 60894410 60894420 60607606
|
|
86
|
+
]
|
|
87
|
+
)
|
|
88
|
+
|
|
74
89
|
CARNET_RANGES = [
|
|
75
90
|
(506199..506499),
|
|
76
91
|
]
|
|
@@ -113,6 +128,7 @@ module ActiveMerchant #:nodoc:
|
|
|
113
128
|
501879 502113 502120 502121 502301
|
|
114
129
|
503175 503337 503645 503670
|
|
115
130
|
504310 504338 504363 504533 504587 504620 504639 504656 504738 504781 504910
|
|
131
|
+
505616
|
|
116
132
|
507001 507002 507004 507082 507090
|
|
117
133
|
560014 560565 561033
|
|
118
134
|
572402 572610 572626
|
|
@@ -160,7 +176,7 @@ module ActiveMerchant #:nodoc:
|
|
|
160
176
|
(501104..501105),
|
|
161
177
|
(501107..501108),
|
|
162
178
|
(501104..501105),
|
|
163
|
-
(501107..
|
|
179
|
+
(501107..501109),
|
|
164
180
|
(501800..501899),
|
|
165
181
|
(502000..502099),
|
|
166
182
|
(503800..503899),
|
|
@@ -182,7 +198,8 @@ module ActiveMerchant #:nodoc:
|
|
|
182
198
|
(601256..601276),
|
|
183
199
|
(601640..601652),
|
|
184
200
|
(601689..601700),
|
|
185
|
-
(602011..
|
|
201
|
+
(602011..602048),
|
|
202
|
+
[602050],
|
|
186
203
|
(630400..630499),
|
|
187
204
|
(639000..639099),
|
|
188
205
|
(670000..679999),
|
|
@@ -219,7 +236,8 @@ module ActiveMerchant #:nodoc:
|
|
|
219
236
|
58965700..58965799,
|
|
220
237
|
60352200..60352299,
|
|
221
238
|
65027200..65027299,
|
|
222
|
-
65008700..65008700
|
|
239
|
+
65008700..65008700,
|
|
240
|
+
65090000..65090099
|
|
223
241
|
]
|
|
224
242
|
|
|
225
243
|
MADA_RANGES = [
|
|
@@ -234,7 +252,7 @@ module ActiveMerchant #:nodoc:
|
|
|
234
252
|
|
|
235
253
|
# https://www.discoverglobalnetwork.com/content/dam/discover/en_us/dgn/pdfs/IPP-VAR-Enabler-Compliance.pdf
|
|
236
254
|
UNIONPAY_RANGES = [
|
|
237
|
-
62000000..62000000, 62212600..62379699, 62400000..62699999, 62820000..62889999,
|
|
255
|
+
62000000..62000000, 62178570..62178570, 62212600..62379699, 62400000..62699999, 62820000..62889999,
|
|
238
256
|
81000000..81099999, 81100000..81319999, 81320000..81519999, 81520000..81639999, 81640000..81719999
|
|
239
257
|
]
|
|
240
258
|
|
|
@@ -247,6 +265,45 @@ module ActiveMerchant #:nodoc:
|
|
|
247
265
|
637568..637568, 637599..637599, 637609..637609, 637612..637612
|
|
248
266
|
]
|
|
249
267
|
|
|
268
|
+
PANAL_RANGES = [[602049]]
|
|
269
|
+
|
|
270
|
+
VERVE_RANGES = [
|
|
271
|
+
[506099],
|
|
272
|
+
[506101],
|
|
273
|
+
[506103],
|
|
274
|
+
(506111..506114),
|
|
275
|
+
[506116],
|
|
276
|
+
[506118],
|
|
277
|
+
[506124],
|
|
278
|
+
[506127],
|
|
279
|
+
[506130],
|
|
280
|
+
(506132..506139),
|
|
281
|
+
[506141],
|
|
282
|
+
[506144],
|
|
283
|
+
(506146..506152),
|
|
284
|
+
(506154..506161),
|
|
285
|
+
(506163..506164),
|
|
286
|
+
[506167],
|
|
287
|
+
(506169..506198),
|
|
288
|
+
(507865..507866),
|
|
289
|
+
(507868..507872),
|
|
290
|
+
(507874..507899),
|
|
291
|
+
(507901..507909),
|
|
292
|
+
(507911..507919),
|
|
293
|
+
[507921],
|
|
294
|
+
(507923..507925),
|
|
295
|
+
(507927..507962),
|
|
296
|
+
[507964],
|
|
297
|
+
[627309],
|
|
298
|
+
[627903],
|
|
299
|
+
[628051],
|
|
300
|
+
[636625],
|
|
301
|
+
[637058],
|
|
302
|
+
[637634],
|
|
303
|
+
[639245],
|
|
304
|
+
[639383]
|
|
305
|
+
]
|
|
306
|
+
|
|
250
307
|
def self.included(base)
|
|
251
308
|
base.extend(ClassMethods)
|
|
252
309
|
end
|
|
@@ -315,6 +315,15 @@ module ActiveMerchant #:nodoc:
|
|
|
315
315
|
[first_name, last_name]
|
|
316
316
|
end
|
|
317
317
|
|
|
318
|
+
def split_address(full_address)
|
|
319
|
+
address_parts = (full_address || '').split
|
|
320
|
+
return [nil, nil] if address_parts.size == 0
|
|
321
|
+
|
|
322
|
+
number = address_parts.shift
|
|
323
|
+
street = address_parts.join(' ')
|
|
324
|
+
[number, street]
|
|
325
|
+
end
|
|
326
|
+
|
|
318
327
|
def requires!(hash, *params)
|
|
319
328
|
params.each do |param|
|
|
320
329
|
if param.is_a?(Array)
|