activemerchant 1.114.0 → 1.120.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.
Files changed (206) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +183 -0
  3. data/README.md +4 -2
  4. data/lib/active_merchant.rb +1 -1
  5. data/lib/active_merchant/billing/avs_result.rb +1 -1
  6. data/lib/active_merchant/billing/check.rb +10 -0
  7. data/lib/active_merchant/billing/compatibility.rb +3 -3
  8. data/lib/active_merchant/billing/credit_card.rb +3 -0
  9. data/lib/active_merchant/billing/credit_card_methods.rb +80 -15
  10. data/lib/active_merchant/billing/gateways/adyen.rb +44 -20
  11. data/lib/active_merchant/billing/gateways/allied_wallet.rb +7 -7
  12. data/lib/active_merchant/billing/gateways/authorize_net.rb +50 -12
  13. data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +3 -4
  14. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +5 -1
  15. data/lib/active_merchant/billing/gateways/axcessms.rb +8 -9
  16. data/lib/active_merchant/billing/gateways/balanced.rb +4 -3
  17. data/lib/active_merchant/billing/gateways/bambora_apac.rb +7 -7
  18. data/lib/active_merchant/billing/gateways/bank_frick.rb +7 -7
  19. data/lib/active_merchant/billing/gateways/banwire.rb +1 -1
  20. data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +6 -4
  21. data/lib/active_merchant/billing/gateways/beanstream.rb +3 -3
  22. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +4 -5
  23. data/lib/active_merchant/billing/gateways/blue_pay.rb +2 -3
  24. data/lib/active_merchant/billing/gateways/blue_snap.rb +22 -18
  25. data/lib/active_merchant/billing/gateways/bogus.rb +19 -19
  26. data/lib/active_merchant/billing/gateways/borgun.rb +11 -11
  27. data/lib/active_merchant/billing/gateways/bpoint.rb +8 -8
  28. data/lib/active_merchant/billing/gateways/braintree.rb +1 -1
  29. data/lib/active_merchant/billing/gateways/braintree_blue.rb +60 -17
  30. data/lib/active_merchant/billing/gateways/bridge_pay.rb +7 -7
  31. data/lib/active_merchant/billing/gateways/cams.rb +8 -8
  32. data/lib/active_merchant/billing/gateways/card_connect.rb +1 -1
  33. data/lib/active_merchant/billing/gateways/card_save.rb +1 -1
  34. data/lib/active_merchant/billing/gateways/card_stream.rb +2 -2
  35. data/lib/active_merchant/billing/gateways/cardknox.rb +7 -7
  36. data/lib/active_merchant/billing/gateways/cardprocess.rb +1 -1
  37. data/lib/active_merchant/billing/gateways/cashnet.rb +7 -2
  38. data/lib/active_merchant/billing/gateways/cecabank.rb +5 -5
  39. data/lib/active_merchant/billing/gateways/cenpos.rb +10 -10
  40. data/lib/active_merchant/billing/gateways/checkout.rb +2 -2
  41. data/lib/active_merchant/billing/gateways/checkout_v2.rb +38 -20
  42. data/lib/active_merchant/billing/gateways/clearhaus.rb +7 -7
  43. data/lib/active_merchant/billing/gateways/commercegate.rb +1 -1
  44. data/lib/active_merchant/billing/gateways/conekta.rb +2 -2
  45. data/lib/active_merchant/billing/gateways/creditcall.rb +10 -10
  46. data/lib/active_merchant/billing/gateways/credorax.rb +39 -23
  47. data/lib/active_merchant/billing/gateways/ct_payment.rb +10 -10
  48. data/lib/active_merchant/billing/gateways/culqi.rb +9 -9
  49. data/lib/active_merchant/billing/gateways/cyber_source.rb +81 -39
  50. data/lib/active_merchant/billing/gateways/d_local.rb +12 -12
  51. data/lib/active_merchant/billing/gateways/data_cash.rb +2 -3
  52. data/lib/active_merchant/billing/gateways/decidir.rb +31 -10
  53. data/lib/active_merchant/billing/gateways/dibs.rb +8 -8
  54. data/lib/active_merchant/billing/gateways/digitzs.rb +5 -5
  55. data/lib/active_merchant/billing/gateways/ebanx.rb +9 -9
  56. data/lib/active_merchant/billing/gateways/efsnet.rb +2 -3
  57. data/lib/active_merchant/billing/gateways/elavon.rb +296 -225
  58. data/lib/active_merchant/billing/gateways/element.rb +8 -8
  59. data/lib/active_merchant/billing/gateways/evo_ca.rb +5 -6
  60. data/lib/active_merchant/billing/gateways/eway.rb +3 -4
  61. data/lib/active_merchant/billing/gateways/eway_managed.rb +6 -7
  62. data/lib/active_merchant/billing/gateways/eway_rapid.rb +19 -6
  63. data/lib/active_merchant/billing/gateways/exact.rb +8 -9
  64. data/lib/active_merchant/billing/gateways/ezic.rb +7 -7
  65. data/lib/active_merchant/billing/gateways/fat_zebra.rb +4 -4
  66. data/lib/active_merchant/billing/gateways/federated_canada.rb +2 -3
  67. data/lib/active_merchant/billing/gateways/first_giving.rb +1 -1
  68. data/lib/active_merchant/billing/gateways/first_pay.rb +6 -6
  69. data/lib/active_merchant/billing/gateways/firstdata_e4.rb +7 -7
  70. data/lib/active_merchant/billing/gateways/firstdata_e4_v27.rb +21 -10
  71. data/lib/active_merchant/billing/gateways/flo2cash.rb +8 -8
  72. data/lib/active_merchant/billing/gateways/flo2cash_simple.rb +1 -1
  73. data/lib/active_merchant/billing/gateways/forte.rb +26 -8
  74. data/lib/active_merchant/billing/gateways/global_collect.rb +35 -16
  75. data/lib/active_merchant/billing/gateways/global_transport.rb +7 -7
  76. data/lib/active_merchant/billing/gateways/hdfc.rb +9 -9
  77. data/lib/active_merchant/billing/gateways/hps.rb +72 -9
  78. data/lib/active_merchant/billing/gateways/iats_payments.rb +9 -4
  79. data/lib/active_merchant/billing/gateways/in_context_paypal_express.rb +1 -1
  80. data/lib/active_merchant/billing/gateways/inspire.rb +3 -4
  81. data/lib/active_merchant/billing/gateways/instapay.rb +1 -2
  82. data/lib/active_merchant/billing/gateways/ipp.rb +5 -5
  83. data/lib/active_merchant/billing/gateways/iridium.rb +14 -15
  84. data/lib/active_merchant/billing/gateways/iveri.rb +7 -7
  85. data/lib/active_merchant/billing/gateways/ixopay.rb +7 -7
  86. data/lib/active_merchant/billing/gateways/jetpay.rb +1 -2
  87. data/lib/active_merchant/billing/gateways/jetpay_v2.rb +4 -5
  88. data/lib/active_merchant/billing/gateways/kushki.rb +6 -6
  89. data/lib/active_merchant/billing/gateways/latitude19.rb +14 -14
  90. data/lib/active_merchant/billing/gateways/linkpoint.rb +4 -5
  91. data/lib/active_merchant/billing/gateways/litle.rb +32 -16
  92. data/lib/active_merchant/billing/gateways/mastercard.rb +10 -10
  93. data/lib/active_merchant/billing/gateways/mercado_pago.rb +9 -9
  94. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +1 -2
  95. data/lib/active_merchant/billing/gateways/merchant_one.rb +1 -1
  96. data/lib/active_merchant/billing/gateways/merchant_partners.rb +10 -10
  97. data/lib/active_merchant/billing/gateways/merchant_ware.rb +5 -7
  98. data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +4 -6
  99. data/lib/active_merchant/billing/gateways/mercury.rb +4 -4
  100. data/lib/active_merchant/billing/gateways/metrics_global.rb +4 -5
  101. data/lib/active_merchant/billing/gateways/micropayment.rb +8 -8
  102. data/lib/active_merchant/billing/gateways/migs.rb +3 -4
  103. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +2 -4
  104. data/lib/active_merchant/billing/gateways/monei.rb +7 -7
  105. data/lib/active_merchant/billing/gateways/moneris.rb +4 -3
  106. data/lib/active_merchant/billing/gateways/money_movers.rb +2 -3
  107. data/lib/active_merchant/billing/gateways/mundipagg.rb +37 -10
  108. data/lib/active_merchant/billing/gateways/nab_transact.rb +2 -4
  109. data/lib/active_merchant/billing/gateways/ncr_secure_pay.rb +7 -7
  110. data/lib/active_merchant/billing/gateways/net_registry.rb +1 -2
  111. data/lib/active_merchant/billing/gateways/netaxept.rb +6 -6
  112. data/lib/active_merchant/billing/gateways/netbanx.rb +45 -10
  113. data/lib/active_merchant/billing/gateways/netbilling.rb +4 -5
  114. data/lib/active_merchant/billing/gateways/network_merchants.rb +2 -3
  115. data/lib/active_merchant/billing/gateways/nmi.rb +21 -7
  116. data/lib/active_merchant/billing/gateways/ogone.rb +3 -3
  117. data/lib/active_merchant/billing/gateways/omise.rb +13 -13
  118. data/lib/active_merchant/billing/gateways/openpay.rb +3 -4
  119. data/lib/active_merchant/billing/gateways/opp.rb +9 -9
  120. data/lib/active_merchant/billing/gateways/optimal_payment.rb +2 -3
  121. data/lib/active_merchant/billing/gateways/orbital.rb +225 -105
  122. data/lib/active_merchant/billing/gateways/pac_net_raven.rb +3 -4
  123. data/lib/active_merchant/billing/gateways/pagarme.rb +8 -8
  124. data/lib/active_merchant/billing/gateways/pago_facil.rb +2 -2
  125. data/lib/active_merchant/billing/gateways/pay_conex.rb +8 -8
  126. data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +6 -7
  127. data/lib/active_merchant/billing/gateways/pay_hub.rb +7 -8
  128. data/lib/active_merchant/billing/gateways/pay_junction.rb +2 -3
  129. data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +9 -9
  130. data/lib/active_merchant/billing/gateways/pay_secure.rb +2 -3
  131. data/lib/active_merchant/billing/gateways/paybox_direct.rb +23 -1
  132. data/lib/active_merchant/billing/gateways/payeezy.rb +62 -20
  133. data/lib/active_merchant/billing/gateways/payex.rb +6 -7
  134. data/lib/active_merchant/billing/gateways/payflow.rb +1 -1
  135. data/lib/active_merchant/billing/gateways/payment_express.rb +11 -7
  136. data/lib/active_merchant/billing/gateways/paymentez.rb +26 -6
  137. data/lib/active_merchant/billing/gateways/paymill.rb +7 -7
  138. data/lib/active_merchant/billing/gateways/paypal.rb +10 -2
  139. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +1 -0
  140. data/lib/active_merchant/billing/gateways/paypal_express.rb +1 -1
  141. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +1 -1
  142. data/lib/active_merchant/billing/gateways/payscout.rb +1 -2
  143. data/lib/active_merchant/billing/gateways/paystation.rb +3 -4
  144. data/lib/active_merchant/billing/gateways/payu_in.rb +3 -3
  145. data/lib/active_merchant/billing/gateways/payu_latam.rb +17 -10
  146. data/lib/active_merchant/billing/gateways/payway.rb +8 -9
  147. data/lib/active_merchant/billing/gateways/payway_dot_com.rb +253 -0
  148. data/lib/active_merchant/billing/gateways/pin.rb +11 -0
  149. data/lib/active_merchant/billing/gateways/plugnpay.rb +1 -2
  150. data/lib/active_merchant/billing/gateways/pro_pay.rb +8 -8
  151. data/lib/active_merchant/billing/gateways/psigate.rb +2 -3
  152. data/lib/active_merchant/billing/gateways/psl_card.rb +1 -2
  153. data/lib/active_merchant/billing/gateways/qbms.rb +1 -2
  154. data/lib/active_merchant/billing/gateways/quantum.rb +1 -2
  155. data/lib/active_merchant/billing/gateways/quickbooks.rb +1 -1
  156. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +3 -4
  157. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v4to7.rb +1 -2
  158. data/lib/active_merchant/billing/gateways/qvalent.rb +31 -17
  159. data/lib/active_merchant/billing/gateways/realex.rb +1 -1
  160. data/lib/active_merchant/billing/gateways/redsys.rb +105 -9
  161. data/lib/active_merchant/billing/gateways/s5.rb +7 -7
  162. data/lib/active_merchant/billing/gateways/safe_charge.rb +51 -18
  163. data/lib/active_merchant/billing/gateways/sage.rb +3 -5
  164. data/lib/active_merchant/billing/gateways/sage_pay.rb +2 -3
  165. data/lib/active_merchant/billing/gateways/sallie_mae.rb +1 -2
  166. data/lib/active_merchant/billing/gateways/secure_net.rb +1 -2
  167. data/lib/active_merchant/billing/gateways/secure_pay.rb +3 -4
  168. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +2 -4
  169. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +1 -2
  170. data/lib/active_merchant/billing/gateways/securion_pay.rb +5 -6
  171. data/lib/active_merchant/billing/gateways/skip_jack.rb +2 -3
  172. data/lib/active_merchant/billing/gateways/smart_ps.rb +5 -6
  173. data/lib/active_merchant/billing/gateways/so_easy_pay.rb +7 -7
  174. data/lib/active_merchant/billing/gateways/spreedly_core.rb +6 -6
  175. data/lib/active_merchant/billing/gateways/stripe.rb +18 -18
  176. data/lib/active_merchant/billing/gateways/stripe_payment_intents.rb +91 -25
  177. data/lib/active_merchant/billing/gateways/swipe_checkout.rb +3 -4
  178. data/lib/active_merchant/billing/gateways/telr.rb +8 -8
  179. data/lib/active_merchant/billing/gateways/trans_first.rb +2 -2
  180. data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +12 -12
  181. data/lib/active_merchant/billing/gateways/transact_pro.rb +9 -9
  182. data/lib/active_merchant/billing/gateways/trust_commerce.rb +1 -2
  183. data/lib/active_merchant/billing/gateways/usa_epay.rb +1 -1
  184. data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +32 -32
  185. data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +3 -4
  186. data/lib/active_merchant/billing/gateways/vanco.rb +3 -3
  187. data/lib/active_merchant/billing/gateways/verifi.rb +1 -2
  188. data/lib/active_merchant/billing/gateways/viaklix.rb +1 -2
  189. data/lib/active_merchant/billing/gateways/visanet_peru.rb +10 -10
  190. data/lib/active_merchant/billing/gateways/vpos.rb +172 -0
  191. data/lib/active_merchant/billing/gateways/webpay.rb +2 -2
  192. data/lib/active_merchant/billing/gateways/wepay.rb +3 -2
  193. data/lib/active_merchant/billing/gateways/wirecard.rb +1 -2
  194. data/lib/active_merchant/billing/gateways/worldpay.rb +43 -22
  195. data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +14 -16
  196. data/lib/active_merchant/billing/gateways/worldpay_us.rb +7 -7
  197. data/lib/active_merchant/billing/response.rb +3 -2
  198. data/lib/active_merchant/country.rb +1 -1
  199. data/lib/active_merchant/network_connection_retries.rb +2 -2
  200. data/lib/active_merchant/post_data.rb +1 -1
  201. data/lib/active_merchant/posts_data.rb +1 -1
  202. data/lib/active_merchant/version.rb +1 -1
  203. data/lib/certs/cacert.pem +1582 -2431
  204. data/lib/support/ssl_verify.rb +2 -2
  205. data/lib/support/ssl_version.rb +2 -2
  206. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d467cbeefbc698298d8e87dc6f9655cb8105cd6b949753082696802cd667d15
