activemerchant 1.43.3 → 1.44.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 (326) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/CHANGELOG +133 -3
  5. data/CONTRIBUTORS +25 -0
  6. data/README.md +14 -39
  7. data/lib/active_merchant.rb +43 -2
  8. data/lib/active_merchant/billing.rb +3 -1
  9. data/lib/active_merchant/billing/base.rb +10 -2
  10. data/lib/active_merchant/billing/check.rb +29 -22
  11. data/lib/active_merchant/billing/compatibility.rb +120 -0
  12. data/lib/active_merchant/billing/credit_card.rb +129 -60
  13. data/lib/active_merchant/billing/credit_card_formatting.rb +4 -1
  14. data/lib/active_merchant/billing/credit_card_methods.rb +60 -43
  15. data/lib/active_merchant/billing/cvv_result.rb +15 -15
  16. data/lib/active_merchant/billing/gateway.rb +46 -11
  17. data/lib/active_merchant/billing/gateways/adyen.rb +205 -0
  18. data/lib/active_merchant/billing/gateways/app55.rb +1 -9
  19. data/lib/active_merchant/billing/gateways/authorize_net.rb +7 -391
  20. data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +417 -0
  21. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +20 -4
  22. data/lib/active_merchant/billing/gateways/balanced.rb +127 -367
  23. data/lib/active_merchant/billing/gateways/barclays_epdq.rb +1 -1
  24. data/lib/active_merchant/billing/gateways/beanstream.rb +25 -6
  25. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +3 -3
  26. data/lib/active_merchant/billing/gateways/blue_pay.rb +11 -3
  27. data/lib/active_merchant/billing/gateways/bogus.rb +1 -13
  28. data/lib/active_merchant/billing/gateways/borgun.rb +211 -0
  29. data/lib/active_merchant/billing/gateways/braintree_blue.rb +31 -13
  30. data/lib/active_merchant/billing/gateways/bridge_pay.rb +7 -0
  31. data/lib/active_merchant/billing/gateways/cashnet.rb +184 -0
  32. data/lib/active_merchant/billing/gateways/cc5.rb +45 -0
  33. data/lib/active_merchant/billing/gateways/certo_direct.rb +3 -2
  34. data/lib/active_merchant/billing/gateways/commercegate.rb +143 -0
  35. data/lib/active_merchant/billing/gateways/conekta.rb +56 -81
  36. data/lib/active_merchant/billing/gateways/cyber_source.rb +1 -0
  37. data/lib/active_merchant/billing/gateways/data_cash.rb +3 -1
  38. data/lib/active_merchant/billing/gateways/efsnet.rb +3 -14
  39. data/lib/active_merchant/billing/gateways/elavon.rb +45 -9
  40. data/lib/active_merchant/billing/gateways/epay.rb +2 -2
  41. data/lib/active_merchant/billing/gateways/eway.rb +1 -12
  42. data/lib/active_merchant/billing/gateways/eway_managed.rb +1 -1
  43. data/lib/active_merchant/billing/gateways/eway_rapid.rb +233 -202
  44. data/lib/active_merchant/billing/gateways/exact.rb +1 -1
  45. data/lib/active_merchant/billing/gateways/fat_zebra.rb +1 -1
  46. data/lib/active_merchant/billing/gateways/federated_canada.rb +1 -8
  47. data/lib/active_merchant/billing/gateways/finansbank.rb +2 -1
  48. data/lib/active_merchant/billing/gateways/first_pay.rb +108 -124
  49. data/lib/active_merchant/billing/gateways/firstdata_e4.rb +43 -13
  50. data/lib/active_merchant/billing/gateways/garanti.rb +2 -2
  51. data/lib/active_merchant/billing/gateways/hps.rb +281 -0
  52. data/lib/active_merchant/billing/gateways/iats_payments.rb +2 -2
  53. data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +1 -4
  54. data/lib/active_merchant/billing/gateways/inspire.rb +0 -8
  55. data/lib/active_merchant/billing/gateways/iridium.rb +25 -3
  56. data/lib/active_merchant/billing/gateways/jetpay.rb +1 -1
  57. data/lib/active_merchant/billing/gateways/linkpoint.rb +4 -13
  58. data/lib/active_merchant/billing/gateways/litle.rb +10 -4
  59. data/lib/active_merchant/billing/gateways/maxipago.rb +7 -0
  60. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +0 -6
  61. data/lib/active_merchant/billing/gateways/merchant_ware.rb +4 -11
  62. data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +3 -10
  63. data/lib/active_merchant/billing/gateways/mercury.rb +0 -7
  64. data/lib/active_merchant/billing/gateways/metrics_global.rb +1 -20
  65. data/lib/active_merchant/billing/gateways/migs.rb +1 -1
  66. data/lib/active_merchant/billing/gateways/moneris.rb +29 -21
  67. data/lib/active_merchant/billing/gateways/moneris_us.rb +1 -11
  68. data/lib/active_merchant/billing/gateways/money_movers.rb +1 -8
  69. data/lib/active_merchant/billing/gateways/nab_transact.rb +16 -15
  70. data/lib/active_merchant/billing/gateways/net_registry.rb +1 -1
  71. data/lib/active_merchant/billing/gateways/netbilling.rb +0 -7
  72. data/lib/active_merchant/billing/gateways/network_merchants.rb +21 -18
  73. data/lib/active_merchant/billing/gateways/ogone.rb +3 -3
  74. data/lib/active_merchant/billing/gateways/openpay.rb +1 -8
  75. data/lib/active_merchant/billing/gateways/optimal_payment.rb +34 -23
  76. data/lib/active_merchant/billing/gateways/orbital.rb +121 -4
  77. data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +22 -21
  78. data/lib/active_merchant/billing/gateways/pac_net_raven.rb +2 -9
  79. data/lib/active_merchant/billing/gateways/pago_facil.rb +122 -0
  80. data/lib/active_merchant/billing/gateways/pay_junction.rb +3 -13
  81. data/lib/active_merchant/billing/gateways/pay_secure.rb +0 -7
  82. data/lib/active_merchant/billing/gateways/paybox_direct.rb +1 -9
  83. data/lib/active_merchant/billing/gateways/payex.rb +1 -1
  84. data/lib/active_merchant/billing/gateways/payflow.rb +7 -1
  85. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +15 -15
  86. data/lib/active_merchant/billing/gateways/payflow_express.rb +19 -19
  87. data/lib/active_merchant/billing/gateways/payment_express.rb +1 -1
  88. data/lib/active_merchant/billing/gateways/paymill.rb +7 -2
  89. data/lib/active_merchant/billing/gateways/paypal.rb +25 -14
  90. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +1 -1
  91. data/lib/active_merchant/billing/gateways/paypal/paypal_recurring_api.rb +16 -2
  92. data/lib/active_merchant/billing/gateways/paypal_digital_goods.rb +3 -2
  93. data/lib/active_merchant/billing/gateways/paypal_express.rb +25 -0
  94. data/lib/active_merchant/billing/gateways/payscout.rb +1 -8
  95. data/lib/active_merchant/billing/gateways/pin.rb +39 -7
  96. data/lib/active_merchant/billing/gateways/plugnpay.rb +1 -12
  97. data/lib/active_merchant/billing/gateways/psigate.rb +1 -12
  98. data/lib/active_merchant/billing/gateways/qbms.rb +1 -1
  99. data/lib/active_merchant/billing/gateways/quantum.rb +2 -2
  100. data/lib/active_merchant/billing/gateways/quickpay.rb +17 -15
  101. data/lib/active_merchant/billing/gateways/realex.rb +3 -12
  102. data/lib/active_merchant/billing/gateways/sage.rb +1 -1
  103. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +2 -8
  104. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +1 -1
  105. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +1 -1
  106. data/lib/active_merchant/billing/gateways/sage_pay.rb +93 -28
  107. data/lib/active_merchant/billing/gateways/secure_net.rb +1 -8
  108. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +3 -3
  109. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +0 -7
  110. data/lib/active_merchant/billing/gateways/skip_jack.rb +1 -2
  111. data/lib/active_merchant/billing/gateways/smart_ps.rb +8 -2
  112. data/lib/active_merchant/billing/gateways/spreedly_core.rb +2 -1
  113. data/lib/active_merchant/billing/gateways/stripe.rb +14 -15
  114. data/lib/active_merchant/billing/gateways/swipe_checkout.rb +0 -1
  115. data/lib/active_merchant/billing/gateways/trust_commerce.rb +4 -9
  116. data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +46 -43
  117. data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +7 -0
  118. data/lib/active_merchant/billing/gateways/verifi.rb +1 -8
  119. data/lib/active_merchant/billing/gateways/viaklix.rb +0 -6
  120. data/lib/active_merchant/billing/gateways/vindicia.rb +68 -44
  121. data/lib/active_merchant/billing/gateways/webpay.rb +1 -9
  122. data/lib/active_merchant/billing/gateways/wirecard.rb +117 -11
  123. data/lib/active_merchant/billing/gateways/worldpay.rb +50 -22
  124. data/lib/active_merchant/billing/gateways/worldpay_us.rb +181 -0
  125. data/lib/active_merchant/billing/model.rb +30 -0
  126. data/lib/active_merchant/billing/rails.rb +3 -0
  127. data/lib/active_merchant/billing/response.rb +20 -15
  128. data/lib/active_merchant/country.rb +327 -0
  129. data/lib/active_merchant/empty.rb +20 -0
  130. data/lib/active_merchant/errors.rb +29 -0
  131. data/lib/active_merchant/offsite_payments_shim.rb +19 -0
  132. data/lib/active_merchant/version.rb +1 -1
  133. metadata +60 -243
  134. metadata.gz.sig +0 -0
  135. data/gem-public_cert.pem +0 -21
  136. data/lib/active_merchant/billing/expiry_date.rb +0 -34
  137. data/lib/active_merchant/billing/gateways/orbital/avs_result.rb +0 -93
  138. data/lib/active_merchant/billing/gateways/orbital/cvv_result.rb +0 -34
  139. data/lib/active_merchant/billing/integrations.rb +0 -17
  140. data/lib/active_merchant/billing/integrations/a1agregator.rb +0 -26
  141. data/lib/active_merchant/billing/integrations/a1agregator/helper.rb +0 -31
  142. data/lib/active_merchant/billing/integrations/a1agregator/notification.rb +0 -186
  143. data/lib/active_merchant/billing/integrations/a1agregator/status.rb +0 -38
  144. data/lib/active_merchant/billing/integrations/action_view_helper.rb +0 -78
  145. data/lib/active_merchant/billing/integrations/authorize_net_sim.rb +0 -38
  146. data/lib/active_merchant/billing/integrations/authorize_net_sim/helper.rb +0 -229
  147. data/lib/active_merchant/billing/integrations/authorize_net_sim/notification.rb +0 -340
  148. data/lib/active_merchant/billing/integrations/bit_pay.rb +0 -30
  149. data/lib/active_merchant/billing/integrations/bit_pay/helper.rb +0 -66
  150. data/lib/active_merchant/billing/integrations/bit_pay/notification.rb +0 -74
  151. data/lib/active_merchant/billing/integrations/bit_pay/return.rb +0 -10
  152. data/lib/active_merchant/billing/integrations/bogus.rb +0 -23
  153. data/lib/active_merchant/billing/integrations/bogus/helper.rb +0 -17
  154. data/lib/active_merchant/billing/integrations/bogus/notification.rb +0 -11
  155. data/lib/active_merchant/billing/integrations/bogus/return.rb +0 -10
  156. data/lib/active_merchant/billing/integrations/chronopay.rb +0 -23
  157. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +0 -120
  158. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +0 -158
  159. data/lib/active_merchant/billing/integrations/chronopay/return.rb +0 -10
  160. data/lib/active_merchant/billing/integrations/citrus.rb +0 -28
  161. data/lib/active_merchant/billing/integrations/citrus/helper.rb +0 -57
  162. data/lib/active_merchant/billing/integrations/citrus/notification.rb +0 -133
  163. data/lib/active_merchant/billing/integrations/citrus/return.rb +0 -40
  164. data/lib/active_merchant/billing/integrations/direc_pay.rb +0 -41
  165. data/lib/active_merchant/billing/integrations/direc_pay/helper.rb +0 -200
  166. data/lib/active_merchant/billing/integrations/direc_pay/notification.rb +0 -76
  167. data/lib/active_merchant/billing/integrations/direc_pay/return.rb +0 -32
  168. data/lib/active_merchant/billing/integrations/direc_pay/status.rb +0 -37
  169. data/lib/active_merchant/billing/integrations/directebanking.rb +0 -47
  170. data/lib/active_merchant/billing/integrations/directebanking/helper.rb +0 -90
  171. data/lib/active_merchant/billing/integrations/directebanking/notification.rb +0 -120
  172. data/lib/active_merchant/billing/integrations/directebanking/return.rb +0 -11
  173. data/lib/active_merchant/billing/integrations/doku.rb +0 -24
  174. data/lib/active_merchant/billing/integrations/doku/helper.rb +0 -102
  175. data/lib/active_merchant/billing/integrations/doku/notification.rb +0 -69
  176. data/lib/active_merchant/billing/integrations/doku/return.rb +0 -10
  177. data/lib/active_merchant/billing/integrations/dotpay.rb +0 -22
  178. data/lib/active_merchant/billing/integrations/dotpay/helper.rb +0 -77
  179. data/lib/active_merchant/billing/integrations/dotpay/notification.rb +0 -86
  180. data/lib/active_merchant/billing/integrations/dotpay/return.rb +0 -11
  181. data/lib/active_merchant/billing/integrations/dwolla.rb +0 -23
  182. data/lib/active_merchant/billing/integrations/dwolla/common.rb +0 -23
  183. data/lib/active_merchant/billing/integrations/dwolla/helper.rb +0 -43
  184. data/lib/active_merchant/billing/integrations/dwolla/notification.rb +0 -64
  185. data/lib/active_merchant/billing/integrations/dwolla/return.rb +0 -49
  186. data/lib/active_merchant/billing/integrations/e_payment_plans.rb +0 -48
  187. data/lib/active_merchant/billing/integrations/e_payment_plans/helper.rb +0 -34
  188. data/lib/active_merchant/billing/integrations/e_payment_plans/notification.rb +0 -84
  189. data/lib/active_merchant/billing/integrations/easy_pay.rb +0 -30
  190. data/lib/active_merchant/billing/integrations/easy_pay/common.rb +0 -40
  191. data/lib/active_merchant/billing/integrations/easy_pay/helper.rb +0 -36
  192. data/lib/active_merchant/billing/integrations/easy_pay/notification.rb +0 -59
  193. data/lib/active_merchant/billing/integrations/epay.rb +0 -21
  194. data/lib/active_merchant/billing/integrations/epay/helper.rb +0 -55
  195. data/lib/active_merchant/billing/integrations/epay/notification.rb +0 -110
  196. data/lib/active_merchant/billing/integrations/first_data.rb +0 -38
  197. data/lib/active_merchant/billing/integrations/first_data/helper.rb +0 -61
  198. data/lib/active_merchant/billing/integrations/first_data/notification.rb +0 -56
  199. data/lib/active_merchant/billing/integrations/gestpay.rb +0 -25
  200. data/lib/active_merchant/billing/integrations/gestpay/common.rb +0 -42
  201. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +0 -70
  202. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +0 -85
  203. data/lib/active_merchant/billing/integrations/gestpay/return.rb +0 -10
  204. data/lib/active_merchant/billing/integrations/helper.rb +0 -123
  205. data/lib/active_merchant/billing/integrations/hi_trust.rb +0 -27
  206. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +0 -58
  207. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +0 -59
  208. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +0 -68
  209. data/lib/active_merchant/billing/integrations/ipay88.rb +0 -23
  210. data/lib/active_merchant/billing/integrations/ipay88/helper.rb +0 -118
  211. data/lib/active_merchant/billing/integrations/ipay88/notification.rb +0 -103
  212. data/lib/active_merchant/billing/integrations/ipay88/return.rb +0 -29
  213. data/lib/active_merchant/billing/integrations/klarna.rb +0 -71
  214. data/lib/active_merchant/billing/integrations/klarna/helper.rb +0 -123
  215. data/lib/active_merchant/billing/integrations/klarna/notification.rb +0 -103
  216. data/lib/active_merchant/billing/integrations/liqpay.rb +0 -30
  217. data/lib/active_merchant/billing/integrations/liqpay/helper.rb +0 -43
  218. data/lib/active_merchant/billing/integrations/liqpay/notification.rb +0 -89
  219. data/lib/active_merchant/billing/integrations/liqpay/return.rb +0 -83
  220. data/lib/active_merchant/billing/integrations/maksuturva.rb +0 -86
  221. data/lib/active_merchant/billing/integrations/maksuturva/helper.rb +0 -119
  222. data/lib/active_merchant/billing/integrations/maksuturva/notification.rb +0 -48
  223. data/lib/active_merchant/billing/integrations/mollie_ideal.rb +0 -98
  224. data/lib/active_merchant/billing/integrations/mollie_ideal/helper.rb +0 -67
  225. data/lib/active_merchant/billing/integrations/mollie_ideal/notification.rb +0 -69
  226. data/lib/active_merchant/billing/integrations/mollie_ideal/return.rb +0 -10
  227. data/lib/active_merchant/billing/integrations/moneybookers.rb +0 -26
  228. data/lib/active_merchant/billing/integrations/moneybookers/helper.rb +0 -75
  229. data/lib/active_merchant/billing/integrations/moneybookers/notification.rb +0 -123
  230. data/lib/active_merchant/billing/integrations/nochex.rb +0 -88
  231. data/lib/active_merchant/billing/integrations/nochex/helper.rb +0 -68
  232. data/lib/active_merchant/billing/integrations/nochex/notification.rb +0 -94
  233. data/lib/active_merchant/billing/integrations/nochex/return.rb +0 -10
  234. data/lib/active_merchant/billing/integrations/notification.rb +0 -71
  235. data/lib/active_merchant/billing/integrations/pag_seguro.rb +0 -53
  236. data/lib/active_merchant/billing/integrations/pag_seguro/helper.rb +0 -121
  237. data/lib/active_merchant/billing/integrations/pag_seguro/notification.rb +0 -104
  238. data/lib/active_merchant/billing/integrations/paxum.rb +0 -44
  239. data/lib/active_merchant/billing/integrations/paxum/common.rb +0 -24
  240. data/lib/active_merchant/billing/integrations/paxum/helper.rb +0 -42
  241. data/lib/active_merchant/billing/integrations/paxum/notification.rb +0 -33
  242. data/lib/active_merchant/billing/integrations/pay_fast.rb +0 -70
  243. data/lib/active_merchant/billing/integrations/pay_fast/common.rb +0 -42
  244. data/lib/active_merchant/billing/integrations/pay_fast/helper.rb +0 -50
  245. data/lib/active_merchant/billing/integrations/pay_fast/notification.rb +0 -134
  246. data/lib/active_merchant/billing/integrations/pay_fast/return.rb +0 -10
  247. data/lib/active_merchant/billing/integrations/paydollar.rb +0 -59
  248. data/lib/active_merchant/billing/integrations/paydollar/helper.rb +0 -41
  249. data/lib/active_merchant/billing/integrations/paydollar/notification.rb +0 -64
  250. data/lib/active_merchant/billing/integrations/paydollar/return.rb +0 -15
  251. data/lib/active_merchant/billing/integrations/payflow_link.rb +0 -21
  252. data/lib/active_merchant/billing/integrations/payflow_link/helper.rb +0 -116
  253. data/lib/active_merchant/billing/integrations/payflow_link/notification.rb +0 -78
  254. data/lib/active_merchant/billing/integrations/paypal.rb +0 -39
  255. data/lib/active_merchant/billing/integrations/paypal/helper.rb +0 -119
  256. data/lib/active_merchant/billing/integrations/paypal/notification.rb +0 -227
  257. data/lib/active_merchant/billing/integrations/paypal/return.rb +0 -10
  258. data/lib/active_merchant/billing/integrations/paypal_payments_advanced.rb +0 -20
  259. data/lib/active_merchant/billing/integrations/paypal_payments_advanced/helper.rb +0 -15
  260. data/lib/active_merchant/billing/integrations/paysbuy.rb +0 -36
  261. data/lib/active_merchant/billing/integrations/paysbuy/helper.rb +0 -15
  262. data/lib/active_merchant/billing/integrations/paysbuy/notification.rb +0 -39
  263. data/lib/active_merchant/billing/integrations/payu_in.rb +0 -36
  264. data/lib/active_merchant/billing/integrations/payu_in/helper.rb +0 -76
  265. data/lib/active_merchant/billing/integrations/payu_in/notification.rb +0 -154
  266. data/lib/active_merchant/billing/integrations/payu_in/return.rb +0 -36
  267. data/lib/active_merchant/billing/integrations/payu_in_paisa.rb +0 -30
  268. data/lib/active_merchant/billing/integrations/payu_in_paisa/helper.rb +0 -19
  269. data/lib/active_merchant/billing/integrations/payu_in_paisa/notification.rb +0 -13
  270. data/lib/active_merchant/billing/integrations/payu_in_paisa/return.rb +0 -16
  271. data/lib/active_merchant/billing/integrations/platron.rb +0 -28
  272. data/lib/active_merchant/billing/integrations/platron/helper.rb +0 -32
  273. data/lib/active_merchant/billing/integrations/platron/notification.rb +0 -113
  274. data/lib/active_merchant/billing/integrations/pxpay.rb +0 -31
  275. data/lib/active_merchant/billing/integrations/pxpay/helper.rb +0 -113
  276. data/lib/active_merchant/billing/integrations/pxpay/notification.rb +0 -157
  277. data/lib/active_merchant/billing/integrations/pxpay/return.rb +0 -25
  278. data/lib/active_merchant/billing/integrations/quickpay.rb +0 -21
  279. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +0 -96
  280. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +0 -137
  281. data/lib/active_merchant/billing/integrations/rbkmoney.rb +0 -17
  282. data/lib/active_merchant/billing/integrations/rbkmoney/helper.rb +0 -23
  283. data/lib/active_merchant/billing/integrations/rbkmoney/notification.rb +0 -91
  284. data/lib/active_merchant/billing/integrations/return.rb +0 -42
  285. data/lib/active_merchant/billing/integrations/robokassa.rb +0 -49
  286. data/lib/active_merchant/billing/integrations/robokassa/common.rb +0 -19
  287. data/lib/active_merchant/billing/integrations/robokassa/helper.rb +0 -50
  288. data/lib/active_merchant/billing/integrations/robokassa/notification.rb +0 -55
  289. data/lib/active_merchant/billing/integrations/robokassa/return.rb +0 -17
  290. data/lib/active_merchant/billing/integrations/sage_pay_form.rb +0 -37
  291. data/lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb +0 -33
  292. data/lib/active_merchant/billing/integrations/sage_pay_form/helper.rb +0 -136
  293. data/lib/active_merchant/billing/integrations/sage_pay_form/notification.rb +0 -210
  294. data/lib/active_merchant/billing/integrations/sage_pay_form/return.rb +0 -31
  295. data/lib/active_merchant/billing/integrations/two_checkout.rb +0 -44
  296. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +0 -107
  297. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +0 -171
  298. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +0 -58
  299. data/lib/active_merchant/billing/integrations/universal.rb +0 -23
  300. data/lib/active_merchant/billing/integrations/universal/helper.rb +0 -76
  301. data/lib/active_merchant/billing/integrations/universal/notification.rb +0 -52
  302. data/lib/active_merchant/billing/integrations/universal/return.rb +0 -18
  303. data/lib/active_merchant/billing/integrations/valitor.rb +0 -33
  304. data/lib/active_merchant/billing/integrations/valitor/helper.rb +0 -86
  305. data/lib/active_merchant/billing/integrations/valitor/notification.rb +0 -13
  306. data/lib/active_merchant/billing/integrations/valitor/response_fields.rb +0 -97
  307. data/lib/active_merchant/billing/integrations/valitor/return.rb +0 -13
  308. data/lib/active_merchant/billing/integrations/verkkomaksut.rb +0 -20
  309. data/lib/active_merchant/billing/integrations/verkkomaksut/helper.rb +0 -88
  310. data/lib/active_merchant/billing/integrations/verkkomaksut/notification.rb +0 -59
  311. data/lib/active_merchant/billing/integrations/web_pay.rb +0 -45
  312. data/lib/active_merchant/billing/integrations/web_pay/common.rb +0 -50
  313. data/lib/active_merchant/billing/integrations/web_pay/helper.rb +0 -68
  314. data/lib/active_merchant/billing/integrations/web_pay/notification.rb +0 -51
  315. data/lib/active_merchant/billing/integrations/webmoney.rb +0 -43
  316. data/lib/active_merchant/billing/integrations/webmoney/common.rb +0 -17
  317. data/lib/active_merchant/billing/integrations/webmoney/helper.rb +0 -40
  318. data/lib/active_merchant/billing/integrations/webmoney/notification.rb +0 -47
  319. data/lib/active_merchant/billing/integrations/wirecard_checkout_page.rb +0 -39
  320. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/common.rb +0 -104
  321. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/helper.rb +0 -145
  322. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/notification.rb +0 -101
  323. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/return.rb +0 -35
  324. data/lib/active_merchant/billing/integrations/world_pay.rb +0 -34
  325. data/lib/active_merchant/billing/integrations/world_pay/helper.rb +0 -101
  326. data/lib/active_merchant/billing/integrations/world_pay/notification.rb +0 -160
