activemerchant 1.107.4 → 1.112.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +63 -0
- data/README.md +3 -3
- data/lib/active_merchant/billing/base.rb +0 -13
- data/lib/active_merchant/billing/check.rb +1 -1
- data/lib/active_merchant/billing/credit_card.rb +2 -0
- data/lib/active_merchant/billing/credit_card_methods.rb +9 -6
- data/lib/active_merchant/billing/gateways/adyen.rb +23 -12
- data/lib/active_merchant/billing/gateways/allied_wallet.rb +2 -2
- data/lib/active_merchant/billing/gateways/authorize_net.rb +8 -8
- data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +3 -3
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +3 -3
- data/lib/active_merchant/billing/gateways/axcessms.rb +1 -1
- data/lib/active_merchant/billing/gateways/balanced.rb +1 -1
- data/lib/active_merchant/billing/gateways/bambora_apac.rb +2 -2
- data/lib/active_merchant/billing/gateways/bank_frick.rb +2 -2
- data/lib/active_merchant/billing/gateways/banwire.rb +2 -2
- data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +2 -2
- data/lib/active_merchant/billing/gateways/barclays_epdq_extra_plus.rb +1 -1
- data/lib/active_merchant/billing/gateways/be2bill.rb +1 -1
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +4 -4
- data/lib/active_merchant/billing/gateways/blue_pay.rb +4 -4
- data/lib/active_merchant/billing/gateways/blue_snap.rb +1 -1
- data/lib/active_merchant/billing/gateways/borgun.rb +3 -3
- data/lib/active_merchant/billing/gateways/bpoint.rb +1 -1
- data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +1 -1
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +82 -34
- data/lib/active_merchant/billing/gateways/bridge_pay.rb +2 -2
- data/lib/active_merchant/billing/gateways/cams.rb +2 -2
- data/lib/active_merchant/billing/gateways/card_connect.rb +1 -1
- data/lib/active_merchant/billing/gateways/card_save.rb +1 -1
- data/lib/active_merchant/billing/gateways/card_stream.rb +4 -4
- data/lib/active_merchant/billing/gateways/cardknox.rb +4 -4
- data/lib/active_merchant/billing/gateways/cardprocess.rb +1 -1
- data/lib/active_merchant/billing/gateways/cashnet.rb +1 -1
- data/lib/active_merchant/billing/gateways/cecabank.rb +1 -1
- data/lib/active_merchant/billing/gateways/cenpos.rb +12 -12
- data/lib/active_merchant/billing/gateways/checkout.rb +3 -3
- data/lib/active_merchant/billing/gateways/checkout_v2.rb +2 -2
- data/lib/active_merchant/billing/gateways/citrus_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/clearhaus.rb +4 -4
- data/lib/active_merchant/billing/gateways/commercegate.rb +1 -1
- data/lib/active_merchant/billing/gateways/conekta.rb +1 -1
- data/lib/active_merchant/billing/gateways/creditcall.rb +1 -1
- data/lib/active_merchant/billing/gateways/credorax.rb +7 -3
- data/lib/active_merchant/billing/gateways/ct_payment.rb +2 -2
- data/lib/active_merchant/billing/gateways/culqi.rb +1 -1
- data/lib/active_merchant/billing/gateways/cyber_source.rb +67 -19
- data/lib/active_merchant/billing/gateways/d_local.rb +20 -6
- data/lib/active_merchant/billing/gateways/data_cash.rb +1 -1
- data/lib/active_merchant/billing/gateways/decidir.rb +24 -0
- data/lib/active_merchant/billing/gateways/dibs.rb +2 -2
- data/lib/active_merchant/billing/gateways/digitzs.rb +2 -2
- data/lib/active_merchant/billing/gateways/ebanx.rb +4 -4
- data/lib/active_merchant/billing/gateways/efsnet.rb +2 -2
- data/lib/active_merchant/billing/gateways/elavon.rb +5 -4
- data/lib/active_merchant/billing/gateways/element.rb +8 -4
- data/lib/active_merchant/billing/gateways/epay.rb +3 -3
- data/lib/active_merchant/billing/gateways/evo_ca.rb +1 -1
- data/lib/active_merchant/billing/gateways/eway.rb +1 -1
- data/lib/active_merchant/billing/gateways/eway_managed.rb +1 -1
- data/lib/active_merchant/billing/gateways/eway_rapid.rb +2 -2
- data/lib/active_merchant/billing/gateways/exact.rb +3 -3
- data/lib/active_merchant/billing/gateways/ezic.rb +1 -1
- data/lib/active_merchant/billing/gateways/fat_zebra.rb +9 -7
- data/lib/active_merchant/billing/gateways/federated_canada.rb +1 -1
- data/lib/active_merchant/billing/gateways/finansbank.rb +2 -2
- data/lib/active_merchant/billing/gateways/first_giving.rb +1 -1
- data/lib/active_merchant/billing/gateways/first_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/firstdata_e4.rb +5 -5
- data/lib/active_merchant/billing/gateways/firstdata_e4_v27.rb +12 -4
- data/lib/active_merchant/billing/gateways/flo2cash.rb +10 -10
- data/lib/active_merchant/billing/gateways/forte.rb +3 -3
- data/lib/active_merchant/billing/gateways/garanti.rb +2 -2
- data/lib/active_merchant/billing/gateways/global_collect.rb +10 -5
- data/lib/active_merchant/billing/gateways/global_transport.rb +1 -1
- data/lib/active_merchant/billing/gateways/hdfc.rb +9 -9
- data/lib/active_merchant/billing/gateways/hps.rb +1 -1
- data/lib/active_merchant/billing/gateways/iats_payments.rb +2 -2
- data/lib/active_merchant/billing/gateways/inspire.rb +1 -1
- data/lib/active_merchant/billing/gateways/instapay.rb +1 -1
- data/lib/active_merchant/billing/gateways/ipp.rb +1 -1
- data/lib/active_merchant/billing/gateways/iridium.rb +3 -3
- data/lib/active_merchant/billing/gateways/itransact.rb +1 -1
- data/lib/active_merchant/billing/gateways/iveri.rb +2 -2
- data/lib/active_merchant/billing/gateways/ixopay.rb +1 -1
- data/lib/active_merchant/billing/gateways/jetpay.rb +2 -2
- data/lib/active_merchant/billing/gateways/jetpay_v2.rb +2 -2
- data/lib/active_merchant/billing/gateways/komoju.rb +1 -1
- data/lib/active_merchant/billing/gateways/kushki.rb +4 -4
- data/lib/active_merchant/billing/gateways/latitude19.rb +2 -2
- data/lib/active_merchant/billing/gateways/linkpoint.rb +2 -2
- data/lib/active_merchant/billing/gateways/litle.rb +5 -5
- data/lib/active_merchant/billing/gateways/maxipago.rb +2 -2
- data/lib/active_merchant/billing/gateways/mercado_pago.rb +11 -6
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +1 -1
- data/lib/active_merchant/billing/gateways/merchant_one.rb +2 -2
- data/lib/active_merchant/billing/gateways/merchant_partners.rb +1 -1
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +1 -1
- data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +1 -1
- data/lib/active_merchant/billing/gateways/merchant_warrior.rb +2 -2
- data/lib/active_merchant/billing/gateways/mercury.rb +4 -4
- data/lib/active_merchant/billing/gateways/metrics_global.rb +1 -1
- data/lib/active_merchant/billing/gateways/micropayment.rb +2 -2
- data/lib/active_merchant/billing/gateways/migs.rb +1 -1
- data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +1 -1
- data/lib/active_merchant/billing/gateways/monei.rb +2 -2
- data/lib/active_merchant/billing/gateways/moneris.rb +17 -17
- data/lib/active_merchant/billing/gateways/money_movers.rb +1 -1
- data/lib/active_merchant/billing/gateways/mundipagg.rb +1 -1
- data/lib/active_merchant/billing/gateways/nab_transact.rb +2 -2
- data/lib/active_merchant/billing/gateways/ncr_secure_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/net_registry.rb +2 -2
- data/lib/active_merchant/billing/gateways/netaxept.rb +3 -3
- data/lib/active_merchant/billing/gateways/netbanx.rb +51 -23
- data/lib/active_merchant/billing/gateways/netbilling.rb +2 -2
- data/lib/active_merchant/billing/gateways/netpay.rb +2 -2
- data/lib/active_merchant/billing/gateways/network_merchants.rb +1 -1
- data/lib/active_merchant/billing/gateways/nmi.rb +4 -4
- data/lib/active_merchant/billing/gateways/ogone.rb +2 -2
- data/lib/active_merchant/billing/gateways/omise.rb +1 -1
- data/lib/active_merchant/billing/gateways/openpay.rb +1 -1
- data/lib/active_merchant/billing/gateways/opp.rb +2 -2
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +4 -4
- data/lib/active_merchant/billing/gateways/orbital.rb +6 -6
- data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +1 -1
- data/lib/active_merchant/billing/gateways/pac_net_raven.rb +1 -1
- data/lib/active_merchant/billing/gateways/pagarme.rb +2 -2
- data/lib/active_merchant/billing/gateways/pago_facil.rb +1 -1
- data/lib/active_merchant/billing/gateways/pay_conex.rb +1 -1
- data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +2 -2
- data/lib/active_merchant/billing/gateways/pay_hub.rb +1 -1
- data/lib/active_merchant/billing/gateways/pay_junction.rb +3 -3
- data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +2 -2
- data/lib/active_merchant/billing/gateways/pay_secure.rb +1 -1
- data/lib/active_merchant/billing/gateways/paybox_direct.rb +3 -3
- data/lib/active_merchant/billing/gateways/payeezy.rb +2 -2
- data/lib/active_merchant/billing/gateways/payex.rb +13 -13
- data/lib/active_merchant/billing/gateways/payflow.rb +5 -5
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +2 -2
- data/lib/active_merchant/billing/gateways/payflow_uk.rb +1 -1
- data/lib/active_merchant/billing/gateways/payment_express.rb +1 -1
- data/lib/active_merchant/billing/gateways/paymentez.rb +1 -1
- data/lib/active_merchant/billing/gateways/paymill.rb +1 -1
- data/lib/active_merchant/billing/gateways/paypal.rb +2 -2
- data/lib/active_merchant/billing/gateways/paypal_ca.rb +1 -1
- data/lib/active_merchant/billing/gateways/payscout.rb +1 -1
- data/lib/active_merchant/billing/gateways/paystation.rb +1 -1
- data/lib/active_merchant/billing/gateways/payu_in.rb +1 -1
- data/lib/active_merchant/billing/gateways/payu_latam.rb +11 -9
- data/lib/active_merchant/billing/gateways/payway.rb +1 -1
- data/lib/active_merchant/billing/gateways/pin.rb +2 -2
- data/lib/active_merchant/billing/gateways/plugnpay.rb +5 -5
- data/lib/active_merchant/billing/gateways/pro_pay.rb +2 -2
- data/lib/active_merchant/billing/gateways/psigate.rb +1 -1
- data/lib/active_merchant/billing/gateways/psl_card.rb +2 -2
- data/lib/active_merchant/billing/gateways/qbms.rb +1 -1
- data/lib/active_merchant/billing/gateways/quantum.rb +4 -4
- data/lib/active_merchant/billing/gateways/quickbooks.rb +6 -6
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_common.rb +3 -3
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +4 -4
- data/lib/active_merchant/billing/gateways/qvalent.rb +1 -1
- data/lib/active_merchant/billing/gateways/realex.rb +3 -2
- data/lib/active_merchant/billing/gateways/redsys.rb +5 -5
- data/lib/active_merchant/billing/gateways/s5.rb +1 -1
- data/lib/active_merchant/billing/gateways/safe_charge.rb +2 -2
- data/lib/active_merchant/billing/gateways/sage.rb +3 -3
- data/lib/active_merchant/billing/gateways/sage_pay.rb +3 -3
- data/lib/active_merchant/billing/gateways/sallie_mae.rb +1 -1
- data/lib/active_merchant/billing/gateways/secure_net.rb +1 -1
- data/lib/active_merchant/billing/gateways/secure_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +2 -2
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +2 -2
- data/lib/active_merchant/billing/gateways/securion_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/skip_jack.rb +5 -5
- data/lib/active_merchant/billing/gateways/so_easy_pay.rb +7 -7
- data/lib/active_merchant/billing/gateways/spreedly_core.rb +1 -1
- data/lib/active_merchant/billing/gateways/stripe.rb +6 -6
- data/lib/active_merchant/billing/gateways/stripe_payment_intents.rb +21 -2
- data/lib/active_merchant/billing/gateways/swipe_checkout.rb +1 -1
- data/lib/active_merchant/billing/gateways/telr.rb +4 -4
- data/lib/active_merchant/billing/gateways/tns.rb +1 -1
- data/lib/active_merchant/billing/gateways/trans_first.rb +2 -2
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +1 -1
- data/lib/active_merchant/billing/gateways/transact_pro.rb +3 -3
- data/lib/active_merchant/billing/gateways/transax.rb +1 -1
- data/lib/active_merchant/billing/gateways/trexle.rb +2 -2
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +5 -5
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +6 -6
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +1 -1
- data/lib/active_merchant/billing/gateways/vanco.rb +1 -1
- data/lib/active_merchant/billing/gateways/verifi.rb +3 -3
- data/lib/active_merchant/billing/gateways/viaklix.rb +1 -1
- data/lib/active_merchant/billing/gateways/visanet_peru.rb +3 -3
- data/lib/active_merchant/billing/gateways/webpay.rb +1 -1
- data/lib/active_merchant/billing/gateways/wepay.rb +2 -2
- data/lib/active_merchant/billing/gateways/wirecard.rb +1 -1
- data/lib/active_merchant/billing/gateways/world_net.rb +35 -35
- data/lib/active_merchant/billing/gateways/worldpay.rb +7 -7
- data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +1 -1
- data/lib/active_merchant/billing/gateways/worldpay_us.rb +1 -1
- data/lib/active_merchant/connection.rb +40 -42
- data/lib/active_merchant/network_connection_retries.rb +10 -12
- data/lib/active_merchant/version.rb +1 -1
- data/lib/support/gateway_support.rb +1 -1
- metadata +46 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b190bcb3ae62de72a04d6ccf0bdbf8118bf3a7ed933047623376c19462f5300c
|
4
|
+
data.tar.gz: f189cc282450940147eab25223d1046382edb063c5df42205f954931df22bce3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 720b7a70402af86c246c1f28cd2d5d310a84edc6528718b15bb3d6183001e1b1d083dfb43e5f8d2e89dddcaa75f385e1154059fd0e1d6ce6f4b168bd469cf119
|
7
|
+
data.tar.gz: c8206af39075a57a3c4d201ef0d80a2cd775509cd62e5f6f5bdcfbf60809a0dd4bfe16e61ed587f42a1f75ebbbe893c1f97947886e9c758e289cd6993f3f7ac5
|
data/CHANGELOG
CHANGED
@@ -2,6 +2,69 @@
|
|
2
2
|
|
3
3
|
== HEAD
|
4
4
|
|
5
|
+
== Version 1.112.0
|
6
|
+
* Cybersource: add `maestro` and `diners_club` eci brand mapping [bbraschi] #3708
|
7
|
+
* Cybersource: Ensure Partner Solution Id placement conforms to schema [britth] #3715
|
8
|
+
* Adyen: Adyen: Pass `subMerchantId` as `additionalData` [naashton] #3714
|
9
|
+
* Litle: Omit checkNum when nil [leila-alderman] #3719
|
10
|
+
* PayU Latam: Improve error response [esmitperez] #3717
|
11
|
+
* Vantiv: Vantiv Express - CardPresentCode, PaymentType, SubmissionType, DuplicateCheckDisableFlag [esmitperez] #3730,#3731
|
12
|
+
* Cybersource: Ensure issueradditionaldata comes before partnerSolutionId [britth] #3733
|
13
|
+
|
14
|
+
== Version 1.111.0
|
15
|
+
* Fat Zebra: standardized 3DS fields and card on file extra data for Visa scheme rules [montdidier] #3409
|
16
|
+
* Realex: Change 3DSecure v1 message_version to a valid format [shuhala] #3702
|
17
|
+
* Ingenico/ GlobalCollect: Add field for installments [cdmackeyfree] #3707
|
18
|
+
* Cybersource: do not send 3DS fields if 'cavv` is missing and `commerceIndicator` is inferred [bbraschi] #3712
|
19
|
+
|
20
|
+
== Version 1.110.0
|
21
|
+
* FirstData e4 v27+: Strip linebreaks from address [curiousepic] #3693
|
22
|
+
* Adyen: Change shopper_email to email and shopper_ip to ip [rikterbeek] #3675
|
23
|
+
* FirstData e4 v27+ Fix strip_line_breaks method [carrigan] #3695
|
24
|
+
* Cybersource: Set authorization on the response even when in fraud review [pi3r] #3701
|
25
|
+
* Cybersource: Add fields to override stored creds [leila-alderman] #3689
|
26
|
+
* Cybersource: Conditionally find stored credentials [therufs] #3696 #3697
|
27
|
+
* Cybersource: Update logic to send cavv as xid for 3DS2 [douglas] #3699
|
28
|
+
* Credorax: Default 3ds_browsercolordepth to 32 when passed as 30 [britth] #3700
|
29
|
+
|
30
|
+
== Version 1.109.0
|
31
|
+
* Remove reference to `Billing::Integrations` [pi3r] #3692
|
32
|
+
* DLocal: Handle nil address1 [molbrown] #3661
|
33
|
+
* Braintree: Add travel and lodging fields [leila-alderman] #3668
|
34
|
+
* Stripe: strict_encode64 api key [britth] #3672
|
35
|
+
* Stripe PI: Implement verify action [leila-alderman] #3662
|
36
|
+
* Stripe, Stripe Payment Intents: Update supported countries [britth] #3684
|
37
|
+
* Forte: Use underscore for unused arguments in test [wsmoak] #3605
|
38
|
+
* Add Alia card type [therufs] #3673
|
39
|
+
* Element: Fix unit tests [leila-alderman] #3676
|
40
|
+
* PayU Latam: Fix store method [ccarruitero] #2590
|
41
|
+
* Adyen: Allow for executeThreeD to be passed as false [naashton] #3681
|
42
|
+
* WorldPay: Fix handling of `state` field for 3DS transactions [chinhle23] #3687
|
43
|
+
* Alia: Skip Luhn validation [therufs] #3673
|
44
|
+
* Diners Club: support 16 digit card numbers [therufs] #3682
|
45
|
+
* Cybersource: Update supported countries [britth] #3683
|
46
|
+
* Cybersource: pass reconciliation_id [therufs] #3688
|
47
|
+
* RuboCop: Fix Style/SpecialGlobalVars [leila-alderman] #3669
|
48
|
+
* RuboCop: Fix Style/StringLiteralsInInterpolation [leila-alderman] #3670
|
49
|
+
* RuboCop: Fix Layout/HeredocIndentation [leila-alderman] #3685
|
50
|
+
* RuboCop: Fix Gemspec/OrderedDependencies [leila-alderman] #3679
|
51
|
+
* RuboCop: Fix Style/TrailingUnderscoreVariable [leila-alderman] #3663
|
52
|
+
* RuboCop: Fix Style/WordArray [leila-alderman] #3664
|
53
|
+
* RuboCop: Fix Style/SymbolArray [leila-alderman] #3665
|
54
|
+
* Mercado-Pago: Notification url GSF [cdmackeyfree] #3678
|
55
|
+
* Credorax: Update logic for setting 3ds_homephonecountry [britth] #3691
|
56
|
+
|
57
|
+
== Version 1.108.0 (Jun 9, 2020)
|
58
|
+
* Cybersource: Send cavv as xid is xid is missing [pi3r] #3658
|
59
|
+
* Forte: Change default sec_code value to PPD [molbrown] #3653
|
60
|
+
* Elavon: Add merchant initiated unscheduled field [leila-alderman] #3647
|
61
|
+
* Decidir: Add aggregate data fields [leila-alderman] #3648
|
62
|
+
* Vantiv: Vantiv(Element): add option to send terminal id in transactions [cdmackeyfree] #3654
|
63
|
+
* Update supported Ruby and Rails versions [leila-alderman] #3656
|
64
|
+
* CI: Drop unused sudo: false Travis directive [olleolleolle] #3616
|
65
|
+
* PayU Latam: Prevent blank country in billing_address [britth] #3657
|
66
|
+
* DLocal: Fix address field names [molbrown] #3651
|
67
|
+
|
5
68
|
== Version 1.107.4 (Jun 2, 2020)
|
6
69
|
* Elavon: Implement true verify action [leila-alderman] #3610
|
7
70
|
* Vantiv Express: Implement true verify [leila-alderman] #3617
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Active Merchant
|
2
|
-
[![Build Status](https://travis-ci.org/activemerchant/active_merchant.
|
3
|
-
[![Code Climate](https://codeclimate.com/github/activemerchant/active_merchant.
|
2
|
+
[![Build Status](https://travis-ci.org/activemerchant/active_merchant.svg?branch=master)](https://travis-ci.org/activemerchant/active_merchant)
|
3
|
+
[![Code Climate](https://codeclimate.com/github/activemerchant/active_merchant.svg)](https://codeclimate.com/github/activemerchant/active_merchant)
|
4
4
|
|
5
5
|
Active Merchant is an extraction from the ecommerce system [Shopify](http://www.shopify.com).
|
6
6
|
Shopify's requirements for a simple and unified API to access dozens of different payment
|
@@ -244,4 +244,4 @@ Functionality or APIs that are deprecated will be marked as such. Deprecated fun
|
|
244
244
|
|
245
245
|
## Ruby and Rails compatibility policies
|
246
246
|
|
247
|
-
Because Active Merchant is a payment library, it needs to take security seriously. For this reason, Active Merchant guarantees compatibility only with actively supported versions of Ruby and Rails. At the time of this writing, that means that Ruby 2.
|
247
|
+
Because Active Merchant is a payment library, it needs to take security seriously. For this reason, Active Merchant guarantees compatibility only with actively supported versions of Ruby and Rails. At the time of this writing, that means that Ruby 2.5+ and Rails 5.0+ are supported.
|
@@ -39,19 +39,6 @@ module ActiveMerchant #:nodoc:
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
# Return the matching integration module
|
43
|
-
# You can then get the notification from the module
|
44
|
-
# * <tt>bogus</tt>: Bogus - Does nothing (for testing)
|
45
|
-
# * <tt>chronopay</tt>: Chronopay
|
46
|
-
# * <tt>paypal</tt>: Paypal
|
47
|
-
#
|
48
|
-
# chronopay = ActiveMerchant::Billing::Base.integration('chronopay')
|
49
|
-
# notification = chronopay.notification(raw_post)
|
50
|
-
#
|
51
|
-
def self.integration(name)
|
52
|
-
Billing::Integrations.const_get(name.to_s.downcase.camelize)
|
53
|
-
end
|
54
|
-
|
55
42
|
# A check to see if we're in test mode
|
56
43
|
def self.test?
|
57
44
|
mode == :test
|
@@ -23,6 +23,7 @@ module ActiveMerchant #:nodoc:
|
|
23
23
|
# * Cabal
|
24
24
|
# * Naranja
|
25
25
|
# * UnionPay
|
26
|
+
# * Alia
|
26
27
|
#
|
27
28
|
# For testing purposes, use the 'bogus' credit card brand. This skips the vast majority of
|
28
29
|
# validations, allowing you to focus on your core concerns until you're ready to be more concerned
|
@@ -98,6 +99,7 @@ module ActiveMerchant #:nodoc:
|
|
98
99
|
# * +'cabal'+
|
99
100
|
# * +'naranja'+
|
100
101
|
# * +'union_pay'+
|
102
|
+
# * +'alia'+
|
101
103
|
#
|
102
104
|
# Or, if you wish to test your implementation, +'bogus'+.
|
103
105
|
#
|
@@ -10,7 +10,7 @@ module ActiveMerchant #:nodoc:
|
|
10
10
|
'discover' => ->(num) { num =~ /^(6011|65\d{2}|64[4-9]\d)\d{12,15}|(62\d{14,17})$/ },
|
11
11
|
'american_express' => ->(num) { num =~ /^3[47]\d{13}$/ },
|
12
12
|
'naranja' => ->(num) { num&.size == 16 && in_bin_range?(num.slice(0, 6), NARANJA_RANGES) },
|
13
|
-
'diners_club' => ->(num) { num =~ /^3(0[0-5]|[68]\d)\d{11}$/ },
|
13
|
+
'diners_club' => ->(num) { num =~ /^3(0[0-5]|[68]\d)\d{11,16}$/ },
|
14
14
|
'jcb' => ->(num) { num =~ /^35(28|29|[3-8]\d)\d{12}$/ },
|
15
15
|
'dankort' => ->(num) { num =~ /^5019\d{12}$/ },
|
16
16
|
'maestro' => lambda { |num|
|
@@ -21,6 +21,7 @@ module ActiveMerchant #:nodoc:
|
|
21
21
|
},
|
22
22
|
'forbrugsforeningen' => ->(num) { num =~ /^600722\d{10}$/ },
|
23
23
|
'sodexo' => ->(num) { num =~ /^(606071|603389|606070|606069|606068|600818)\d{10}$/ },
|
24
|
+
'alia' => ->(num) { num =~ /^(504997|505878|601030|601073|505874)\d{10}$/ },
|
24
25
|
'vr' => ->(num) { num =~ /^(627416|637036)\d{10}$/ },
|
25
26
|
'cabal' => ->(num) { num&.size == 16 && in_bin_range?(num.slice(0, 8), CABAL_RANGES) },
|
26
27
|
'unionpay' => ->(num) { (16..19).cover?(num&.size) && in_bin_range?(num.slice(0, 8), UNIONPAY_RANGES) },
|
@@ -57,10 +58,10 @@ module ActiveMerchant #:nodoc:
|
|
57
58
|
]
|
58
59
|
|
59
60
|
CARNET_BINS = Set.new(
|
60
|
-
[
|
61
|
-
|
62
|
-
|
63
|
-
|
61
|
+
%w[
|
62
|
+
286900 502275 606333 627535 636318 636379 639388
|
63
|
+
639484 639559 50633601 50633606 58877274 62753500
|
64
|
+
60462203 60462204 588772
|
64
65
|
]
|
65
66
|
)
|
66
67
|
|
@@ -71,7 +72,7 @@ module ActiveMerchant #:nodoc:
|
|
71
72
|
]
|
72
73
|
|
73
74
|
MAESTRO_BINS = Set.new(
|
74
|
-
[
|
75
|
+
%w[500033 581149]
|
75
76
|
)
|
76
77
|
|
77
78
|
# https://www.mastercard.us/content/dam/mccom/global/documents/mastercard-rules.pdf, page 73
|
@@ -297,6 +298,8 @@ module ActiveMerchant #:nodoc:
|
|
297
298
|
case brand
|
298
299
|
when 'naranja'
|
299
300
|
valid_naranja_algo?(numbers)
|
301
|
+
when 'alia'
|
302
|
+
true
|
300
303
|
else
|
301
304
|
valid_luhn?(numbers)
|
302
305
|
end
|
@@ -9,7 +9,7 @@ module ActiveMerchant #:nodoc:
|
|
9
9
|
self.supported_countries = %w(AT AU BE BG BR CH CY CZ DE DK EE ES FI FR GB GI GR HK HU IE IS IT LI LT LU LV MC MT MX NL NO PL PT RO SE SG SK SI US)
|
10
10
|
self.default_currency = 'USD'
|
11
11
|
self.currencies_without_fractions = %w(CVE DJF GNF IDR JPY KMF KRW PYG RWF UGX VND VUV XAF XOF XPF)
|
12
|
-
self.supported_cardtypes = [
|
12
|
+
self.supported_cardtypes = %i[visa master american_express diners_club jcb dankort maestro discover elo naranja cabal unionpay]
|
13
13
|
|
14
14
|
self.money_format = :cents
|
15
15
|
|
@@ -196,9 +196,6 @@ module ActiveMerchant #:nodoc:
|
|
196
196
|
|
197
197
|
def add_extra_data(post, payment, options)
|
198
198
|
post[:telephoneNumber] = options[:billing_address][:phone] if options.dig(:billing_address, :phone)
|
199
|
-
post[:shopperEmail] = options[:shopper_email] if options[:shopper_email]
|
200
|
-
post[:shopperIP] = options[:shopper_ip] if options[:shopper_ip]
|
201
|
-
post[:shopperStatement] = options[:shopper_statement] if options[:shopper_statement]
|
202
199
|
post[:fraudOffset] = options[:fraud_offset] if options[:fraud_offset]
|
203
200
|
post[:selectedBrand] = options[:selected_brand] if options[:selected_brand]
|
204
201
|
post[:selectedBrand] ||= NETWORK_TOKENIZATION_CARD_SOURCE[payment.source.to_s] if payment.is_a?(NetworkTokenizationCreditCard)
|
@@ -212,11 +209,25 @@ module ActiveMerchant #:nodoc:
|
|
212
209
|
post[:additionalData][:authorisationType] = options[:authorisation_type] if options[:authorisation_type]
|
213
210
|
post[:additionalData][:adjustAuthorisationData] = options[:adjust_authorisation_data] if options[:adjust_authorisation_data]
|
214
211
|
post[:additionalData][:industryUsage] = options[:industry_usage] if options[:industry_usage]
|
215
|
-
post[:additionalData][:updateShopperStatement] = options[:update_shopper_statement] if options[:update_shopper_statement]
|
216
212
|
post[:additionalData][:RequestedTestAcquirerResponseCode] = options[:requested_test_acquirer_response_code] if options[:requested_test_acquirer_response_code] && test?
|
217
213
|
post[:deviceFingerprint] = options[:device_fingerprint] if options[:device_fingerprint]
|
214
|
+
add_shopper_data(post, options)
|
218
215
|
add_risk_data(post, options)
|
219
216
|
add_shopper_reference(post, options)
|
217
|
+
add_merchant_data(post, options)
|
218
|
+
end
|
219
|
+
|
220
|
+
def add_shopper_data(post, options)
|
221
|
+
post[:shopperEmail] = options[:email] if options[:email]
|
222
|
+
post[:shopperEmail] = options[:shopper_email] if options[:shopper_email]
|
223
|
+
post[:shopperIP] = options[:ip] if options[:ip]
|
224
|
+
post[:shopperIP] = options[:shopper_ip] if options[:shopper_ip]
|
225
|
+
post[:shopperStatement] = options[:shopper_statement] if options[:shopper_statement]
|
226
|
+
post[:additionalData][:updateShopperStatement] = options[:update_shopper_statement] if options[:update_shopper_statement]
|
227
|
+
end
|
228
|
+
|
229
|
+
def add_merchant_data(post, options)
|
230
|
+
post[:additionalData][:subMerchantId] = options[:sub_merchant_id] if options[:sub_merchant_id]
|
220
231
|
end
|
221
232
|
|
222
233
|
def add_risk_data(post, options)
|
@@ -366,12 +377,12 @@ module ActiveMerchant #:nodoc:
|
|
366
377
|
end
|
367
378
|
|
368
379
|
def add_reference(post, authorization, options = {})
|
369
|
-
_, psp_reference,
|
380
|
+
_, psp_reference, = authorization.split('#')
|
370
381
|
post[:originalReference] = single_reference(authorization) || psp_reference
|
371
382
|
end
|
372
383
|
|
373
384
|
def add_original_reference(post, authorization, options = {})
|
374
|
-
original_psp_reference,
|
385
|
+
original_psp_reference, = authorization.split('#')
|
375
386
|
post[:originalReference] = single_reference(authorization) || original_psp_reference
|
376
387
|
end
|
377
388
|
|
@@ -418,10 +429,10 @@ module ActiveMerchant #:nodoc:
|
|
418
429
|
post[:additionalData][:scaExemption] = options[:sca_exemption] if options[:sca_exemption]
|
419
430
|
end
|
420
431
|
else
|
421
|
-
return unless options[:execute_threed] || options[:threed_dynamic]
|
432
|
+
return unless !options[:execute_threed].nil? || !options[:threed_dynamic].nil?
|
422
433
|
|
423
|
-
post[:browserInfo] = { userAgent: options[:user_agent], acceptHeader: options[:accept_header] }
|
424
|
-
post[:additionalData] = { executeThreeD:
|
434
|
+
post[:browserInfo] = { userAgent: options[:user_agent], acceptHeader: options[:accept_header] } if options[:execute_threed] || options[:threed_dynamic]
|
435
|
+
post[:additionalData] = { executeThreeD: options[:execute_threed] } if !options[:execute_threed].nil?
|
425
436
|
end
|
426
437
|
end
|
427
438
|
|
@@ -527,14 +538,14 @@ module ActiveMerchant #:nodoc:
|
|
527
538
|
end
|
528
539
|
|
529
540
|
def success_from(action, response, options)
|
530
|
-
if [
|
541
|
+
if %w[RedirectShopper ChallengeShopper].include?(response.dig('resultCode')) && !options[:execute_threed] && !options[:threed_dynamic]
|
531
542
|
response['refusalReason'] = 'Received unexpected 3DS authentication response. Use the execute_threed and/or threed_dynamic options to initiate a proper 3DS flow.'
|
532
543
|
return false
|
533
544
|
end
|
534
545
|
|
535
546
|
case action.to_s
|
536
547
|
when 'authorise', 'authorise3d'
|
537
|
-
[
|
548
|
+
%w[Authorised Received RedirectShopper].include?(response['resultCode'])
|
538
549
|
when 'capture', 'refund', 'cancel'
|
539
550
|
response['response'] == "[#{action}-received]"
|
540
551
|
when 'adjustAuthorisation'
|
@@ -9,8 +9,8 @@ module ActiveMerchant #:nodoc:
|
|
9
9
|
self.supported_countries = ['US']
|
10
10
|
self.default_currency = 'USD'
|
11
11
|
self.money_format = :dollars
|
12
|
-
self.supported_cardtypes = [
|
13
|
-
|
12
|
+
self.supported_cardtypes = %i[visa master american_express discover
|
13
|
+
diners_club jcb maestro]
|
14
14
|
|
15
15
|
def initialize(options={})
|
16
16
|
requires!(options, :site_id, :merchant_id, :token)
|
@@ -11,7 +11,7 @@ module ActiveMerchant
|
|
11
11
|
self.supported_countries = %w(AU CA US)
|
12
12
|
self.default_currency = 'USD'
|
13
13
|
self.money_format = :dollars
|
14
|
-
self.supported_cardtypes = [
|
14
|
+
self.supported_cardtypes = %i[visa master american_express discover diners_club jcb maestro]
|
15
15
|
|
16
16
|
self.homepage_url = 'http://www.authorize.net/'
|
17
17
|
self.display_name = 'Authorize.Net'
|
@@ -192,7 +192,7 @@ module ActiveMerchant
|
|
192
192
|
end
|
193
193
|
|
194
194
|
def unstore(authorization)
|
195
|
-
customer_profile_id,
|
195
|
+
customer_profile_id, = split_authorization(authorization)
|
196
196
|
|
197
197
|
delete_customer_profile(customer_profile_id)
|
198
198
|
end
|
@@ -311,7 +311,7 @@ module ActiveMerchant
|
|
311
311
|
end
|
312
312
|
|
313
313
|
def cim_refund(amount, authorization, options)
|
314
|
-
transaction_id, card_number,
|
314
|
+
transaction_id, card_number, = split_authorization(authorization)
|
315
315
|
|
316
316
|
commit(:cim_refund, options) do |xml|
|
317
317
|
add_order_id(xml, options)
|
@@ -331,7 +331,7 @@ module ActiveMerchant
|
|
331
331
|
end
|
332
332
|
|
333
333
|
def normal_refund(amount, authorization, options)
|
334
|
-
transaction_id, card_number,
|
334
|
+
transaction_id, card_number, = split_authorization(authorization)
|
335
335
|
|
336
336
|
commit(:refund) do |xml|
|
337
337
|
xml.transactionRequest do
|
@@ -488,7 +488,7 @@ module ActiveMerchant
|
|
488
488
|
|
489
489
|
def add_swipe_data(xml, credit_card)
|
490
490
|
TRACKS.each do |key, regex|
|
491
|
-
if regex.match(credit_card.track_data)
|
491
|
+
if regex.match?(credit_card.track_data)
|
492
492
|
@valid_track_data = true
|
493
493
|
xml.payment do
|
494
494
|
xml.trackData do
|
@@ -500,7 +500,7 @@ module ActiveMerchant
|
|
500
500
|
end
|
501
501
|
|
502
502
|
def add_token_payment_method(xml, token, options)
|
503
|
-
customer_profile_id, customer_payment_profile_id,
|
503
|
+
customer_profile_id, customer_payment_profile_id, = split_authorization(token)
|
504
504
|
customer_profile_id = options[:customer_profile_id] if options[:customer_profile_id]
|
505
505
|
customer_payment_profile_id = options[:customer_payment_profile_id] if options[:customer_payment_profile_id]
|
506
506
|
xml.customerProfileId(customer_profile_id)
|
@@ -755,7 +755,7 @@ module ActiveMerchant
|
|
755
755
|
end
|
756
756
|
|
757
757
|
def state_from(address, options)
|
758
|
-
if [
|
758
|
+
if %w[US CA].include?(address[:country])
|
759
759
|
address[:state] || 'NC'
|
760
760
|
else
|
761
761
|
address[:state] || 'n/a'
|
@@ -988,7 +988,7 @@ module ActiveMerchant
|
|
988
988
|
end
|
989
989
|
|
990
990
|
def transaction_id_from(authorization)
|
991
|
-
transaction_id,
|
991
|
+
transaction_id, = split_authorization(authorization)
|
992
992
|
transaction_id
|
993
993
|
end
|
994
994
|
|
@@ -31,8 +31,8 @@ module ActiveMerchant #:nodoc:
|
|
31
31
|
|
32
32
|
self.default_currency = 'USD'
|
33
33
|
|
34
|
-
self.supported_countries = [
|
35
|
-
self.supported_cardtypes = [
|
34
|
+
self.supported_countries = %w[US CA GB]
|
35
|
+
self.supported_cardtypes = %i[visa master american_express discover diners_club jcb]
|
36
36
|
self.homepage_url = 'http://www.authorize.net/'
|
37
37
|
self.display_name = 'Authorize.Net'
|
38
38
|
|
@@ -84,7 +84,7 @@ module ActiveMerchant #:nodoc:
|
|
84
84
|
# initial billing occurs) and the total number of billing <tt>:occurrences</tt> or payments for the subscription. (REQUIRED)
|
85
85
|
def recurring(money, creditcard, options={})
|
86
86
|
requires!(options, :interval, :duration, :billing_address)
|
87
|
-
requires!(options[:interval], :length, [
|
87
|
+
requires!(options[:interval], :length, %i[unit days months])
|
88
88
|
requires!(options[:duration], :start_date, :occurrences)
|
89
89
|
requires!(options[:billing_address], :first_name, :last_name)
|
90
90
|
|
@@ -81,7 +81,7 @@ module ActiveMerchant #:nodoc:
|
|
81
81
|
self.homepage_url = 'http://www.authorize.net/'
|
82
82
|
self.display_name = 'Authorize.Net CIM'
|
83
83
|
self.supported_countries = ['US']
|
84
|
-
self.supported_cardtypes = [
|
84
|
+
self.supported_cardtypes = %i[visa master american_express discover]
|
85
85
|
|
86
86
|
# Creates a new AuthorizeNetCimGateway
|
87
87
|
#
|
@@ -691,10 +691,10 @@ module ActiveMerchant #:nodoc:
|
|
691
691
|
add_order(xml, transaction[:order]) if transaction[:order].present?
|
692
692
|
|
693
693
|
end
|
694
|
-
if [
|
694
|
+
if %i[auth_capture auth_only capture_only].include?(transaction[:type])
|
695
695
|
xml.tag!('recurringBilling', transaction[:recurring_billing]) if transaction.has_key?(:recurring_billing)
|
696
696
|
end
|
697
|
-
tag_unless_blank(xml, 'cardCode', transaction[:card_code]) unless [
|
697
|
+
tag_unless_blank(xml, 'cardCode', transaction[:card_code]) unless %i[void refund prior_auth_capture].include?(transaction[:type])
|
698
698
|
end
|
699
699
|
end
|
700
700
|
end
|
@@ -8,7 +8,7 @@ module ActiveMerchant #:nodoc:
|
|
8
8
|
GI GR HR HU IE IL IM IS IT LI LT LU LV MC MT MX NL
|
9
9
|
NO PL PT RO RU SE SI SK TR US VA)
|
10
10
|
|
11
|
-
self.supported_cardtypes = [
|
11
|
+
self.supported_cardtypes = %i[visa master american_express discover jcb maestro]
|
12
12
|
|
13
13
|
self.homepage_url = 'http://www.axcessms.com/'
|
14
14
|
self.display_name = 'Axcess MS'
|
@@ -22,7 +22,7 @@ module ActiveMerchant #:nodoc:
|
|
22
22
|
self.live_url = 'https://api.balancedpayments.com'
|
23
23
|
|
24
24
|
self.supported_countries = ['US']
|
25
|
-
self.supported_cardtypes = [
|
25
|
+
self.supported_cardtypes = %i[visa master american_express discover]
|
26
26
|
self.homepage_url = 'https://www.balancedpayments.com/'
|
27
27
|
self.display_name = 'Balanced'
|
28
28
|
self.money_format = :cents
|
@@ -6,8 +6,8 @@ module ActiveMerchant #:nodoc:
|
|
6
6
|
self.live_url = 'https://www.bambora.co.nz/interface/api'
|
7
7
|
self.test_url = 'https://demo.bambora.co.nz/interface/api'
|
8
8
|
|
9
|
-
self.supported_countries = [
|
10
|
-
self.supported_cardtypes = [
|
9
|
+
self.supported_countries = %w[AU NZ]
|
10
|
+
self.supported_cardtypes = %i[visa master american_express diners_club jcb]
|
11
11
|
|
12
12
|
self.homepage_url = 'http://www.bambora.com/'
|
13
13
|
self.display_name = 'Bambora Asia-Pacific'
|
@@ -9,9 +9,9 @@ module ActiveMerchant #:nodoc:
|
|
9
9
|
self.test_url = 'https://test.ctpe.io/payment/ctpe'
|
10
10
|
self.live_url = 'https://ctpe.io/payment/ctpe'
|
11
11
|
|
12
|
-
self.supported_countries = [
|
12
|
+
self.supported_countries = %w[LI US]
|
13
13
|
self.default_currency = 'EUR'
|
14
|
-
self.supported_cardtypes = [
|
14
|
+
self.supported_cardtypes = %i[visa master american_express discover]
|
15
15
|
|
16
16
|
self.homepage_url = 'http://www.bankfrickacquiring.com/'
|
17
17
|
self.display_name = 'Bank Frick'
|