4
- data.tar.gz: e7a09ed0f9dbead854bf3bab3940e2a335109aa4a76c2a8f2f824c27a2236833
3
+ metadata.gz: 649ffe0485eeee7fba63fb57ee6f2ccee8ae113d8ad7ec42fb26d7895f5e8c03
4
+ data.tar.gz: 24dcf747601a2be45ca1938919e0626428be6ea19a22834666166772c8773035
5
5
  SHA512:
6
- metadata.gz: 45db32004cb0fb161a6ae422b64b3401d9c6b3bf780549ba17cc50b2f94e79f94baa76353fdc5cfbad771423613ab5a3030b164e69f1de8ae44c612cd6982bf2
7
- data.tar.gz: 2ea821b491e9c6cd21442c7563fcac422d42190a8a222583d15783fc1e1a87f77894a6d4eac7a41a5bb1c63d69c59cc17f2d6aaf1540d0d01e5ae4ee168e2b5f
6
+ metadata.gz: 72e799731ef457d0f5c9d9995591c692e268265562465ba91023e87dad7fde4b25db3754920a51e24180d052d59ce7ecc33a7b2f2fc80b1e127984c5550122f9
7
+ data.tar.gz: 6dcc6c4f22b351497233ebd2ef9fc6354113921c75a4279909050e73e509570d6d97b698c9aa98199b7996019a53fb4dbb2daaa8ba1f85732d0af748033022ff
data/CHANGELOG CHANGED
@@ -2,6 +2,189 @@
2
2
 