@@ -107,7 +107,7 @@ module ActiveMerchant #:nodoc:
107
107
  end
108
108
 
109
109
  def parse(body)
110
- Hash[body.split('&').map{|x| x.split('=').map{|x| CGI.unescape(x)}}]
110
+ Hash[body.split('&').map{|x| x.split('=').map{|y| CGI.unescape(y)}}]
111
111
  end
112
112
 
113
113
  def commit(action, money, parameters)
@@ -199,14 +199,7 @@ module ActiveMerchant #:nodoc:
199
199
  else
200
200
  post['UserName']
201
201
  end
202
- Digest::HMAC.hexdigest(string, @options[:secret], Digest::SHA1)
203
- end
204
-
205
- def expdate(creditcard)
206
- year = sprintf("%.4i", creditcard.year)
207
- month = sprintf("%.2i", creditcard.month)
208
-
209
- "#{month}#{year[-2..-1]}"
202
+ OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA1.new(@options[:secret]), @options[:secret], string)
210
203
  end
211
204
  end
212
205
  end
@@ -0,0 +1,122 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ class PagoFacilGateway < Gateway
4
+ self.test_url = 'https://www.pagofacil.net/st/public/Wsrtransaccion/index/format/json?'
5
+ self.live_url = 'https://www.pagofacil.net/ws/public/Wsrtransaccion/index/format/json?'
6
+
7
+ self.supported_countries = ['MX']
8
+ self.default_currency = 'MXN'
9
+ self.supported_cardtypes = [:visa, :master, :american_express, :jcb]
10
+
11
+ self.homepage_url = 'http://www.pagofacil.net/'
12
+ self.display_name = 'PagoFacil'
13
+
14
+ def initialize(options={})
15
+ requires!(options, :branch_id, :merchant_id, :service_id)
16
+ super
17
+ end
18
+
19
+ def purchase(money, credit_card, options={})
20
+ post = {}
21
+ add_invoice(post, money, options)
22
+ add_payment(post, credit_card)
23
+ add_address(post, options)
24
+ add_customer_data(post, options)
25
+ add_merchant_data(post)
26
+
27
+ commit(post)
28
+ end
29
+
30
+ private
31
+
32
+ def add_customer_data(post, options)
33
+ post[:email] = options[:email]
34
+ post[:celular] = options[:cellphone]
35
+ end
36
+
37
+ def add_address(post, options)
38
+ address = options.fetch(:billing_address, {})
39
+ post[:calleyNumero] = address[:address1]
40
+ post[:colonia] = address[:address2]
41
+ post[:municipio] = address[:city]
42
+ post[:estado] = address[:state]
43
+ post[:pais] = address[:country]
44
+ post[:telefono] = address[:phone]
45
+ post[:cp] = address[:zip]
46
+ end
47
+
48
+ def add_invoice(post, money, options)
49
+ post[:monto] = amount(money)
50
+ post[:idPedido] = options[:order_id]
51
+ add_currency(post, money, options)
52
+ end
53
+
54
+ def add_currency(post, money, options)
55
+ currency = options.fetch(:currency, currency(money))
56
+ unless currency == self.class.default_currency
57
+ post[:divisa] = currency
58
+ end
59
+ end
60
+
61
+ def add_payment(post, credit_card)
62
+ post[:nombre] = credit_card.first_name
63
+ post[:apellidos] = credit_card.last_name
64
+ post[:numeroTarjeta] = credit_card.number
65
+ post[:cvt] = credit_card.verification_value
66
+ post[:mesExpiracion] = sprintf("%02d", credit_card.month)
67
+ post[:anyoExpiracion] = credit_card.year.to_s.slice(-2, 2)
68
+ end
69
+
70
+ def add_merchant_data(post)
71
+ post[:idSucursal] = options.fetch(:branch_id)
72
+ post[:idUsuario] = options.fetch(:merchant_id)
73
+ post[:idServicio] = options.fetch(:service_id)
74
+ end
75
+
76
+ def parse(body)
77
+ JSON.parse(body)["WebServices_Transacciones"]["transaccion"]
78
+ rescue JSON::ParserError
79
+ json_error(body)
80
+ end
81
+
82
+ def commit(parameters)
83
+ url = (test? ? test_url : live_url)
84
+ response = parse(ssl_post(url, post_data(parameters)))
85
+ Response.new(
86
+ success_from(response),
87
+ message_from(response),
88
+ response,
89
+ authorization: authorization_from(response),
90
+ test: test?
91
+ )
92
+ end
93
+
94
+ def success_from(response)
95
+ response["autorizado"] == "1" ||
96
+ response["autorizado"] == true
97
+ end
98
+
99
+ def message_from(response)
100
+ response["texto"]
101
+ end
102
+
103
+ def authorization_from(response)
104
+ response["autorizacion"]
105
+ end
106
+
107
+ def post_data(parameters = {})
108
+ {
109
+ method: 'transaccion',
110
+ data: parameters
111
+ }.to_query
112
+ end
113
+
114
+ def json_error(response)
115
+ {
116
+ "texto" => 'Invalid response received from the PagoFacil API.',
117
+ "raw_response" => response
118
+ }
119
+ end
120
+ end
121
+ end
122
+ end
@@ -211,7 +211,7 @@ module ActiveMerchant #:nodoc:
211
211
  end
