activemerchant 1.108.0 → 1.113.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +69 -0
- data/README.md +2 -2
- 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 +3 -1
- data/lib/active_merchant/billing/credit_card_methods.rb +10 -7
- data/lib/active_merchant/billing/gateway.rb +1 -1
- data/lib/active_merchant/billing/gateways/adyen.rb +25 -14
- data/lib/active_merchant/billing/gateways/allied_wallet.rb +2 -2
- data/lib/active_merchant/billing/gateways/authorize_net.rb +13 -13
- data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +3 -3
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +4 -4
- data/lib/active_merchant/billing/gateways/axcessms.rb +1 -1
- data/lib/active_merchant/billing/gateways/balanced.rb +2 -2
- data/lib/active_merchant/billing/gateways/bambora_apac.rb +3 -3
- data/lib/active_merchant/billing/gateways/bank_frick.rb +3 -3
- 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 +2 -2
- data/lib/active_merchant/billing/gateways/blue_snap.rb +50 -13
- data/lib/active_merchant/billing/gateways/borgun.rb +4 -4
- 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 +85 -35
- 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 +5 -5
- 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 +13 -13
- data/lib/active_merchant/billing/gateways/checkout.rb +3 -3
- data/lib/active_merchant/billing/gateways/checkout_v2.rb +3 -3
- data/lib/active_merchant/billing/gateways/citrus_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/clearhaus.rb +3 -3
- 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 +13 -3
- data/lib/active_merchant/billing/gateways/ct_payment.rb +2 -2
- data/lib/active_merchant/billing/gateways/culqi.rb +2 -2
- data/lib/active_merchant/billing/gateways/cyber_source.rb +66 -20
- data/lib/active_merchant/billing/gateways/d_local.rb +7 -3
- data/lib/active_merchant/billing/gateways/data_cash.rb +1 -1
- data/lib/active_merchant/billing/gateways/decidir.rb +1 -1
- data/lib/active_merchant/billing/gateways/dibs.rb +2 -2
- data/lib/active_merchant/billing/gateways/digitzs.rb +3 -3
- data/lib/active_merchant/billing/gateways/ebanx.rb +4 -4
- data/lib/active_merchant/billing/gateways/efsnet.rb +3 -3
- data/lib/active_merchant/billing/gateways/elavon.rb +1 -1
- data/lib/active_merchant/billing/gateways/element.rb +7 -3
- 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 +4 -4
- data/lib/active_merchant/billing/gateways/exact.rb +3 -3
- data/lib/active_merchant/billing/gateways/ezic.rb +2 -2
- 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 +4 -4
- data/lib/active_merchant/billing/gateways/firstdata_e4_v27.rb +11 -3
- data/lib/active_merchant/billing/gateways/flo2cash.rb +11 -11
- data/lib/active_merchant/billing/gateways/forte.rb +2 -2
- 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 +10 -10
- data/lib/active_merchant/billing/gateways/hps.rb +10 -7
- 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 +3 -3
- data/lib/active_merchant/billing/gateways/iridium.rb +5 -5
- 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 +3 -3
- data/lib/active_merchant/billing/gateways/litle.rb +5 -5
- data/lib/active_merchant/billing/gateways/mastercard.rb +2 -2
- data/lib/active_merchant/billing/gateways/maxipago.rb +2 -2
- data/lib/active_merchant/billing/gateways/mercado_pago.rb +12 -7
- 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 +2 -2
- data/lib/active_merchant/billing/gateways/netbanx.rb +53 -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 +2 -2
- data/lib/active_merchant/billing/gateways/opp.rb +4 -4
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +5 -5
- data/lib/active_merchant/billing/gateways/orbital.rb +14 -7
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- data/lib/active_merchant/billing/gateways/payex.rb +18 -18
- data/lib/active_merchant/billing/gateways/payflow.rb +8 -5
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +2 -2
- data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +1 -1
- 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 +4 -4
- 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 +10 -8
- data/lib/active_merchant/billing/gateways/payway.rb +1 -1
- data/lib/active_merchant/billing/gateways/pin.rb +1 -1
- data/lib/active_merchant/billing/gateways/plugnpay.rb +6 -6
- data/lib/active_merchant/billing/gateways/pro_pay.rb +2 -2
- data/lib/active_merchant/billing/gateways/psigate.rb +2 -2
- data/lib/active_merchant/billing/gateways/psl_card.rb +2 -2
- data/lib/active_merchant/billing/gateways/qbms.rb +4 -4
- data/lib/active_merchant/billing/gateways/quantum.rb +3 -3
- data/lib/active_merchant/billing/gateways/quickbooks.rb +9 -8
- 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 +2 -2
- data/lib/active_merchant/billing/gateways/realex.rb +2 -1
- data/lib/active_merchant/billing/gateways/redsys.rb +7 -7
- 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 +7 -7
- 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 +6 -6
- data/lib/active_merchant/billing/gateways/so_easy_pay.rb +6 -6
- data/lib/active_merchant/billing/gateways/spreedly_core.rb +1 -1
- data/lib/active_merchant/billing/gateways/stripe.rb +8 -8
- data/lib/active_merchant/billing/gateways/stripe_payment_intents.rb +20 -1
- data/lib/active_merchant/billing/gateways/swipe_checkout.rb +1 -1
- data/lib/active_merchant/billing/gateways/telr.rb +5 -5
- data/lib/active_merchant/billing/gateways/tns.rb +1 -1
- data/lib/active_merchant/billing/gateways/trans_first.rb +3 -3
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +3 -3
- data/lib/active_merchant/billing/gateways/transact_pro.rb +1 -1
- data/lib/active_merchant/billing/gateways/transax.rb +1 -1
- data/lib/active_merchant/billing/gateways/trexle.rb +1 -1
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +12 -12
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +10 -10
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +2 -2
- 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 +6 -6
- data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +1 -1
- data/lib/active_merchant/billing/gateways/worldpay_us.rb +3 -3
- data/lib/active_merchant/version.rb +1 -1
- data/lib/support/gateway_support.rb +1 -1
- metadata +45 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e55d83260a0ec7b9a824a6313782d8c2b086d55aeb33d99554a09a18836f40a5
|
4
|
+
data.tar.gz: 35b24d3dd8e61c096ec4f5ef5d241a5ae3f905f32ba159e4332be36942cd3c56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 337249552ee4b5fd33ff2ca257cfcc90265e9aff657b5c42f42563aae070fd583308f5e6cfe05ed5ba1d23a791bac04edf50d0b8afce796c051d36f0b0dca256
|
7
|
+
data.tar.gz: d21728f2c2448e36842ccf5c38d64bf21ace79bd61ddf37367cf08f62ec98d33e0e277d5c5d21adb32ae7db4b03b15fa8e9f6d18b3acdf2be46ac153141585da
|
data/CHANGELOG
CHANGED
@@ -2,6 +2,75 @@
|
|
2
2
|
|
3
3
|
== HEAD
|
4
4
|
|
5
|
+
== Version 1.113.0
|
6
|
+
* Orbital: Add cardIndicators field [meagabeth] #3734
|
7
|
+
* Openpay: Add Colombia to supported countries [molbrown] #3740
|
8
|
+
* Mercado Pago: Update Device Id Header field [cdmackeyfree] #3741
|
9
|
+
* RuboCop: Fix Style/TrailingCommaInHashLiteral [leila-alderman] #3718
|
10
|
+
* RuboCop: Fix Naming/PredicateName [leila-alderman] #3724
|
11
|
+
* RuboCop: Fix Style/Attr [leila-alderman] #3728
|
12
|
+
* Payflow: Use application_id to set buttonsource [britth] #3737
|
13
|
+
* HPS: Enable refunds using capture transaction [britth] #3738
|
14
|
+
* Quickbooks: Omit empty strings in address [leila-alderman] #3743
|
15
|
+
* BlueSnap: Add transactionMetaData support #3745
|
16
|
+
* Orbital: Fix typo in PC3DtlLineTot field [naashton] #3736
|
17
|
+
* Credorax: Send first and last name parameters for CFT transactions [britth] #3748
|
18
|
+
* Orbital: Update CardIndicators field to fix bug [meagabeth] #3746
|
19
|
+
* CyberSource: Always send default address [leila-alderman] #3747
|
20
|
+
* Netbanx: Reject partial refund on pending status [rockyhakjoong] #3735
|
21
|
+
|
22
|
+
== Version 1.112.0
|
23
|
+
* Cybersource: add `maestro` and `diners_club` eci brand mapping [bbraschi] #3708
|
24
|
+
* Cybersource: Ensure Partner Solution Id placement conforms to schema [britth] #3715
|
25
|
+
* Adyen: Adyen: Pass `subMerchantId` as `additionalData` [naashton] #3714
|
26
|
+
* Litle: Omit checkNum when nil [leila-alderman] #3719
|
27
|
+
* PayU Latam: Improve error response [esmitperez] #3717
|
28
|
+
* Vantiv: Vantiv Express - CardPresentCode, PaymentType, SubmissionType, DuplicateCheckDisableFlag [esmitperez] #3730,#3731
|
29
|
+
* Cybersource: Ensure issueradditionaldata comes before partnerSolutionId [britth] #3733
|
30
|
+
|
31
|
+
== Version 1.111.0
|
32
|
+
* Fat Zebra: standardized 3DS fields and card on file extra data for Visa scheme rules [montdidier] #3409
|
33
|
+
* Realex: Change 3DSecure v1 message_version to a valid format [shuhala] #3702
|
34
|
+
* Ingenico/ GlobalCollect: Add field for installments [cdmackeyfree] #3707
|
35
|
+
* Cybersource: do not send 3DS fields if 'cavv` is missing and `commerceIndicator` is inferred [bbraschi] #3712
|
36
|
+
|
37
|
+
== Version 1.110.0
|
38
|
+
* FirstData e4 v27+: Strip linebreaks from address [curiousepic] #3693
|
39
|
+
* Adyen: Change shopper_email to email and shopper_ip to ip [rikterbeek] #3675
|
40
|
+
* FirstData e4 v27+ Fix strip_line_breaks method [carrigan] #3695
|
41
|
+
* Cybersource: Set authorization on the response even when in fraud review [pi3r] #3701
|
42
|
+
* Cybersource: Add fields to override stored creds [leila-alderman] #3689
|
43
|
+
* Cybersource: Conditionally find stored credentials [therufs] #3696 #3697
|
44
|
+
* Cybersource: Update logic to send cavv as xid for 3DS2 [douglas] #3699
|
45
|
+
* Credorax: Default 3ds_browsercolordepth to 32 when passed as 30 [britth] #3700
|
46
|
+
|
47
|
+
== Version 1.109.0
|
48
|
+
* Remove reference to `Billing::Integrations` [pi3r] #3692
|
49
|
+
* DLocal: Handle nil address1 [molbrown] #3661
|
50
|
+
* Braintree: Add travel and lodging fields [leila-alderman] #3668
|
51
|
+
* Stripe: strict_encode64 api key [britth] #3672
|
52
|
+
* Stripe PI: Implement verify action [leila-alderman] #3662
|
53
|
+
* Stripe, Stripe Payment Intents: Update supported countries [britth] #3684
|
54
|
+
* Forte: Use underscore for unused arguments in test [wsmoak] #3605
|
55
|
+
* Add Alia card type [therufs] #3673
|
56
|
+
* Element: Fix unit tests [leila-alderman] #3676
|
57
|
+
* PayU Latam: Fix store method [ccarruitero] #2590
|
58
|
+
* Adyen: Allow for executeThreeD to be passed as false [naashton] #3681
|
59
|
+
* WorldPay: Fix handling of `state` field for 3DS transactions [chinhle23] #3687
|
60
|
+
* Alia: Skip Luhn validation [therufs] #3673
|
61
|
+
* Diners Club: support 16 digit card numbers [therufs] #3682
|
62
|
+
* Cybersource: Update supported countries [britth] #3683
|
63
|
+
* Cybersource: pass reconciliation_id [therufs] #3688
|
64
|
+
* RuboCop: Fix Style/SpecialGlobalVars [leila-alderman] #3669
|
65
|
+
* RuboCop: Fix Style/StringLiteralsInInterpolation [leila-alderman] #3670
|
66
|
+
* RuboCop: Fix Layout/HeredocIndentation [leila-alderman] #3685
|
67
|
+
* RuboCop: Fix Gemspec/OrderedDependencies [leila-alderman] #3679
|
68
|
+
* RuboCop: Fix Style/TrailingUnderscoreVariable [leila-alderman] #3663
|
69
|
+
* RuboCop: Fix Style/WordArray [leila-alderman] #3664
|
70
|
+
* RuboCop: Fix Style/SymbolArray [leila-alderman] #3665
|
71
|
+
* Mercado-Pago: Notification url GSF [cdmackeyfree] #3678
|
72
|
+
* Credorax: Update logic for setting 3ds_homephonecountry [britth] #3691
|
73
|
+
|
5
74
|
== Version 1.108.0 (Jun 9, 2020)
|
6
75
|
* Cybersource: Send cavv as xid is xid is missing [pi3r] #3658
|
7
76
|
* Forte: Change default sec_code value to PPD [molbrown] #3653
|
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
|
@@ -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
|
#
|
@@ -188,7 +190,7 @@ module ActiveMerchant #:nodoc:
|
|
188
190
|
'contactless' => 'Data was read by a Contactless EMV kernel. Issuer script results are not available.',
|
189
191
|
'contactless_magstripe' => 'Contactless data was read with a non-EMV protocol.',
|
190
192
|
'contact' => 'Data was read using the EMV protocol. Issuer script results may follow.',
|
191
|
-
'contact_quickchip' => 'Data was read by the Quickchip EMV kernel. Issuer script results are not available.'
|
193
|
+
'contact_quickchip' => 'Data was read by the Quickchip EMV kernel. Issuer script results are not available.'
|
192
194
|
}
|
193
195
|
|
194
196
|
# Returns the ciphertext of the card's encrypted PIN.
|
@@ -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
|
@@ -326,7 +329,7 @@ module ActiveMerchant #:nodoc:
|
|
326
329
|
54 => 3, # 6 * 2 - 9
|
327
330
|
55 => 5, # etc ...
|
328
331
|
56 => 7,
|
329
|
-
57 => 9
|
332
|
+
57 => 9
|
330
333
|
}.freeze
|
331
334
|
|
332
335
|
# Checks the validity of a card number by use of the Luhn Algorithm.
|
@@ -95,7 +95,7 @@ module ActiveMerchant #:nodoc:
|
|
95
95
|
pickup_card: 'pick_up_card',
|
96
96
|
config_error: 'config_error',
|
97
97
|
test_mode_live_card: 'test_mode_live_card',
|
98
|
-
unsupported_feature: 'unsupported_feature'
|
98
|
+
unsupported_feature: 'unsupported_feature'
|
99
99
|
}
|
100
100
|
|
101
101
|
cattr_reader :implementations
|
@@ -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
|
|
@@ -26,7 +26,7 @@ module ActiveMerchant #:nodoc:
|
|
26
26
|
'132' => STANDARD_ERROR_CODE[:incorrect_address],
|
27
27
|
'133' => STANDARD_ERROR_CODE[:incorrect_address],
|
28
28
|
'134' => STANDARD_ERROR_CODE[:incorrect_address],
|
29
|
-
'135' => STANDARD_ERROR_CODE[:incorrect_address]
|
29
|
+
'135' => STANDARD_ERROR_CODE[:incorrect_address]
|
30
30
|
}
|
31
31
|
|
32
32
|
def initialize(options={})
|
@@ -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)
|
@@ -232,7 +243,7 @@ module ActiveMerchant #:nodoc:
|
|
232
243
|
splits = []
|
233
244
|
split_data.each do |split|
|
234
245
|
amount = {
|
235
|
-
value: split['amount']['value']
|
246
|
+
value: split['amount']['value']
|
236
247
|
}
|
237
248
|
amount[:currency] = split['amount']['currency'] if split['amount']['currency']
|
238
249
|
|
@@ -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'
|
@@ -54,7 +54,7 @@ module ActiveMerchant
|
|
54
54
|
'37' => STANDARD_ERROR_CODE[:invalid_expiry_date],
|
55
55
|
'378' => STANDARD_ERROR_CODE[:invalid_cvc],
|
56
56
|
'38' => STANDARD_ERROR_CODE[:expired_card],
|
57
|
-
'384' => STANDARD_ERROR_CODE[:config_error]
|
57
|
+
'384' => STANDARD_ERROR_CODE[:config_error]
|
58
58
|
}
|
59
59
|
|
60
60
|
MARKET_TYPE = {
|
@@ -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
|
@@ -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'
|
@@ -771,7 +771,7 @@ module ActiveMerchant
|
|
771
771
|
end
|
772
772
|
|
773
773
|
def parse(action, raw_response, options = {})
|
774
|
-
if
|
774
|
+
if cim_action?(action) || action == :verify_credentials
|
775
775
|
parse_cim(raw_response, options)
|
776
776
|
else
|
777
777
|
parse_normal(action, raw_response)
|
@@ -802,7 +802,7 @@ module ActiveMerchant
|
|
802
802
|
end
|
803
803
|
end
|
804
804
|
|
805
|
-
def
|
805
|
+
def cim_action?(action)
|
806
806
|
action.to_s.start_with?('cim')
|
807
807
|
end
|
808
808
|
|
@@ -824,7 +824,7 @@ module ActiveMerchant
|
|
824
824
|
'deleteCustomerProfileRequest'
|
825
825
|
elsif action == :verify_credentials
|
826
826
|
'authenticateTestRequest'
|
827
|
-
elsif
|
827
|
+
elsif cim_action?(action)
|
828
828
|
'createCustomerProfileTransactionRequest'
|
829
829
|
else
|
830
830
|
'createTransactionRequest'
|
@@ -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
|
|
@@ -1006,7 +1006,7 @@ module ActiveMerchant
|
|
1006
1006
|
|
1007
1007
|
def auth_was_for_cim?(authorization)
|
1008
1008
|
_, _, action = split_authorization(authorization)
|
1009
|
-
action &&
|
1009
|
+
action && cim_action?(action)
|
1010
1010
|
end
|
1011
1011
|
|
1012
1012
|
def parse_direct_response_elements(response, options)
|
@@ -1059,7 +1059,7 @@ module ActiveMerchant
|
|
1059
1059
|
card_type: parts[51] || '',
|
1060
1060
|
split_tender_id: parts[52] || '',
|
1061
1061
|
requested_amount: parts[53] || '',
|
1062
|
-
balance_on_card: parts[54] || ''
|
1062
|
+
balance_on_card: parts[54] || ''
|
1063
1063
|
}
|
1064
1064
|
end
|
1065
1065
|
end
|