3
3
  == HEAD
4
4
 
5
+
6
+ == Version 1.120.0 (May 28th, 2021)
7
+ * Braintree: Bump required braintree gem version to 3.0.1
8
+ * Stripe PI: ensure `setup_future_sage` and `off_session` work when using SetupIntents.
9
+ * Orbital: Update commit to accept retry_logic in params [jessiagee] #3890
10
+ * Orbital: Update remote 3DS tests [jessiagee] #3892
11
+ * Mercado Pago: support Creditel card type [therufs] #3893
12
+ * Payeezy: Update error mapping [meagabeth] #3896
13
+ * HPS: Add support for stored_credential [cdmackeyfree] #3894
14
+ * Orbital: Ensure payment_detail sends for ECP [jessiagee] #3899
15
+ * Payeezy: Update `error_code_from` method [meagabeth] #3900
16
+ * Worldpay: Add support for `statementNarrative` field [meagabeth] #3901
17
+ * Mercado Pago: Give ability to pass capture option in authorize txn field [naashton] #3897
18
+ * Orbital: Ensure correct fields sent in refund [jessiagee] #3903
19
+ * WorldPay: remove some defaults in billing address [carrigan] #3902
20
+ * Adyen: Support for General Credit [naashton] #3904
21
+ * Worldpay: reintroduce address1 and city defaults [carrigan] #3905
22
+ * Stripe: ensure potentially nested data is scrubbed #3907
23
+ * Stripe PI: Send Validate on Payment Method Attach [tatsianaclifton] #3909
24
+ * Adyen: Update handling of authorization returned from gateway [meagabeth] #3910
25
+ * Update gateway templates for Rubocop compliance [therufs] #3912 #3895
26
+ * Orbital: Send AVSname for all eCheck transactions [jessiagee] #3911
27
+ * Litle: update support of customerId field [cdmackeyfree] #3913
28
+ * Payment Express: fix signature for `verify` [therufs] #3914
29
+ * Forte: Send xdata fields [dsmcclain] #3915
30
+ * PaywayDotCom: Add New Gateway [DanAtPayway] #3898
31
+ * Orbital: Remove unnecessary requirements [jessiagee] #3917
32
+ * SafeCharge (Nuvei): Add network tokenization support [DStoyanoff] #3847
33
+ * Stripe PI: Enhance testing of SetupIntents API #3908
34
+ * SafeCharge (Nuvei): Fix NT related bug [jimilpatel24] #3921
35
+ * Worldpay: Only override cardholdername for 3ds tests [curiousepic] #3918
36
+ * Orbital: Add support for general credit [meagabeth] #3922
37
+ * Banco Sabadell: Ensure sca_exemption field is used #3923
38
+ * Redsys: Refactor XML character escape logic #3925
39
+ * HPS: Strip zip codes of non-alphanumeric characters [dsmcclain] #3926
40
+ * Orbital: $0 PreNote using authorize for eCheck force_capture [jessiagee] #3927
41
+ * Worldpay: synchronous response changes [naashton] #3928
42
+ * PaywayDotCom: Add more thorough scrubbing [tatsianaclifton] #3929
43
+ * Remove CONTRIBUTING.md and update README.md to reflect new repository wiki [dsmcclain] #3930
44
+ * Qvalent: Add customer_reference_number [fredo-] #3931
45
+ * Orbital: Add 'ND' ECPActionCode to $0 Prenote Check [jessiagee] #3935
46
+ * Checkout: Add support for stored_credential [meagabeth] #3934
47
+ * Credorax: Add support for 3ds_reqchallengeind [dsmcclain] #3936
48
+ * Adyen: cancelOrRefund endpoint when passed as option [naashton] #3937
49
+ * Qvalent: Add customer reference number FIX [fredo-] #3939
50
+ * Orbital: Pass line_items in capture [jessiagee] #3941
51
+ * BraintreeBlue: Add support for $0 auth verification [meagabeth] #3944
52
+ * JCB: Add additional BIN ranges [dsmcclain] #3946
53
+ * vPOS: Support new gateway type [therufs] #3906
54
+ * Braintree: Add support for AVS and CVV results in $0 credit card verification transactions [meagabeth] #3951
55
+ * Braintree: Return cvv_code and avs_code in response [meagabeth] #3952
56
+ * vPOS: Stringify values [therufs] #3954
57
+ * Payeezy: Send level2 fields [dsmcclain] #3953
58
+ * Credorax: adjust logic for sending 3ds shipping address fields [dsmcclain] #3959
59
+ * Orbital: Ensure ECP always sends AVSName [jessiagee] #3963
60
+ * Orbital: Add middle name to EWSMiddleName for ECP [jessiagee] #3962
61
+ * Support Canadian Bank Accounts [naashton] #3964
62
+ * Windcave/Payment Express: Add support for AvsAction and EnableAVSData fields [meagabeth] #3967
63
+ * CyberSource: Update XML tag for merchantDefinedData [meagabeth] #3969
64
+ * Elavon: Send ssl_vendor_id field [dsmcclain] #3972
65
+ * Credorax: Add support for `echo` field [meagabeth] #3973
66
+ * Worldpay: support cancelOrRefund via options [therufs] #3975
67
+ * Payeezy: support general credit [cdmackeyfree] #3977
68
+ * Ripley and Hipercard: Add BIN ranges [naashton] #3978
69
+ * Adyen: Default card holder name for credit cards [shasum] #3980
70
+ * PaywayDotCom: make `source_id` a required field [dsmcclain] # 3981
71
+ * Qvalent: remove `pem_password` from required credentials [dsmcclain] #3982
72
+ * Authorize.net: Fix stored credentials [tatsianaclifton] #3971
73
+ * CyberSource: Add support for multiple new fields [dsmcclain] #3984
74
+ * CASHNet: Update gateway adapter [dsmcclain] #3986
75
+ * Elavon: Send `ssl_vendor_id` field via options on gateway initialization [dsmcclain] #3989
76
+
77
+ == Version 1.119.0 (February 9th, 2021)
78
+ * Payment Express: support verify/validate [therufs] #3874
79
+ * GlobalCollect: Truncate address fields [meagabeth] #3878
80
+ * Litle: Truncate address fields [meagabeth] #3877
81
+ * Netbanx: Add-customer-information(name,email,IP)-to-a-transaction [rockyhakjoong] #3754
82
+ * Netbanx: Adjust the avs and cvv return code in shopify [rockyhakjoong] #3833
83
+ * Decidir: Improve error mapping [meagabeth] #3875
84
+ * Worldpay: support `skip_capture` [therufs] #3879
85
+ * Redsys: Add new response code text [britth] #3880
86
+ * Orbital: Update ECP details to use payment source [jessiagee] #3881
87
+ * Alelo: Add additional BIN ranges [meagabeth] #3882
88
+ * HPS: Update Add support for general credit [naashton] #3885
89
+ * Elavon: Fix issue with encoding data sent in the request [naashton] #3865
90
+ * Orbital: Update ECP to use EWS verification [jessiagee] #3886
91
+ * Eway: Add 3ds field when do direct payment [GavinSun9527] #3860
92
+ * Support Creditel cardtype [therufs] #3883
93
+ * Elavon: Remove ampersand char from fields [naashton] #3891
94
+
95
+ == Version 1.118.0 (January 22nd, 2021)
96
+ * Worldpay: Add support for challengeWindowSize [carrigan] #3823
97
+ * Adyen: Update capitalization on subMerchantId field [cdmackeyfree] #3824
98
+ * Maestro and Elo: Update BIN ranges [meagabeth] #3822
99
+ * HPS: Truncate invoice numbers that are too long [curiousepic] #3825
100
+ * Pass network_transaction_id attribute in Response [therufs] #3815
101
+ * Elavon: support standardized stored credentials [therufs] #3816
102
+ * Decidir: update fraud_detection field [cdmackeyfree] #3829
103
+ * Paymentez: Add Olimpica cardtype [meagabeth] #3831
104
+ * SafeCharge: 3DS external MPI data refinements [curiousepic] #3821
105
+ * Credorax: Add support for 3DS Adviser [meagabeth] #3834
106
+ * Adyen: Support subMerchant data [mymir][therufs] #3835
107
+ * Decidir: add device_unique_identifier to card data [cdmackeyfree] #3839
108
+ * BraintreeBlue: add support for account_type field [jimilpatel24] #3840
109
+ * Redsys: Add support for stored_credential [meagabeth] #3844
110
+ * Redsys: add_payment method solution [meagabeth] #3845
111
+ * Stripe Payment Intents: Add support for error_on_requires_action option [tatsianaclifton] #3846
112
+ * Add 3DS 2.0 values to paypal [nebdil] #3285
113
+ * Redsys: Update Mpi Fields [tatsianaclifton] #3855
114
+ * Paypal: Update AuthStatus3ds MPI field [curiousepic] #3857
115
+ * Orbital: Update 3DS support for Mastercard [meagabeth] #3850
116
+ * Payeezy: Support standardized stored credentials [therufs] #3861
117
+ * CyberSource: Update `billing_address` override [meagabeth] #3862
118
+ * Paymentez: Add 3DS MPI field support [carrigan] #3856
119
+ * BlueSnap: Add support `fraud-session-id` field [meagabeth] #3863
120
+ * BlueSnap: Update handling of `transaction-fraud-info` fields [meagabeth] #3866
121
+ * Payeezy: Allow no stored credential transaction id [therufs] #3868
122
+ * Orbital: eCheck processing added [ajawadmirza] #3870
123
+ * FirsdataE4V27: Fixes some apple pay transaction issues [pi3r] #3872
124
+
125
+ == Version 1.117.0 (November 13th)
126
+ * Checkout V2: Pass attempt_n3d along with 3ds enabled [naashton] #3805
127
+ * GlobalCollect: Add support for Third-party 3DS2 data [molbrown] #3801
128
+ * Authorize.net: Pass stored credentials [therufs] #3804
129
+ * Authorize.net: Don't pass isFirstRecurringPayment [therufs] #3805
130
+ * Litle: Add support for general credit transactions [naashton] #3807
131
+ * Redsys: Add 3DS2 Integration Support [esmitperez] #3794
132
+ * Cybersource: Use firstname/lastname from address instead of the payment method [pi3r] #3798
133
+ * Add MPI functionality for SafeCharge gateway [daniel] #3809
134
+ * SafeCharge: Standardize MPI fields [curiousepic] #3809
135
+ * Credorax: Adds AMEX to supported cards and adds 1A error code [LinTrieu] #3792
136
+ * Stripe PI: Pass external 3DS auth data [curiousepic] #3811
137
+ * Credorax: Allow 3DS1 normalized pass-through, ease version matching [britth] #3812
138
+ * Redsys: Redsys: Harden 3DS v1/v2 check for External MPI [esmitperez] #3814
139
+ * Add card types for Stripe, Worldpay, Checkout.com [LinTrieu] #3810
140
+ * ActiveMerchant::Billing::Response: Include `network_transaction_id` attribute [therufs] #3815
141
+
142
+ == Version 1.116.0 (October 28th)
143
+ * Remove Braintree specific version dependency [pi3r] #3800
144
+
145
+ == Version 1.115.0 (October 27th)
146
+ * Checkout v2: $0 Auth on gateway [jessiagee] #3762
147
+ * Adyen: Safely add execute_threeds: false [curiousepic] #3756
148
+ * RuboCop: Fix Layout/SpaceAroundEqualsInParameterDefault [leila-alderman] #3720
149
+ * iATS: Allow email to be passed outside of the billing_address context [naashton] #3750
150
+ * Orbital: Don't pass xid for transactions using network tokens [britth] #3757
151
+ * Forte: Add service_fee_amount field [meagabeth] #3751
152
+ * WorldPay: Add support for idempotency_key[cdmackeyfree] #3759
153
+ * Orbital: Handle line_tot key as a string [naashton] #3760
154
+ * RuboCop: Fix Lint/UnusedMethodArgument [leila-alderman] #3721
155
+ * RuboCop: Fix Naming/MemoizedInstanceVariableName [leila-alderman] #3722
156
+ * RuboCop: Fix Style/BlockComments [leila-alderman] #3729
157
+ * Checkout V2: Move to single-transaction Purchases [curiousepic] #3761
158
+ * RuboCop: Fix Naming/ConstantName [leila-alderman] #3723
159
+ * Orbital: Fix schema errors [britth] #3766
160
+ * Checkout V2: Start testing via amount code [curiousepic] #3767
161
+ * CyberSource: Don't include empty `mdd_` fields [arbianchi] #3758
162
+ * RuboCop: Fix Naming/VariableNumber [leila-alderman] #3725
163
+ * Update BIN ranges for Elo cardtype [cdmackeyfree] #3769
164
+ * Orbital: Resolve CardIndicators issue [meagabeth] #3771
165
+ * Adyen: Add subMerchant fields [naashton] #3772
166
+ * PayPal Express: reduce param requirements [shasum] #3773
167
+ * PayU Latam: Support partial refunds [leila-alderman] #3774
168
+ * RuboCop: Fix Style/Alias [leila-alderman] #3727
169
+ * Stripe PI: Allow `on_behalf_of` to be passed alone #3776
170
+ * RuboCop: Fix Performance/RedundantMatch [leila-alderman] #3765
171
+ * RuboCop: Fix Layout/MultilineMethodCallBraceLayout [leila-alderman] #3763
172
+ * NMI: Add standardized 3DS fields [meagabeth] #3775
173
+ * Mundipagg: Add support for SubMerchant fields [meagabeth] #3779
174
+ * Stripe Payment Intents: Add request_three_d_secure option [molbrown] #3787
175
+ * Decidir: Add support for csmdds fields [naashton] #3786
176
+ * RuboCop: Fix Performance/StringReplacement [leila-alderman] #3782
177
+ * RuboCop: Fix Naming/HeredocDelimiterCase & Naming [leila-alderman] #3781
178
+ * BlueSnap: Add address fields to contact info [naashton] #3777
179
+ * RuboCop: Fix Layout/SpaceInsideHashLiteralBraces [leila-alderman] #3780
180
+ * RuboCop: Fix Style/AndOr [leila-alderman] #3783
181
+ * Checkout V2: Support ability to pass attempt_n3d 3ds field [naashton] #3788
182
+ * Elavon: Upgrade to `processxml.do` [therufs] #3784
183
+ * Checkout V2: Support for attempt_n3d 3DS field [naashton] #3790
184
+ * Elavon: Strip ampersands [therufs] #3795
185
+ * Paybox: Add support for 3DS 1.0 values [jcpaybox] #3335
186
+ * Decidir: Add additional fraud_detection options [cdmackeyfree] #3812
187
+
5
188
  == Version 1.114.0