212
212
 
213
213
  def credit(money, authorization, options = {})
214
- deprecated CREDIT_DEPRECATION_MESSAGE
214
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
215
215
  refund(money, authorization, options)
216
216
  end
217
217
 
@@ -239,6 +239,8 @@ module ActiveMerchant #:nodoc:
239
239
  # YYYYMMDD format and can be used to specify when the first charge will be made.
240
240
  # If omitted the first charge will be immediate.
241
241
  def recurring(money, payment_source, options = {})
242
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
243
+
242
244
  requires!(options, [:periodicity, :monthly, :weekly, :daily], :payments)
243
245
 
244
246
  periodic_type = case options[:periodicity]
@@ -379,18 +381,6 @@ module ActiveMerchant #:nodoc:
379
381
  end
380
382
  response
381
383
  end
382
-
383
- # Make a ruby type out of the response string
384
- def normalize(field)
385
- case field
386
- when "true" then true
387
- when "false" then false
388
- when "" then nil
389
- when "null" then nil
390
- else field
391
- end
392
- end
393
-
394
384
  end
395
385
  end
396
386
  end
@@ -64,13 +64,6 @@ module ActiveMerchant #:nodoc:
64
64
  post[:cvv2] = credit_card.verification_value
65
65
  end
66
66
 
