activemerchant 1.125.0 → 1.129.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 +316 -0
- data/lib/active_merchant/billing/check.rb +40 -8
- data/lib/active_merchant/billing/credit_card.rb +28 -1
- data/lib/active_merchant/billing/credit_card_methods.rb +91 -23
- data/lib/active_merchant/billing/gateway.rb +2 -1
- data/lib/active_merchant/billing/gateways/adyen.rb +74 -12
- data/lib/active_merchant/billing/gateways/airwallex.rb +370 -0
- data/lib/active_merchant/billing/gateways/alelo.rb +256 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +21 -4
- data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +2 -1
- data/lib/active_merchant/billing/gateways/beanstream.rb +18 -0
- data/lib/active_merchant/billing/gateways/blue_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/blue_snap.rb +53 -22
- data/lib/active_merchant/billing/gateways/bogus.rb +4 -0
- data/lib/active_merchant/billing/gateways/borgun.rb +56 -16
- data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +6 -1
- data/lib/active_merchant/billing/gateways/braintree/token_nonce.rb +113 -0
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +151 -32
- data/lib/active_merchant/billing/gateways/card_connect.rb +28 -10
- data/lib/active_merchant/billing/gateways/card_stream.rb +23 -0
- data/lib/active_merchant/billing/gateways/checkout_v2.rb +228 -57
- data/lib/active_merchant/billing/gateways/commerce_hub.rb +361 -0
- data/lib/active_merchant/billing/gateways/credorax.rb +56 -26
- data/lib/active_merchant/billing/gateways/cyber_source/cyber_source_common.rb +36 -0
- data/lib/active_merchant/billing/gateways/cyber_source.rb +112 -58
- data/lib/active_merchant/billing/gateways/cyber_source_rest.rb +456 -0
- data/lib/active_merchant/billing/gateways/d_local.rb +93 -5
- data/lib/active_merchant/billing/gateways/decidir.rb +32 -5
- data/lib/active_merchant/billing/gateways/decidir_plus.rb +185 -14
- data/lib/active_merchant/billing/gateways/ebanx.rb +39 -26
- data/lib/active_merchant/billing/gateways/element.rb +21 -1
- data/lib/active_merchant/billing/gateways/global_collect.rb +98 -37
- data/lib/active_merchant/billing/gateways/ipg.rb +14 -10
- data/lib/active_merchant/billing/gateways/iveri.rb +39 -3
- data/lib/active_merchant/billing/gateways/kushki.rb +21 -1
- data/lib/active_merchant/billing/gateways/litle.rb +118 -6
- data/lib/active_merchant/billing/gateways/mastercard.rb +1 -8
- data/lib/active_merchant/billing/gateways/mercado_pago.rb +17 -0
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +44 -10
- data/lib/active_merchant/billing/gateways/monei.rb +2 -0
- data/lib/active_merchant/billing/gateways/moneris.rb +55 -13
- data/lib/active_merchant/billing/gateways/mundipagg.rb +3 -0
- data/lib/active_merchant/billing/gateways/nmi.rb +12 -7
- data/lib/active_merchant/billing/gateways/ogone.rb +35 -7
- data/lib/active_merchant/billing/gateways/openpay.rb +20 -3
- data/lib/active_merchant/billing/gateways/orbital.rb +378 -335
- data/lib/active_merchant/billing/gateways/pay_trace.rb +64 -18
- data/lib/active_merchant/billing/gateways/payeezy.rb +59 -4
- data/lib/active_merchant/billing/gateways/payflow.rb +62 -0
- data/lib/active_merchant/billing/gateways/paymentez.rb +44 -13
- data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +4 -0
- data/lib/active_merchant/billing/gateways/paysafe.rb +37 -29
- data/lib/active_merchant/billing/gateways/payu_latam.rb +28 -15
- data/lib/active_merchant/billing/gateways/plexo.rb +308 -0
- data/lib/active_merchant/billing/gateways/priority.rb +185 -140
- data/lib/active_merchant/billing/gateways/rapyd.rb +319 -0
- data/lib/active_merchant/billing/gateways/reach.rb +277 -0
- data/lib/active_merchant/billing/gateways/redsys.rb +9 -5
- data/lib/active_merchant/billing/gateways/safe_charge.rb +1 -4
- data/lib/active_merchant/billing/gateways/sage_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/securion_pay.rb +40 -0
- data/lib/active_merchant/billing/gateways/shift4.rb +342 -0
- data/lib/active_merchant/billing/gateways/simetrik.rb +368 -0
- data/lib/active_merchant/billing/gateways/stripe.rb +25 -3
- data/lib/active_merchant/billing/gateways/stripe_payment_intents.rb +155 -70
- data/lib/active_merchant/billing/gateways/tns.rb +2 -5
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +1 -1
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +14 -3
- data/lib/active_merchant/billing/gateways/vanco.rb +12 -3
- data/lib/active_merchant/billing/gateways/visanet_peru.rb +6 -2
- data/lib/active_merchant/billing/gateways/vpos.rb +7 -4
- data/lib/active_merchant/billing/gateways/wompi.rb +8 -4
- data/lib/active_merchant/billing/gateways/worldpay.rb +117 -9
- data/lib/active_merchant/billing/response.rb +15 -1
- data/lib/active_merchant/connection.rb +0 -2
- data/lib/active_merchant/country.rb +1 -0
- data/lib/active_merchant/errors.rb +4 -1
- data/lib/active_merchant/version.rb +1 -1
- metadata +28 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 415c09ab9b38e3503d10b38cd42959b50c131f8b47237f39b36a8da7bc044d82
|
|
4
|
+
data.tar.gz: 2b2cdd2955bd0ed6e2b808cad4fa31888749ee6cbe91b2a75c563f1cc09429d6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 104444c88b66340a16502ae980ae4c2795f25cd8f9d3a78a05d636d55730a462d9ead8a565291774096dd3fa75149961f64ec472d2a74c7499ce6b472ec6de95
|
|
7
|
+
data.tar.gz: bc738912b2788963721d232e43cf02675cc6a672c7aca913c6bd876fd73b72fd0cd0b7d43e734dca7f5494957e9092e8054d75b788b59ef3a2ca25a917d3d949
|
data/CHANGELOG
CHANGED
|
@@ -3,6 +3,320 @@
|
|
|
3
3
|
|
|
4
4
|
== HEAD
|
|
5
5
|
|
|
6
|
+
== Version 1.129.0 (April 24th, 2023)
|
|
7
|
+
* Adyen: Update selectedBrand mapping for Google Pay [jcreiff] #4763
|
|
8
|
+
* Shift4: Add vendorReference field [jcreiff] #4762
|
|
9
|
+
* Shift4: Add OAuth error [aenand] #4760
|
|
10
|
+
* Stripe PI: Add billing address details to Apple Pay and Google Pay tokenization request [BritneyS] #4761
|
|
11
|
+
* Make gem compatible with Ruby 3+ [pi3r] #4768
|
|
12
|
+
|
|
13
|
+
== Version 1.128.0 (April 24th, 2023)
|
|
14
|
+
* CheckoutV2: Add support for Shipping Address [nicolas-maalouf-cko] #4755
|
|
15
|
+
* Element: Include Apple Pay - Google pay methods [jherrera] #4647
|
|
16
|
+
* dLocal: Add transaction query API(s) request [almalee24] #4584
|
|
17
|
+
* MercadoPago: Add transaction inquire request [molbrown] #4588
|
|
18
|
+
* Worldpay: Add transaction inquire request [molbrown] #4592
|
|
19
|
+
* Alelo: Adding homologation changes [heavyblade] #4590
|
|
20
|
+
* Adyen: Map standard error codes for `processing_error`, `config_error`, `invalid_amount`, and `incorrect_address` [ajawadmirza] #4593
|
|
21
|
+
* MerchantE: Add support for recurring transactions [naashton] #4594
|
|
22
|
+
* CyberSource: Add support for `discount_management_indicator`, `purchase_tax_amount`, `installment_total_amount`, and `installment_annual_interest_rate` fields. [rachelkirk] #4595
|
|
23
|
+
* Shift4: Remove `customer` from refund and `clerk` from store requests [ajawadmirza] #4596
|
|
24
|
+
* TransFirst Transaction Express: Update xml prefixing to be compatible with Nokogiri 1.13.4 [dsmcclain] #4582
|
|
25
|
+
* Iveri: Adding support for external MPI 3DS2 [heavyblade] #4598
|
|
26
|
+
* Credorax: Pass Network Transaction ID on MIT [jherreraa] #4600
|
|
27
|
+
* iVeri: Remove schema validation on Live requests [curiousepic] #4606
|
|
28
|
+
* Beanstream: Adding Third Party 3DS fields [heavyblade] #4602
|
|
29
|
+
* Borgun: Add support for 3DS preauth [ajawadmirza] #4603
|
|
30
|
+
* Cardstream: Add third party 3ds2 support [sainterman] #4570
|
|
31
|
+
* Accept both formats of Canadian routing numbers [molbrown] #4568
|
|
32
|
+
* DLocal: Add support for `original_order_id` [rachelkirk] #4605
|
|
33
|
+
* CheckoutV2: Add support for `merchant_initiated_transaction_id` [rachelkirk] #4611
|
|
34
|
+
* CardConnect: Add stored credential & pass any valid `ecomind` field [ajawadmirza] #4609
|
|
35
|
+
* Alelo: Trigger access token refresh on 404 [curiousepic] #4614
|
|
36
|
+
* DLocal: Add Network Tokens [gasb150] #4608
|
|
37
|
+
* Redsys: enable NTID generation with zero-value verify [jcreiff] #4615
|
|
38
|
+
* IPG: Add support for passing in `store_id` on transactions [aenand] #4619
|
|
39
|
+
* Adyen: Field support for Level 2 and level 3 information [sainterman] #4617
|
|
40
|
+
* Add alternate alpha2 country code for Kosovo [jcreiff] #4622
|
|
41
|
+
* CyberSource: Add support for several fields [rachelkirk] #4623
|
|
42
|
+
* Reach: adding gateway [cristian] #4618
|
|
43
|
+
* Orbital: integration improvements [molbrown] #4626
|
|
44
|
+
* iVeri: add new url [almalee24] #4630
|
|
45
|
+
* Payeezy: Enable Apple Pay support [naashton] #4631
|
|
46
|
+
* Payeezy: Scrub Cryptogram [naashton] #4633
|
|
47
|
+
* Checkout: Fix for `[:source][:stored]` in stored credentials [marioarranzr] #4629
|
|
48
|
+
* Mundipagg: send authorization_secret_key on all transaction types [edgarv09] #4635
|
|
49
|
+
* CommerceHub: Add new gateway [naashton] #4640
|
|
50
|
+
* CyberSource: Update installment data method [rachelkirk] #4642
|
|
51
|
+
* Element: fix bug with billing address email [jcreiff] #4644
|
|
52
|
+
* Openpay: set URL by merchant country [edgarv09] #4637
|
|
53
|
+
* Alelo: Improving credentials refresh process [heavyblade] #4616
|
|
54
|
+
* Decidir: Add transaction inquire request [almalee24] #4649
|
|
55
|
+
* EBANX: add soft_descriptor field [jcreiff] #4658
|
|
56
|
+
* CommerceHub: Add Apple Pay and Google Pay [gasb150] #4648
|
|
57
|
+
* Global Collect & Alelo: Fixing year dependent failing tests [heavyblade] #4665
|
|
58
|
+
* Moneris: Add Google Pay [sinourain] #4666
|
|
59
|
+
* Global Collect: Add transaction inquire request [almalee24] #4669
|
|
60
|
+
* Stripe PI: Add Level 3 support [almalee24] #4673
|
|
61
|
+
* Braintree: return additional processor response [jcreiff] #4653
|
|
62
|
+
* Payeezy: name from `billing_address` on `purchase` [naashton] #4674
|
|
63
|
+
* Stripe: add reverse_transfer to void transactions [jcreiff] #4668
|
|
64
|
+
* Global Collect: fix bug on transaction inquire request [almalee24] #4676
|
|
65
|
+
* Credorax: Support google pay and apple pay [edgarv09] #4661
|
|
66
|
+
* Plexo: Add support for 5 new credit card brands (passcard, edenred, anda, tarjeta-d, sodexo) [edgarv09] #4652
|
|
67
|
+
* Authorize.net: Google pay token support [sainterman] #4659
|
|
68
|
+
* Credorax: Add support for Network Tokens [jherreraa] #4679
|
|
69
|
+
* Stripe PI: use MultiResponse in create_setup_intent [jcreiff] #4683
|
|
70
|
+
* Credorax: Correct NTID logic for MIT transactions [aenand] #4686
|
|
71
|
+
* Adyen: Add support for `skip_mpi_data` flag [rachelkirk] #4654
|
|
72
|
+
* Add Canadian Institution Numbers [jcreiff] #4687
|
|
73
|
+
* Tns: update test URL [almalee24] #4698
|
|
74
|
+
* TrustCommerce: Update `authorization_from` to handle `store` response [jherreraa] #4691
|
|
75
|
+
* TrustCommerce: Verify feature added [jherreraa] #4692
|
|
76
|
+
* Rapyd: Add customer object to transactions [javierpedrozaing] #4664
|
|
77
|
+
* CybersourceRest: Add new gateway with authorize and purchase [heavyblade] #4690
|
|
78
|
+
* Litle: Add prelive_url option [aenand] #4710
|
|
79
|
+
* CommerceHub: Fixing verify status and prevent tokenization [heavyblade] #4716
|
|
80
|
+
* Payeezy: Update Stored Credentials [almalee24] #4711
|
|
81
|
+
* CheckoutV2: Add store/unstore [gasb150] #4712
|
|
82
|
+
* CybersourceREST - Refund | Credit [sinourain] #4700
|
|
83
|
+
* Braintree - Add Paypal custom fields [yunnydang] #4713
|
|
84
|
+
* BlueSnap - Add descriptor phone number field [yunnydang] #4717
|
|
85
|
+
* Braintree - Update transaction hash to include processor_authorization_code [yunnydang] #4718
|
|
86
|
+
* CyberSourceRest: Add apple pay, google pay [gasb150] #4708
|
|
87
|
+
* CybersourceREST - Void | Verify [sinourain] #4695
|
|
88
|
+
* Credorax: Set default ECI values for token transactions [sainterman] #4693
|
|
89
|
+
* CyberSourceRest: Add ACH Support [edgarv09] #4722
|
|
90
|
+
* CybersourceREST: Add capture request [heavyblade] #4726
|
|
91
|
+
* Paymentez: Add transaction inquire request [aenand] #4729
|
|
92
|
+
* Ebanx: Add transaction inquire request [almalee24] #4725
|
|
93
|
+
* Ebanx: Add support for Elo & Hipercard [almalee24] #4702
|
|
94
|
+
* CheckoutV2: Add Idempotency key support [yunnydang] #4728
|
|
95
|
+
* Adyen: Add support for shopper_statement field for capture [yunnydang] #4736
|
|
96
|
+
* CheckoutV2: Update idempotency_key name [yunnydang] #4737
|
|
97
|
+
* Payeezy: Enable external 3DS [jherreraa] #4715
|
|
98
|
+
* Ebanx: Remove default email [aenand] #4747
|
|
99
|
+
* CyberSourceRest: Add stored credentials support [jherreraa] #4707
|
|
100
|
+
* Payeezy: Add `last_name` for `add_network_tokenization` [naashton] #4743
|
|
101
|
+
* Stripe PI: Tokenize payment method at Stripe for `verify` [aenand] #4748
|
|
102
|
+
* Kushki: Add support for the months and deferred fields [yunnydang] #4752
|
|
103
|
+
* Borgun: Update TrCurrencyExponent for 3DS transactions with `ISK` [aenand] #4751
|
|
104
|
+
* CyberSourceRest: Add gateway specific fields handling [jherreraa] #4746
|
|
105
|
+
* IPG: Improve error handling [heavyblade] #4753
|
|
106
|
+
* Shift4: Handle access token failed calls [heavyblade] #4745
|
|
107
|
+
* Bogus: Add verify functionality [willemk] #4749
|
|
108
|
+
* Litle: Update successful_from method [almalee24] #4765
|
|
109
|
+
|
|
110
|
+
== Version 1.127.0 (September 20th, 2022)
|
|
111
|
+
* BraintreeBlue: Add venmo profile_id [molbrown] #4512
|
|
112
|
+
* Maestro: Adding missing BIN ranges [bradbroge] #4423
|
|
113
|
+
* Simetrik: Fix integer and float types, update scrub method [rachelkirk] #4405
|
|
114
|
+
* Credorax: Convert country codes for `recipient_country_code` field [ajawadmirza] #4408
|
|
115
|
+
* BlueSnap: Correctly parse `refund-transaction-id` [dsmcclain] #4411
|
|
116
|
+
* Worldpay: Add level II and level III data [javierpedrozaing] #4393
|
|
117
|
+
* Worldpay: extract `issuer_response_code` and `issuer_response_description` from gateway response [dsmcclain] #4412
|
|
118
|
+
* Vantiv: Support `duplicate` field read from saleResponse.duplicate attr [mashton] #4413
|
|
119
|
+
* Ogone: Add support for 3dsv2 [gasb150] #4410
|
|
120
|
+
* BlueSnap: Add support for stored credentials [ajawadmirza] #4414
|
|
121
|
+
* Monei: Add support for `lang` field [drkjc] #4421
|
|
122
|
+
* Wompi: Redirect `refund` to `void` [drkjc] #4424
|
|
123
|
+
* Rapyd: 3DS Support [naashton] #4422
|
|
124
|
+
* Adyen: Update API version [jherreraa] #4418
|
|
125
|
+
* Ogone: Updated home gateway URL [gasb150] #4419
|
|
126
|
+
* Credorax: Update url gateway and credit cards [javierpedrozaing] #4417
|
|
127
|
+
* Kushki: Pass extra_taxes with USD [therufs] #4426
|
|
128
|
+
* DLocal: fix bug with `X-Idempotency-Key` header [dsmcclain] #4431
|
|
129
|
+
* DLocal: Mark support for additional countries [gasb150] #4427
|
|
130
|
+
* Rapyd: Additional Fields [naashton] #4434
|
|
131
|
+
* Braintree: Return generated client token [BritneyS] #4416
|
|
132
|
+
* Simetrik: Update `audience` field [simetrik-frank] #4433
|
|
133
|
+
* CyberSource: Add bank account payment method support [heavyblade] #4428
|
|
134
|
+
* Rapyd: Zero Dollar Auth [naashton] #4435
|
|
135
|
+
* Rapyd: Scrub ACH [naashton] #4436
|
|
136
|
+
* VisaNet Peru: Update `purchase_number` [rachelkirk] #4437
|
|
137
|
+
* CardConnect: Add support for 3ds V2 [javierpedrozaing] #4429
|
|
138
|
+
* Rapyd: Support `store` and `unstore` [naashton] #4439
|
|
139
|
+
* Orbital: Update API version to 9.0 [gasb150] #4440
|
|
140
|
+
* Plexo: Add `meta_data` fields and reorder amount object in response [ajawadmirza] #4441
|
|
141
|
+
* Plexo: Change field name from `meta_data` to `metadata` [ajawadmirza] #4443
|
|
142
|
+
* Simetrik: Update `vat` to be in cents [simetrik-frank] #4425
|
|
143
|
+
* Cybersource: Handle Amex cryptograms [heavyblade] #4445
|
|
144
|
+
* Rapyd: Pass fields to `refund` and `store` [naashton] #4449
|
|
145
|
+
* VPOS: Allow reuse of encryption key [therufs] #4450
|
|
146
|
+
* Orbital: Add `payment_action_ind` field and refund through credit card to support tandem implementation [ajawadmirza] #4420
|
|
147
|
+
* Airwallex: Send `referrer_data` on setup transactions [drkjc] #4453
|
|
148
|
+
* Adyen and StripPI: Updated error messaging [mbreenlyles] #4454
|
|
149
|
+
* Airwallex: Update `referrer_data` field [drkjc] #4455
|
|
150
|
+
* Simetrik: Update `order_id` and `description` to be top level fields [simetrik-frank] #4451
|
|
151
|
+
* Plexo: Update `ip`, `description`, and `email` fields request format and scrub method to not filter cardholder name and reference id [ajawadmirza] #4457
|
|
152
|
+
* Plexo: Update `verify` implementation and add `verify_amount` field [ajawadmirza] #4462
|
|
153
|
+
* Vanco: Update `purchase` to complete a purchase transaction with an existing session id [BritneyS] #4461
|
|
154
|
+
* Authorize.net: Allow custom verify_amount and validate it [jherreraa] #4464
|
|
155
|
+
* Shift4: Add gateway adapter [ali-hassan] #4415
|
|
156
|
+
* Rapyd: Correctly add `billing_address` [naashton] #4465
|
|
157
|
+
* Credorax: Update processor response messages [jcreiff] #4466
|
|
158
|
+
* Shift4: add `customer_reference`, `destination_postal_code`, `product_descriptors` fields and core refactoring [ajawadmirza] #4469
|
|
159
|
+
* Paypal Express: Add checkout status to response object [mbreenlyles] #4467
|
|
160
|
+
* Shift4: Scrub security code [naashton] #4470
|
|
161
|
+
* Shift4: Update `cardOnFile` transaction requests [ajawadmirza] #4471
|
|
162
|
+
* Plexo: Update `success_from` definition [ajawadmirza] #4468
|
|
163
|
+
* Rapyd: Un-nest the payment urls [naashton] #4472
|
|
164
|
+
* Paypal Express: Correct naming mistake for accessor [mbreenlyles] #4473
|
|
165
|
+
* GlobalCollect: Enable Google Pay and Apple Pay [gasb150] #4388
|
|
166
|
+
* Shift4: $0 auth [naashton] #4474
|
|
167
|
+
* CyberSource: Updatie API version to 1.198 and fix 3DS test [cristian] #4456
|
|
168
|
+
* Shift4: add `store` method, `present` field in card, and to pass amount in cents [ajawadmirza] #4475
|
|
169
|
+
* Shift4: add `3ds2` implementation [ajawadmirza] #4476
|
|
170
|
+
* Shift4: update `success_from` definition to consider response code [ajawadmirza] #4477
|
|
171
|
+
* Rapyd: Customer Object [naashton] #4478
|
|
172
|
+
* Shift4: Verify Endopint Fix [naashton] #4479
|
|
173
|
+
* CheckoutV2: Scrub cryptogram and credit card number [ajawadmirza] #4488
|
|
174
|
+
* CheckoutV2: Add `3ds.status` field to send status of 3DS flow of all 3DS transactions [BritneyS] #4492
|
|
175
|
+
* CheckoutV2: Add `challenge_indicator`, `exemption`, `authorization_type`, `processing_channel_id`, and `capture_type` fields [ajawadmirza] #4482
|
|
176
|
+
* Add `mada` card type and associated BINs; add support for `mada` in CheckoutV2 gateway [dsmcclain] #4486
|
|
177
|
+
* Authorize.net: Refactor custom verify amount handling [jherreraa] #4485
|
|
178
|
+
* EBANX: Change amount for Colombia [flaaviaa] #4481
|
|
179
|
+
* Worldpay: Update `required_status_message` and `message_from` methods for response. [rachelkirk] #4493
|
|
180
|
+
* CheckoutV2: Add support for transactions through OAuth [ajawadmirza] #4483
|
|
181
|
+
* Vanco: Update unit test to remove remote call to gateway [ajawadmirza] #4497
|
|
182
|
+
* Shift4: remove support for 3ds2 [ajawadmirza] #4503
|
|
183
|
+
* Rapyd: Add support for stored credential [ajawadmirza] #4487
|
|
184
|
+
* MerchantE: Update `store` and add `verify` method [ajawadmirza] #4507
|
|
185
|
+
* Shift4: Add default `numericId`, add `InterfaceVersion`, `InterfaceName`, and `CompanyName` header fields, change date time format and allow merchant time zone [ajawadmirza] #4509
|
|
186
|
+
* BraintreeBlue: Add support for partial capture [aenand] #4515
|
|
187
|
+
* Rapyd: Change key name to `network_transaction_id` [ajawadmirza] #4514
|
|
188
|
+
* CyberSource: Handle unsupported Network Token brands [heavyblade] #4500
|
|
189
|
+
* Ingenico(Global Collect): Add support for `payment_product_id` [rachelkirk] #4521
|
|
190
|
+
* Adyen: Add network transaction id to store call [jcreiff] #4522
|
|
191
|
+
* Worldpay: Add machine cookie to subsequent calls during 3DS challenge [mbreenlyles] #4513*
|
|
192
|
+
* Shift4: Scrub `securityCode` fix [naashton] #4524
|
|
193
|
+
* Credorax: Update `OpCode` for credit transactions [dsmcclain] #4279
|
|
194
|
+
* CheckoutV2: Add `credit` method [ajawadmirza] #4490
|
|
195
|
+
* Stripe Payment Intents: Add `options` for retrieve_setup_intent [aenand] #4529
|
|
196
|
+
* CheckoutV2: Send payment id via `incremental_authorization` field [ajawadmirza] #4518
|
|
197
|
+
* Shift4: Add card `present` field, use previous transaction authorization for capture, and hardcode header values [ajawadmirza] #4528
|
|
198
|
+
* Orbital: Remove `DPANInd` field for RC transactions [ajawadmirza] #4502
|
|
199
|
+
* EBANX: Add Spreedly tag to payment body [flaaviaa] #4527
|
|
200
|
+
* Shift4: Add `expiration_date` field for refund transactions [ajawadmirza] #4532
|
|
201
|
+
* Improve handling of AVS and CVV Results in Multiresponses [gasb150] #4516
|
|
202
|
+
* Airwallex: Add `skip_3ds` field for create payment transactions [ajawadmirza] #4534
|
|
203
|
+
* Shift4: Typo correction for `initial_transaction` [ajawadmirza] #4537
|
|
204
|
+
* Rapyd: Pass Customer ID and fix `add_token` method [naashton] #4538
|
|
205
|
+
* Shift4: If no timezone is sent on transactions, the code uses the hours and minutes as a timezone offset [ali-hassan] #4536
|
|
206
|
+
* Priority: Add support for general credit and updating cvv and zip [priorityspreedly] #4517
|
|
207
|
+
* Worldpay: Update actions for generated message in `required_status_message` method [rachelkirk] #4530
|
|
208
|
+
* Adyen: Modify handling of countryCode for ACH [jcreiff] #4543
|
|
209
|
+
* CardConnect: update api end-point urls [heavyblade] #4541
|
|
210
|
+
* Vantiv(Litle): Add support for `fraudFilterOverride` field [rachelkirk] #4544
|
|
211
|
+
* Stripe: Add shipping address [jcreiff] #4539
|
|
212
|
+
* PayuLatam: Add extra1, extra2, extra3 fields [jcreiff] #4550
|
|
213
|
+
* Paysafe: Add fundingTransaction object [jcreiff] #4552
|
|
214
|
+
* MerchantE: Add tests for `moto_ecommerce_ind` field [ajawadmirza] #4554
|
|
215
|
+
* Plexo: Update `purchase` method, add flags for header fields, add new fields `billing_address`, `identification_type`, `identification_value`, and `cardholder_birthdate` [ajawadmirza] #4540
|
|
216
|
+
* Rapyd: Remove `BR`, `MX`, and `US` from supported countries [ajawadmirza] #4558
|
|
217
|
+
* Stripe Payment Intents: fix bug with billing address email [jcreiff] #4556
|
|
218
|
+
* Shift4: Add customer to `purchase` & `store` and remove transaction from `store` [ajawadmirza] #4557
|
|
219
|
+
* MerchantE: only add `moto_commerce_ind` to request if it is present [ajawadmirza] #4560
|
|
220
|
+
* Add BpPlus card type along with custom validation logic [dsmcclain] #4559
|
|
221
|
+
* PayTrace: Support ACH implementation for new endpoints and request body [ajawadmirza] #4545
|
|
222
|
+
* Rapyd: No force capture for ACH [naashton] #4562
|
|
223
|
+
* Shift4: Applied checks on Shift4 Time/Timezone offset [ali-hassan] #4561
|
|
224
|
+
* Alelo: Add gateway [heavyblade] #4555
|
|
225
|
+
* Wompi: Allow partial refund amount on void_sync [jcreiff] #4535
|
|
226
|
+
* Shift4: Timezone Offset [naashton] #4566
|
|
227
|
+
* MerchantE: `recurring_pmt_num` and `recurring_pmt_count` fields [ali-hassan] #4553
|
|
228
|
+
* Orbital: Add South African Rand to supported currencies [molbrown] #4569
|
|
229
|
+
* Orbital: Fix CardSecValInd [molbrown] #4563
|
|
230
|
+
* Shift4: Add `usage_indicator`, `indicator`, `scheduled_indicator`, and `transaction_id` fields [ajawadmirza] #4564
|
|
231
|
+
* Shift4: Retrieve `access_token` once [naashton] #4572
|
|
232
|
+
* Redsys: Update Base64 encryption handling for secret key [jcreiff] #4565
|
|
233
|
+
* Shift4: refuse `postalCode` when its null [ajawadmirza] #4574
|
|
234
|
+
* Plexo: Update param key to `refund_type` [ajawadmirza] #4575
|
|
235
|
+
* Shift4: Update request params for `verify`, `capture`, and `refund` [ajawadmirza] #4577
|
|
236
|
+
* CyberSource: Add support for `sec_code` [rachelkirk] #4581
|
|
237
|
+
* BraintreeBlue: Correctly vault payment method token for PayPal Checkout with Vault [almalee24] #4579
|
|
238
|
+
* BpPlus: Allow spaces in card number [ajawadmirza] #4585
|
|
239
|
+
* Shift4: Decline referral transactions and parse message for internal server errors [ajawadmirza] #4583
|
|
240
|
+
* Litle: Update homepage_url [gasb150] #4491
|
|
241
|
+
* Priority: Update credential handling [therufs] #4571
|
|
242
|
+
* Shift4: Fix authorization and remove `entryMode` from verify and store transactions [ajawadmirza] #4589
|
|
243
|
+
|
|
244
|
+
== Version 1.126.0 (April 15th, 2022)
|
|
245
|
+
* Moneris: Add 3DS MPI field support [esmitperez] #4373
|
|
246
|
+
* StripePI: Add ability to change payment_method_type to confirm_intent [aenand] #4300
|
|
247
|
+
* GlobalCollect: Improve support for Naranja and Cabal card types [dsmcclain] #4286
|
|
248
|
+
* Payflow: Add support for stored credentials [ajawadmirza] #4277
|
|
249
|
+
* Orbital: Don't void $0 auths for Verify [javierpedrozaing] #2487
|
|
250
|
+
* StripePI: Enable Apple Pay and Google Pay payment methods [gasb150] #4252
|
|
251
|
+
* PaySafe: Update `unstore` method and authorization for redact [ajawadmirza] #4294
|
|
252
|
+
* CyberSource: Add `national_tax_indicator` fields in authorize and purchase [ajawadmirza] #4299
|
|
253
|
+
* NMI: Update gateway credentials to accept security_key [javierpedrozaing] #4302
|
|
254
|
+
* PaySafe: Fix commit for `unstore` method [ajawadmirza] #4303
|
|
255
|
+
* Ebanx: Add support for `order_number` field [ali-hassan] #4304
|
|
256
|
+
* BlueSnap: Add support for `idempotency_key` field [drkjc] #4305
|
|
257
|
+
* Paymentez: Update `capture` method to verify by otp for pending transactions [ajawadmirza] #4267
|
|
258
|
+
* BlueSnap: Update refund request and endpoint along with merchant transaction support [ajawadmirza] #4307
|
|
259
|
+
* DecidirPlus: Added `authorize`, `capture`, `void`, and `verify` methods [ajawadmirza] #4284
|
|
260
|
+
* Paymentez: Fix `authorize` to call `purchase` for otp flow [ajawadmirza] #4310
|
|
261
|
+
* Orbital: Indicate support for network tokenization [dsmcclain] #4309
|
|
262
|
+
* IPG: remove `uruguay` from supported countries [ajawadmirza] #4311
|
|
263
|
+
* Decidir: Add sub_payments sub-fields to gateway [meagabeth] #4315
|
|
264
|
+
* Priority: Add additional fields to purchase and capture requests [dsmcclain] #4301
|
|
265
|
+
* DecidirPlus: Added `unstore` method [ajawadmirza] #4317
|
|
266
|
+
* Decidir & Decidir Plus: Revise handling of `sub_payment` sub-fields [meagabeth] #4318
|
|
267
|
+
* DecidirPlus: Update `unstore` implementation to get token from params [ajawadmirza] #4320
|
|
268
|
+
* CyberSource: Add option for zero amount verify [gasb150] #4313
|
|
269
|
+
* PayU Latam: Refactor `message_from` method, fix failing remote tests [rachelkirk] #4326
|
|
270
|
+
* Adyen: Add currencies with three decimals places [gasb150] #4322
|
|
271
|
+
* GlobalCollect: Stregthen success criteria for void action [peteroas] #4324
|
|
272
|
+
* Priority Payment Systems - Clean up/refactor gateway file and tests [ali-hassan] #4327
|
|
273
|
+
* SafeCharge: change `verify` to send 0 amount [dsmcclain] #4332
|
|
274
|
+
* DLocal: add support for `force_type` field [dsmcclain] #4336
|
|
275
|
+
* Barclaycard SmartPay: Support more nonstandard currencies [jherreraa] #4335
|
|
276
|
+
* DecidirPlus: `name_override` option on `store` [naashton] #4338
|
|
277
|
+
* Priority: Update `add_purchases_data` to return if `options[:purchases]` is empty [drkjc] #4349
|
|
278
|
+
* Stripe PI: update `shipping` field to `shipping_address` [ajawadmirza] #4347
|
|
279
|
+
* DecidirPlus: Handle `payment_method_id` by `card_brand` [naashton] #4350
|
|
280
|
+
* DecidirPlus: `debit` and `payment_method_id` fields [naashton] #4351
|
|
281
|
+
* Adyen: Include Application ID in adyen authorize and purchase transactions [peteroas] #4343
|
|
282
|
+
* Priority: Add support for `replay_id` field [drkjc] #4352
|
|
283
|
+
* Stripe PI: standardize `shipping_address` fields [dsmcclain] #4355
|
|
284
|
+
* Airwallex: support gateway [therufs] #4342
|
|
285
|
+
* Litle: Translate google_pay as android_pay [javierpedrozaing] #4331
|
|
286
|
+
* Braintree: Add ACH support for store [cristian] #4285
|
|
287
|
+
* Simetrik: Add support for Simetrik gateway [simetrik-frank] #4339
|
|
288
|
+
* EBANX: Change amount for Mexico and Chile [flaaviaa] #4337
|
|
289
|
+
* DecidirPlus: Add `establishment_name`, `aggregate_data`, `sub_payments`, `card_holder_identification_type`, `card_holder_identification_number`, `card_door_number`, and `card_holder_birthday` fields [ajawadmirza] #4361
|
|
290
|
+
* DecidirPlus: Update `error_code_from` to get error reason id [ajawadmirza] #4364
|
|
291
|
+
* Dlocal: Add three_ds mpi support [cristian] #4345
|
|
292
|
+
* Stripe PI: Add `request_three_d_secure` field for `create_setup_intent` [aenand] #4365
|
|
293
|
+
* Adyen: Add `verify_amount` field for verify [ajawadmirza] #4369
|
|
294
|
+
* Stripe PI: Pass options for tokenizing Apple/Google Pay [gasb150] #4368
|
|
295
|
+
* Dlocal: Format 3DS mpi enrollment data correctly [cristian] #4371
|
|
296
|
+
* Airwallex: QA fixes for option handling [therufs] #4367
|
|
297
|
+
* CardConnect: Fixed duplicate(concat) Address sent - card_connect is concat. address1 and 2 causing a AVS error [ahmirza] #4362
|
|
298
|
+
* CyberSource: Remove Pinless Debit Transaction Functionality [peteroas] #4370
|
|
299
|
+
* Litle: Add support for Level 2 and 3 enhanced data [curiousepic] #4360
|
|
300
|
+
* Rapyd: Add gateway support [meagabeth] #4372
|
|
301
|
+
* CyberSource: Update and fix test coverage [peteroas] #4374
|
|
302
|
+
* Airwallex: QA fixes for address and create_setup_intent handling [therufs] #4377
|
|
303
|
+
* Airwallex: add `descriptor` field and update logic for sending `request_id` and `merchant_order_id` [dsmcclain] #4379
|
|
304
|
+
* Visanet Peru: use timestamp instead of random for purchaseNumber [therufs] #4093
|
|
305
|
+
* Orbital: add `verify_amount` field [ajawadmirza] #4376
|
|
306
|
+
* Credorax: add `recipient_street_address`, `recipient_city`, `recipient_province_code`, and `recipient_country_code` fields [ajawadmirza] #4384
|
|
307
|
+
* Airwallex: add support for stored credentials [drkjc] #4382
|
|
308
|
+
* Rapyd: Add metadata and ewallet_id options [naashton] #4387
|
|
309
|
+
* Priority: Add additional fields to request and refactor gateway integration [dsmcclain] #4383
|
|
310
|
+
* Rapyd: Update `type` option to `pm_type` [naashton] #4391
|
|
311
|
+
* Conekta: Fix remote test [javierpedrozaing] #4386
|
|
312
|
+
* NMI: Update post URL [jherreraa] #4380
|
|
313
|
+
* Multiple Gateways: Resolve when/case bug [naashton] #4399
|
|
314
|
+
* Airwallex: Add 3DS MPI support [drkjc] #4395
|
|
315
|
+
* Add Cartes Bancaires card bin ranges [leahriffell] #4398
|
|
316
|
+
* Airwallex: Add support for `original_transaction_id` field [drkjc] #4401
|
|
317
|
+
* Securion Pay: Pass external 3DS data [jherreraa] #4404
|
|
318
|
+
* Airwallex: Update Stored Credentials testing, remove support for `original_transaction_id` field [drkjc] 4407
|
|
319
|
+
|
|
6
320
|
== Version 1.125.0 (January 20, 2022)
|
|
7
321
|
* Wompi: support gateway [therufs] #4173
|
|
8
322
|
* Stripe Payment Intents: Add setup_purchase [aenand] #4178
|
|
@@ -86,6 +400,8 @@
|
|
|
86
400
|
* Update inline documentation with all supported cardtypes [ali-hassan] #4283
|
|
87
401
|
* PayWay: Update endpoints, response code [jessiagee] #4281
|
|
88
402
|
* CyberSource: Add `line_items` for purchase [ajawadmirza] #4282
|
|
403
|
+
* Payflow Pro: Add `stored_credential` fields [ajawadmirza] #4277
|
|
404
|
+
* Decidir Plus: Add `fraud_detection` fields [naashton] #4289
|
|
89
405
|
|
|
90
406
|
== Version 1.124.0 (October 28th, 2021)
|
|
91
407
|
* Worldpay: Add Support for Submerchant Data on Worldpay [almalee24] #4147
|
|
@@ -20,7 +20,7 @@ module ActiveMerchant #:nodoc:
|
|
|
20
20
|
309 310 315 320 338 340 509 540 608 614 623 809 815 819 828 829 837 839
|
|
21
21
|
865 879 889 899 241 242 248 250 265 275 277 290 294 301 303 307 311 314
|
|
22
22
|
321 323 327 328 330 332 334 335 342 343 346 352 355 361 362 366 370 372
|
|
23
|
-
376 378 807 853 890
|
|
23
|
+
376 378 807 853 890 618 842
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
def name
|
|
@@ -60,20 +60,52 @@ module ActiveMerchant #:nodoc:
|
|
|
60
60
|
false
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
+
def valid_routing_number?
|
|
64
|
+
digits = routing_number.to_s.split('').map(&:to_i).select { |d| (0..9).cover?(d) }
|
|
65
|
+
case digits.size
|
|
66
|
+
when 9
|
|
67
|
+
return checksum(digits) == 0 || CAN_INSTITUTION_NUMBERS.include?(routing_number[1..3])
|
|
68
|
+
when 8
|
|
69
|
+
return CAN_INSTITUTION_NUMBERS.include?(routing_number[5..7])
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
false
|
|
73
|
+
end
|
|
74
|
+
|
|
63
75
|
# Routing numbers may be validated by calculating a checksum and dividing it by 10. The
|
|
64
76
|
# formula is:
|
|
65
77
|
# (3(d1 + d4 + d7) + 7(d2 + d5 + d8) + 1(d3 + d6 + d9))mod 10 = 0
|
|
66
78
|
# See http://en.wikipedia.org/wiki/Routing_transit_number#Internal_checksums
|
|
67
|
-
def
|
|
79
|
+
def checksum(digits)
|
|
80
|
+
((3 * (digits[0] + digits[3] + digits[6])) +
|
|
81
|
+
(7 * (digits[1] + digits[4] + digits[7])) +
|
|
82
|
+
(digits[2] + digits[5] + digits[8])) % 10
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Always return MICR-formatted routing number for Canadian routing numbers, US routing numbers unchanged
|
|
86
|
+
def micr_format_routing_number
|
|
68
87
|
digits = routing_number.to_s.split('').map(&:to_i).select { |d| (0..9).cover?(d) }
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
88
|
+
case digits.size
|
|
89
|
+
when 9
|
|
90
|
+
if checksum(digits) == 0
|
|
91
|
+
return routing_number
|
|
92
|
+
else
|
|
93
|
+
return routing_number[4..8] + routing_number[1..3]
|
|
94
|
+
end
|
|
95
|
+
when 8
|
|
96
|
+
return routing_number
|
|
97
|
+
end
|
|
98
|
+
end
|
|
73
99
|
|
|
74
|
-
|
|
100
|
+
# Always return electronic-formatted routing number for Canadian routing numbers, US routing numbers unchanged
|
|
101
|
+
def electronic_format_routing_number
|
|
102
|
+
digits = routing_number.to_s.split('').map(&:to_i).select { |d| (0..9).cover?(d) }
|
|
103
|
+
case digits.size
|
|
104
|
+
when 9
|
|
105
|
+
return routing_number
|
|
106
|
+
when 8
|
|
107
|
+
return '0' + routing_number[5..7] + routing_number[0..4]
|
|
75
108
|
end
|
|
76
|
-
false
|
|
77
109
|
end
|
|
78
110
|
end
|
|
79
111
|
end
|
|
@@ -32,6 +32,12 @@ module ActiveMerchant #:nodoc:
|
|
|
32
32
|
# * Olimpica
|
|
33
33
|
# * Creditel
|
|
34
34
|
# * Confiable
|
|
35
|
+
# * Mada
|
|
36
|
+
# * BpPlus
|
|
37
|
+
# * Passcard
|
|
38
|
+
# * Edenred
|
|
39
|
+
# * Anda
|
|
40
|
+
# * Creditos directos (Tarjeta D)
|
|
35
41
|
#
|
|
36
42
|
# For testing purposes, use the 'bogus' credit card brand. This skips the vast majority of
|
|
37
43
|
# validations, allowing you to focus on your core concerns until you're ready to be more concerned
|
|
@@ -61,6 +67,8 @@ module ActiveMerchant #:nodoc:
|
|
|
61
67
|
class CreditCard < Model
|
|
62
68
|
include CreditCardMethods
|
|
63
69
|
|
|
70
|
+
BRANDS_WITH_SPACES_IN_NUMBER = %w(bp_plus)
|
|
71
|
+
|
|
64
72
|
class << self
|
|
65
73
|
# Inherited, but can be overridden w/o changing parent's value
|
|
66
74
|
attr_accessor :require_verification_value
|
|
@@ -76,7 +84,7 @@ module ActiveMerchant #:nodoc:
|
|
|
76
84
|
attr_reader :number
|
|
77
85
|
|
|
78
86
|
def number=(value)
|
|
79
|
-
@number = (empty?(value) ? value : value
|
|
87
|
+
@number = (empty?(value) ? value : filter_number(value))
|
|
80
88
|
end
|
|
81
89
|
|
|
82
90
|
# Returns or sets the expiry month for the card.
|
|
@@ -116,6 +124,12 @@ module ActiveMerchant #:nodoc:
|
|
|
116
124
|
# * +'olimpica'+
|
|
117
125
|
# * +'creditel'+
|
|
118
126
|
# * +'confiable'+
|
|
127
|
+
# * +'mada'+
|
|
128
|
+
# * +'bp_plus'+
|
|
129
|
+
# * +'passcard'+
|
|
130
|
+
# * +'edenred'+
|
|
131
|
+
# * +'anda'+
|
|
132
|
+
# * +'tarjeta-d'+
|
|
119
133
|
#
|
|
120
134
|
# Or, if you wish to test your implementation, +'bogus'+.
|
|
121
135
|
#
|
|
@@ -337,8 +351,21 @@ module ActiveMerchant #:nodoc:
|
|
|
337
351
|
icc_data.present?
|
|
338
352
|
end
|
|
339
353
|
|
|
354
|
+
def allow_spaces_in_card?(number = nil)
|
|
355
|
+
BRANDS_WITH_SPACES_IN_NUMBER.include?(self.class.brand?(self.number || number))
|
|
356
|
+
end
|
|
357
|
+
|
|
340
358
|
private
|
|
341
359
|
|
|
360
|
+
def filter_number(value)
|
|
361
|
+
regex = if allow_spaces_in_card?(value)
|
|
362
|
+
/[^\d ]/
|
|
363
|
+
else
|
|
364
|
+
/[^\d]/
|
|
365
|
+
end
|
|
366
|
+
value.to_s.gsub(regex, '')
|
|
367
|
+
end
|
|
368
|
+
|
|
342
369
|
def validate_essential_attributes #:nodoc:
|
|
343
370
|
errors = []
|
|
344
371
|
|