6
189
  * BlueSnap: Add address1,address2,phone,shipping_* support #3749
7
190
  * BlueSnap: Protect against `nil` metadata [carrigan] #3752
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Active Merchant
2
- [![Build Status](https://travis-ci.org/activemerchant/active_merchant.svg?branch=master)](https://travis-ci.org/activemerchant/active_merchant)
2
+ [![Build Status](https://github.com/activemerchant/active_merchant/workflows/CI/badge.svg?branch=master)](https://github.com/activemerchant/active_merchant/actions?query=workflow%3ACI)
3
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).
@@ -17,7 +17,7 @@ from an ever-growing set of contributors.
17
17
  See [GettingStarted.md](GettingStarted.md) if you want to learn more about using Active Merchant in your
18
18
  applications.
19
19
 
20
- If you'd like to contribute to Active Merchant, please start with our [contribution guide](CONTRIBUTING.md).
20
+ If you'd like to contribute to Active Merchant, please start with our [Contribution Guide](https://github.com/activemerchant/active_merchant/wiki/Contributing).
21
21
 
22
22
  ## Installation
23
23
 
@@ -81,6 +81,8 @@ if credit_card.validate.empty?
81
81
  end
82
82
  ```
83
83
 
84
+ ## Contributing
85
+
84
86
  For more in-depth documentation and tutorials, see [GettingStarted.md](GettingStarted.md) and the
85
87
  [API documentation](http://www.rubydoc.info/github/activemerchant/active_merchant/).
86
88
 
@@ -50,7 +50,7 @@ require 'active_merchant/version'
50
50
  require 'active_merchant/country'
51
51
 
52
52
  module ActiveMerchant
53
- def self.deprecated(message, caller=Kernel.caller[1])
53
+ def self.deprecated(message, caller = Kernel.caller[1])
54
54
  warning = caller + ': ' + message
55
55
  if respond_to?(:logger) && logger.present?
56
56
  logger.warn(warning)
@@ -88,7 +88,7 @@ module ActiveMerchant
88
88
  { 'code' => code,
89
89
  'message' => message,
90
90
  'street_match' => street_match,
91
- 'postal_match' => postal_match}
91
+ 'postal_match' => postal_match }
92
92
  end
93
93
  end
94
94
  end
@@ -13,6 +13,14 @@ module ActiveMerchant #:nodoc:
13
13
  # Used for Canadian bank accounts
14
14
  attr_accessor :institution_number, :transit_number
15
15
 
16
+ # Canadian Institution Numbers
17
+ # Found here: https://en.wikipedia.org/wiki/Routing_number_(Canada)
18
+ INSTITUTION_NUMBERS = %w(
19
+ 001 002 003 004 006 010 016 030 039 117 127 177 219 245 260 269 270 308
20
+ 309 310 315 320 338 340 509 540 608 614 623 809 815 819 828 829 837 839
21
+ 865 879 889 899
22
+ )
23
+
16
24
  def name
17
25
  @name ||= "#{first_name} #{last_name}".strip
18
26
  end
@@ -67,6 +75,8 @@ module ActiveMerchant #:nodoc:
67
75
  else
68
76
  false
69
77
  end
78
+ when 8
79
+ true if INSTITUTION_NUMBERS.include?(routing_number[0..2].to_s)
70
80
  else
71
81
  false
72
82
  end
@@ -28,7 +28,7 @@ module ActiveMerchant
28
28
  def self.humanize(lower_case_and_underscored_word)
29
29
  result = lower_case_and_underscored_word.to_s.dup
30
30
  result.gsub!(/_id$/, '')
31
- result.gsub!(/_/, ' ')
31
+ result.tr!('_', ' ')
32
32
  result.gsub(/([a-z\d]*)/i, &:downcase).gsub(/^\w/) { $&.upcase }
33
33
  end
34
34
  end
@@ -56,7 +56,7 @@ module ActiveMerchant
56
56
  private
57
57
 
58
58
  def internal_errors
59
- @errors ||= Errors.new
59
+ @internal_errors ||= Errors.new
60
60
  end
61
61
 
62
62
  class Errors < Hash
@@ -75,7 +75,7 @@ module ActiveMerchant
75
75
  end
76
76
 
77
77
  def empty?
78
- all? { |k, v| v&.empty? }
78
+ all? { |_k, v| v&.empty? }
79
79
  end
80
80
 
81
81
  def on(field)
@@ -24,6 +24,7 @@ module ActiveMerchant #:nodoc:
24
24
  # * Naranja
25
25
  # * UnionPay
26
26
  # * Alia
27
+ # * Olimpica
27
28
  #
28
29
  # For testing purposes, use the 'bogus' credit card brand. This skips the vast majority of
29
30
  # validations, allowing you to focus on your core concerns until you're ready to be more concerned
@@ -100,6 +101,8 @@ module ActiveMerchant #:nodoc:
100
101
  # * +'naranja'+
101
102
  # * +'union_pay'+
102
103
  # * +'alia'+
104
+ # * +'olimpica'+
105
+ # * +'creditel'+
103
106
  #
104
107
  # Or, if you wish to test your implementation, +'bogus'+.
105
108
  #
@@ -11,7 +11,7 @@ module ActiveMerchant #:nodoc:
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
13
  'diners_club' => ->(num) { num =~ /^3(0[0-5]|[68]\d)\d{11,16}$/ },
14
- 'jcb' => ->(num) { num =~ /^35(28|29|[3-8]\d)\d{12}$/ },
14
+ 'jcb' => ->(num) { num =~ /^(35(28|29|[3-8]\d)\d{12}|308800\d{10})$/ },
15
15
  'dankort' => ->(num) { num =~ /^5019\d{12}$/ },
16
16
  'maestro' => lambda { |num|
17
17
  (12..19).cover?(num&.size) && (
@@ -30,7 +30,9 @@ module ActiveMerchant #:nodoc:
30
30
  in_bin_range?(num.slice(0, 6), CARNET_RANGES) ||
31
31
  CARNET_BINS.any? { |bin| num.slice(0, bin.size) == bin }
32
32
  )
33
- }
33
+ },
34
+ 'olimpica' => ->(num) { num =~ /^636853\d{10}$/ },
35
+ 'creditel' => ->(num) { num =~ /^601933\d{10}$/ }
34
36
  }
35
37
 
36
38
  # http://www.barclaycard.co.uk/business/files/bin_rules.pdf
@@ -69,14 +71,66 @@ module ActiveMerchant #:nodoc:
69
71
  MASTERCARD_RANGES = [
70
72
  (222100..272099),
71
73
  (510000..559999),
74
+ [605272],
75
+ [606282],
76
+ [637095],
77
+ [637568],
78
+ (637599..637600),
79
+ [637609],
72
80
  ]
73
81
 
74
82
  MAESTRO_BINS = Set.new(
75
- %w[500033 581149]
83
+ %w[ 500057
84
+ 501018 501043 501045 501047 501049 501051 501072 501075 501087 501089 501095
85
+ 501500
86
+ 501879 502113 502301 503175
87
+ 503645 503670
88
+ 504310 504338 504363 504533 504587 504620 504639 504656 504738 504781 504910
89
+ 507001 507002 507004 507082 507090
90
+ 560014 560565 561033
91
+ 572402 572610 572626
92
+ 576904
93
+ 578614
94
+ 581149
95
+ 585274 585697
96
+ 586509
97
+ 588729 588792
98
+ 589244 589407 589471 589605 589633 589647 589671
99
+ 590043 590206 590263 590265 590278 590361 590362 590379 590393 590590
100
+ 591235 591420 591481 591620 591770 591948 591994
101
+ 592024 592161 592184 592186 592201 592384 592393 592528 592566 592704 592735 592879 592884
102
+ 593074 593264 593272 593355 593496 593556 593589 593666 593709 593825 593963 593994
103
+ 594184 594409 594468 594475 594581 594665 594691 594710 594874 594968
104
+ 595355 595364 595532 595547 595561 595568 595743 595929
105
+ 596245 596289 596399 596405 596590 596608 596645 596646 596791 596808 596815 596846
106
+ 597077 597094 597143 597370 597410 597765 597855 597862
107
+ 598053 598054 598395 598585 598793 598794 598815 598835 598838 598880 598889
108
+ 599000 599069 599089 599148 599191 599310 599741 599742 599867
109
+ 601070
110
+ 604983
111
+ 606126
112
+ 636380 636422 636502 636639
113
+ 637046 637756
114
+ 639130 639229
115
+ 690032]
76
116
  )
77
117
 
78
118
  # https://www.mastercard.us/content/dam/mccom/global/documents/mastercard-rules.pdf, page 73
79
119
  MAESTRO_RANGES = [
120
+ (500032..500033),
121
+ (501015..501016),
122
+ (501020..501021),
123
+ (501023..501029),
124
+ (501038..501041),
125
+ (501053..501058),
126
+ (501060..501063),
127
+ (501066..501067),
128
+ (501080..501083),
129
+ (501091..501092),
130
+ (501104..501105),
131
+ (501107..501108),
132
+ (501104..501105),
133
+ (501107..501108),
80
134
  (561200..561269),
81
135
  (561271..561299),
82
136
  (561320..561356),
@@ -101,14 +155,14 @@ module ActiveMerchant #:nodoc:
101
155
 
102
156
  # https://dev.elo.com.br/apis/tabela-de-bins, download csv from left sidebar
103
157
  ELO_RANGES = [
104
- 506707..506708, 506715..506715, 506718..506722, 506724..506724, 506726..506736, 506739..506739, 506741..506743,
105
- 506745..506747, 506753..506753, 506774..506776, 506778..506778, 509000..509001, 509003..509003, 509007..509007,
106
- 509020..509022, 509035..509035, 509039..509042, 509045..509045, 509048..509048, 509051..509071, 509073..509074,
107
- 509077..509080, 509084..509084, 509091..509094, 509098..509098, 509100..509100, 509104..509104, 509106..509109,
108
- 627780..627780, 636368..636368, 650031..650033, 650035..650045, 650047..650047, 650406..650410, 650434..650436,
109
- 650439..650439, 650485..650504, 650506..650530, 650577..650580, 650582..650591, 650721..650727, 650901..650922,
110
- 650928..650928, 650938..650939, 650946..650948, 650954..650955, 650962..650963, 650967..650967, 650971..650971,
111
- 651652..651667, 651675..651678, 655000..655010, 655012..655015, 655051..655052, 655056..655057
158
+ 506707..506708, 506715..506715, 506717..506722, 506724..506736, 506739..506743,
159
+ 506745..506747, 506753..506753, 506774..506778, 509000..509007, 509009..509014,
160
+ 509020..509030, 509035..509042, 509044..509089, 509091..509101, 509104..509807,
161
+ 509831..509877, 509897..509900, 509918..509964, 509971..509986, 509995..509999,
162
+ 627780..627780, 636368..636368, 650031..650033, 650035..650051, 650057..650081,
163
+ 650406..650439, 650485..650504, 650506..650538, 650552..650598, 650720..650727,
164
+ 650901..650922, 650928..650928, 650938..650939, 650946..650978, 651652..651704,
165
+ 655000..655019, 655021..655057
112
166
  ]
113
167
 
114
168
  # Alelo provides BIN ranges by e-mailing them out periodically.
@@ -120,8 +174,9 @@ module ActiveMerchant #:nodoc:
120
174
  402588..402588, 404347..404347, 405876..405876, 405882..405882, 405884..405884,
121
175
  405886..405886, 430471..430471, 438061..438061, 438064..438064, 470063..470066,
122
176
  496067..496067, 506699..506704, 506706..506706, 506713..506714, 506716..506716,
123
- 506749..506750, 506752..506752, 506754..506756, 506758..506762, 506764..506767,
124
- 506770..506771, 509015..509019, 509880..509882, 509884..509885, 509987..509992
177
+ 506749..506750, 506752..506752, 506754..506756, 506758..506767, 506770..506771,
178
+ 506773..506773, 509015..509019, 509880..509882, 509884..509885, 509887..509887,
179
+ 509987..509992
125
180
  ]
126
181
 
127
182
  CABAL_RANGES = [
@@ -149,7 +204,7 @@ module ActiveMerchant #:nodoc:
149
204
  def self.in_bin_range?(number, ranges)
150
205
  bin = number.to_i
151
206
  ranges.any? do |range|
152
- range.cover?(bin)
207
+ range.include?(bin)
153
208
  end
154
209
  end
155
210
 
@@ -298,6 +353,8 @@ module ActiveMerchant #:nodoc:
298
353
  case brand
299
354
  when 'naranja'
300
355
  valid_naranja_algo?(numbers)
356
+ when 'creditel'
357
+ valid_creditel_algo?(numbers)
301
358
  when 'alia'
302
359
  true
303
360
  else
@@ -352,7 +409,7 @@ module ActiveMerchant #:nodoc:
352
409
  sum % 10 == 0
353
410
  end
354
411
 
355
- # Checks the validity of a card number by use of Naranja's specific algorithm.
412
+ # Checks the validity of a card number by use of specific algorithms
356
413
  def valid_naranja_algo?(numbers) #:nodoc:
357
414
  num_array = numbers.to_s.chars.map(&:to_i)
358
415
  multipliers = [4, 3, 2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
@@ -361,6 +418,14 @@ module ActiveMerchant #:nodoc:
361
418
  final_num = intermediate > 9 ? 0 : intermediate
362
419
  final_num == num_array[15]
363
420
  end
421
+
422
+ def valid_creditel_algo?(numbers) #:nodoc:
423
+ num_array = numbers.to_s.chars.map(&:to_i)
424
+ multipliers = [5, 4, 3, 2, 1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 9]
425
+ num_sum = num_array[0..14].zip(multipliers).map { |a, b| a * b }.reduce(:+)
426
+ final_num = num_sum % 10
427
+ final_num == num_array[15]
428
+ end
364
429
  end
365
430
  end
366
431
  end