67
- def expdate(credit_card)
68
- year = sprintf("%.4i", credit_card.year)
69
- month = sprintf("%.2i", credit_card.month)
70
-
71
- "#{month}#{year[-2..-1]}"
72
- end
73
-
74
67
  def commit(action, money, parameters)
75
68
  response = parse( ssl_post(self.live_url, post_data(action, parameters)) )
76
69
 
@@ -97,7 +97,7 @@ module ActiveMerchant #:nodoc:
97
97
  end
98
98
 
99
99
  def credit(money, identification, options = {})
100
- deprecated CREDIT_DEPRECATION_MESSAGE
100
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
101
101
  refund(money, identification, options)
102
102
  end
103
103
 
@@ -183,14 +183,6 @@ module ActiveMerchant #:nodoc:
183
183
 
184
184
  "0000000000#{randkey}"[-10..-1]
185
185
  end
186
-
187
- def expdate(credit_card)
188
- year = sprintf("%.4i", credit_card.year)
189
- month = sprintf("%.2i", credit_card.month)
190
-
191
- "#{month}#{year[-2..-1]}"
192
- end
193
-
194
186
  end
195
187
  end
196
188
  end
@@ -6,7 +6,7 @@ module ActiveMerchant #:nodoc:
6
6
  self.test_url = 'https://test-external.payex.com/'
7
7
 
8
8
  self.money_format = :cents
9
- self.supported_countries = ['SE', 'NO', 'DK']
9
+ self.supported_countries = ['DK', 'FI', 'NO', 'SE']
10
10
  self.supported_cardtypes = [:visa, :master, :american_express, :discover]
11
11
  self.homepage_url = 'http://payex.com/'
12
12
  self.display_name = 'Payex'
@@ -27,7 +27,7 @@ module ActiveMerchant #:nodoc:
27
27
 
28
28
  def credit(money, funding_source, options = {})
29
29
  if funding_source.is_a?(String)
30
- deprecated CREDIT_DEPRECATION_MESSAGE
30
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
31
31
  # Perform referenced credit
32
32
  refund(money, funding_source, options)
33
33
  elsif card_brand(funding_source) == 'check'
@@ -57,6 +57,8 @@ module ActiveMerchant #:nodoc:
57
57
  # * <tt>payments</tt> - The term, or number of payments that will be made
58
58
  # * <tt>comment</tt> - A comment associated with the profile
59
59
  def recurring(money, credit_card, options = {})
60
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
61
+
60
62
  options[:name] = credit_card.name if options[:name].blank? && credit_card
61
63
  request = build_recurring_request(options[:profile_id] ? :modify : :add, money, options) do |xml|
62
64
  add_credit_card(xml, credit_card) if credit_card
@@ -65,11 +67,15 @@ module ActiveMerchant #:nodoc:
65
67
  end
66
68
 
67
69
  def cancel_recurring(profile_id)
70
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
71
+
68
72
  request = build_recurring_request(:cancel, 0, :profile_id => profile_id)
69
73
  commit(request, options.merge(:request_type => :recurring))
70
74
  end
71
75
 
72
76
  def recurring_inquiry(profile_id, options = {})
77
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
78
+
73
79
  request = build_recurring_request(:inquiry, nil, options.update( :profile_id => profile_id ))
74
80
  commit(request, options.merge(:request_type => :recurring))
75
81
  end
@@ -85,7 +85,7 @@ module ActiveMerchant #:nodoc:
85
85
  else
86
86
  xml.tag! 'Transactions' do
87
87
  xml.tag! 'Transaction', 'CustRef' => options[:customer] do
88
- xml.tag! 'Verbosity', 'MEDIUM'
88
+ xml.tag! 'Verbosity', @options[:verbosity] || 'MEDIUM'
89
89
  xml << body
90
90
  end
91
91
  end
@@ -184,24 +184,24 @@ module ActiveMerchant #:nodoc:
184
184
  {
185
185
  "Content-Type" => "text/xml",
186
186
  "Content-Length" => content_length.to_s,
187
- "X-VPS-Client-Timeout" => timeout.to_s,
188
- "X-VPS-VIT-Integration-Product" => "ActiveMerchant",
189
- "X-VPS-VIT-Runtime-Version" => RUBY_VERSION,
190
- "X-VPS-Request-ID" => Utils.generate_unique_id
191
- }
192
- end
193
-
194
- def commit(request_body, options = {})
187
+ "X-VPS-Client-Timeout" => timeout.to_s,
188
+ "X-VPS-VIT-Integration-Product" => "ActiveMerchant",
189
+ "X-VPS-VIT-Runtime-Version" => RUBY_VERSION,
190
+ "X-VPS-Request-ID" => SecureRandom.hex(16)
191
+ }
192
+ end
193
+
194
+ def commit(request_body, options = {})
195
195
  request = build_request(request_body, options)
196
196
  headers = build_headers(request.size)
197
197
 
198
- response = parse(ssl_post(test? ? self.test_url : self.live_url, request, headers))
198
+ response = parse(ssl_post(test? ? self.test_url : self.live_url, request, headers))
199
199
 
200
- build_response(response[:result] == "0", response[:message], response,
201
- :test => test?,
202
- :authorization => response[:pn_ref] || response[:rp_ref],
203
- :cvv_result => CVV_CODE[response[:cv_result]],
204
- :avs_result => { :code => response[:avs_result] }
200
+ build_response(response[:result] == "0", response[:message], response,
201
+ :test => test?,
202
+ :authorization => response[:pn_ref] || response[:rp_ref],
203
+ :cvv_result => CVV_CODE[response[:cv_result]],
204
+ :avs_result => { :code => response[:avs_result] }
205
205
  )
206
206
  end
207
207
  end
@@ -41,7 +41,7 @@ module ActiveMerchant #:nodoc:
41
41
  # <em>You will need to call Payflow Support at 1-888-883-9770, choose option #2. Request that they update your account in "Pandora" under Product Settings >> PayPal Mark and update the Features Bitmap to 1111111111111112. This is 15 ones and a two.</em>
42
42
  #
43
43
  # See here[https://www.x.com/message/206214#206214] for the forum discussion (requires login to {x.com}[https://x.com]
44
- #
44
+ #
45
45
  # [<tt>:items</tt>] (opt) Array of Order Line Items hashes. These are shown to the buyer after redirect to PayPal.
46
46
  #
47
47
  #
@@ -64,7 +64,7 @@ module ActiveMerchant #:nodoc:
64
64
  class PayflowExpressGateway < Gateway
65
65
  include PayflowCommonAPI
66
66
  include PaypalExpressCommon
67
-
67
+
68
68
  self.test_redirect_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'
69
69
  self.homepage_url = 'https://www.paypal.com/cgi-bin/webscr?cmd=xpt/merchant/ExpressCheckoutIntro-outside'
70
70
  self.display_name = 'PayPal Express Checkout'
@@ -74,48 +74,48 @@ module ActiveMerchant #:nodoc:
74
74
  request = build_sale_or_authorization_request('Authorization', money, options)
75
75
  commit(request, options)
76
76
  end
77
-
78
- def purchase(money, options = {})
77
+
78
+ def purchase(money, options = {})
79
79
  requires!(options, :token, :payer_id)
80
80
  request = build_sale_or_authorization_request('Sale', money, options)
81
81
  commit(request, options)
82
82
  end
83
-
83
+
84
84
  def refund(money, identification, options = {})
85
85
  request = build_reference_request(:credit, money, identification, options)
86
86
  commit(request, options)
87
- end
87
+ end
88
88
 
89
89
  def credit(money, identification, options = {})
90
- deprecated CREDIT_DEPRECATION_MESSAGE
90
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
91
91
  refund(money, identification, options)
92
92
  end
93
93
 
94
94
  def setup_authorization(money, options = {})
95
95
  requires!(options, :return_url, :cancel_return_url)
96
-
96
+
97
97
  request = build_setup_express_sale_or_authorization_request('Authorization', money, options)
98
98
  commit(request, options)
99
99
  end
100
-
100
+
101
101
  def setup_purchase(money, options = {})
102
102
  requires!(options, :return_url, :cancel_return_url)
103
-
103
+
104
104
  request = build_setup_express_sale_or_authorization_request('Sale', money, options)
105
105
  commit(request, options)
106
106
  end
107
-
107
+
108
108
  def details_for(token)
109
109
  request = build_get_express_details_request(token)
110
110
  commit(request, options)
111
111
  end
112
-
112
+
113
113
  private
114
114
  def build_get_express_details_request(token)
115
- xml = Builder::XmlMarkup.new :indent => 2
115
+ xml = Builder::XmlMarkup.new :indent => 2
116
116
  xml.tag! 'GetExpressCheckout' do
117
117
  xml.tag! 'Authorization' do
118
- xml.tag! 'PayData' do
118
+ xml.tag! 'PayData' do
119
119
  xml.tag! 'Tender' do
120
120
  xml.tag! 'PayPal' do
121
121
  xml.tag! 'Token', token
@@ -136,8 +136,8 @@ module ActiveMerchant #:nodoc:
136
136
  end
137
137
  xml.target!
138
138
  end
139
-
140
- def build_sale_or_authorization_request(action, money, options)
139
+
140
+ def build_sale_or_authorization_request(action, money, options)
141
141
  xml = Builder::XmlMarkup.new :indent => 2
142
142
  xml.tag! 'DoExpressCheckout' do
143
143
  xml.tag! action do
@@ -201,8 +201,8 @@ module ActiveMerchant #:nodoc:
201
201
  xml.tag! 'Token', options[:token] unless options[:token].blank?
202
202
  xml.tag! 'NoShipping', options[:no_shipping] ? '1' : '0'
203
203
  xml.tag! 'AddressOverride', options[:address_override] ? '1' : '0'
204
- xml.tag! 'ButtonSource', application_id.to_s.slice(0,32) unless application_id.blank?
205
-
204
+ xml.tag! 'ButtonSource', application_id.to_s.slice(0,32) unless application_id.blank?
205
+
206
206
  # Customization of the payment page
207
207
  xml.tag! 'PageStyle', options[:page_style] unless options[:page_style].blank?
208
208
  xml.tag! 'HeaderImage', options[:header_image] unless options[:header_image].blank?
@@ -214,7 +214,7 @@ module ActiveMerchant #:nodoc:
214
214
  xml.tag! 'ExtData', 'Name' => 'ALLOWNOTE', 'Value' => options[:allow_note]
215
215
  end
216
216
  end
217
-
217
+
218
218
  def build_response(success, message, response, options = {})
219
219
  PayflowExpressResponse.new(success, message, response, options)
220
220
  end
@@ -82,7 +82,7 @@ module ActiveMerchant #:nodoc:
82
82
  end
83
83
 
84
84
  def credit(money, identification, options = {})
85
- deprecated CREDIT_DEPRECATION_MESSAGE
85
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
86
86
  refund(money, identification, options)
87
87
  end
88
88
 
@@ -5,7 +5,7 @@ module ActiveMerchant #:nodoc:
5
5
  GI GR HR HU IE IL IM IS IT LI LT LU LV MC MT
6
6
  NL NO PL PT RO SE SI SK TR VA)
7
7
 
8
- self.supported_cardtypes = [:visa, :master]
8
+ self.supported_cardtypes = [:visa, :master, :american_express, :diners_club, :discover, :union_pay, :jcb]
9
9
  self.homepage_url = 'https://paymill.com'
10
10
  self.display_name = 'PAYMILL'
11
11
  self.money_format = :cents
@@ -30,6 +30,7 @@ module ActiveMerchant #:nodoc:
30
30
  add_amount(post, money, options)
31
31
  post[:preauthorization] = preauth(authorization)
32
32
  post[:description] = options[:description]
33
+ post[:source] = 'active_merchant'
33
34
  commit(:post, 'transactions', post)
34
35
  end
35
36
 
@@ -116,6 +117,7 @@ module ActiveMerchant #:nodoc:
116
117
  add_amount(post, money, options)
117
118
  post[:token] = card_token
118
119
  post[:description] = options[:description]
120
+ post[:source] = 'active_merchant'
119
121
  commit(:post, 'transactions', post)
120
122
  end
121
123
 
@@ -124,6 +126,8 @@ module ActiveMerchant #:nodoc:
124
126
 
125
127
  add_amount(post, money, options)
126
128
  post[:token] = card_token
129
+ post[:description] = options[:description]
130
+ post[:source] = 'active_merchant'
127
131
  commit(:post, 'preauthorizations', post)
128
132
  end
129
133
 
@@ -232,6 +236,8 @@ module ActiveMerchant #:nodoc:
232
236
 
233
237
 
234
238
  class ResponseParser
239
+ attr_reader :raw_response, :parsed, :succeeded, :message, :options
240
+
235
241
  def initialize(raw_response="", options={})
236
242
  @raw_response = raw_response
237
243
  @options = options
@@ -249,7 +255,6 @@ module ActiveMerchant #:nodoc:
249
255
  end
250
256
 
251
257
  private
252
- attr_reader :raw_response, :parsed, :succeeded, :message, :options
253
258
 
254
259
  def parse_response
255
260
  @parsed = JSON.parse(raw_response.sub(/jsonPFunction\(/, '').sub(/\)\z/, ''))