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
@@ -1,145 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module WirecardCheckoutPage
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- include Common
7
-
8
- PLUGIN_NAME = 'ActiveMerchant_WirecardCheckoutPage'
9
- PLUGIN_VERSION = '1.0.0'
10
-
11
- # Replace with the real mapping
12
- mapping :account, 'customerId'
13
- mapping :amount, 'amount'
14
-
15
- mapping :order, 'xActiveMerchantOrderId'
16
-
17
- mapping :customer, :first_name => 'consumerBillingFirstName',
18
- :last_name => 'consumerBillingLastName',
19
- :email => 'consumerEmail',
20
- :phone => 'consumerBillingPhone',
21
- :ipaddress => 'consumerIpAddress',
22
- :user_agent => 'consumerUserAgent',
23
- :fax => 'consumerBillingFax',
24
- :birthdate => 'consumerBirthDate' # mandatory for INVOICE and INSTALLMENT
25
-
26
- mapping :billing_address, :city => 'consumerBillingCity',
27
- :address1 => 'consumerBillingAddress1',
28
- :address2 => 'consumerBillingAddress2',
29
- :state => 'consumerBillingState',
30
- :zip => 'consumerBillingZipCode',
31
- :country => 'consumerBillingCountry'
32
-
33
- mapping :shipping_address, :first_name => 'consumerShippingFirstName',
34
- :last_name => 'consumerShippingLastName',
35
- :address1 => 'consumerShippingAddress1',
36
- :address2 => 'consumerShippingAddress2',
37
- :city => 'consumerShippingCity',
38
- :state => 'consumerShippingState',
39
- :country => 'consumerShippingCountry',
40
- :zip => 'consumerShippingZipCode',
41
- :phone => 'consumerShippingPhone',
42
- :fax => 'consumerShippingFax'
43
-
44
- mapping :currency, 'currency'
45
- mapping :language, 'language' # language for displayed texts on payment page
46
-
47
- mapping :description, 'orderDescription' # unique description of the consumer's order in a human readable form
48
-
49
- mapping :shop_service_url, 'serviceUrl' # URL of your service page containing contact information
50
-
51
- mapping :notify_url, 'confirmUrl'
52
- mapping :return_url, 'successUrl'
53
-
54
- # defaulting to return_url
55
- mapping :cancel_return_url, 'cancelUrl'
56
- mapping :pending_url, 'pendingUrl'
57
- mapping :failure_url, 'failureUrl'
58
-
59
- # optional parameters
60
- mapping :window_name, 'windowName' # window.name of browser window where payment page is opened
61
- mapping :duplicate_request_check, 'duplicateRequestCheck' # check for duplicate requests done by your consumer
62
- mapping :customer_statement, 'customerStatement' # text displayed on invoice of financial institution of your consumer
63
- mapping :order_reference, 'orderReference' # unique order reference id sent from merchant to financial institution
64
- mapping :display_text, 'displayText' # text displayed to your consumer within the payment page
65
- mapping :image_url, 'imageUrl' # URL of your web shop where your web shop logo is located
66
- mapping :max_retries, 'maxRetries' # maximum number of attempted payments for the same order
67
- mapping :auto_deposit, 'autoDeposit' # enable automated debiting of payments
68
- mapping :financial_institution, 'financialInstitution' # based on pre-selected payment type a sub-selection of financial institutions regarding to pre-selected payment type
69
-
70
- # not used
71
- mapping :tax, ''
72
- mapping :shipping, ''
73
-
74
- def initialize(order, customer_id, options = {})
75
- @paymenttype = options.delete(:paymenttype)
76
-
77
- raise "Unknown Paymenttype: " + @paymenttype if paymenttypes.find_index(@paymenttype) == nil
78
-
79
- @secret = options.delete(:secret)
80
- @customer_id = customer_id
81
- @shop_id = options.delete(:shop_id)
82
- super
83
- end
84
-
85
- def add_version(shop_name, shop_version)
86
- add_field('pluginVersion', Base64.encode64(shop_name + ';' + shop_version + ';ActiveMerchant;' + PLUGIN_NAME + ';' + PLUGIN_VERSION))
87
- end
88
-
89
- def add_standard_fields
90
- addfields = {}
91
- addfields['shopId'] = @shop_id if !@shop_id.blank?
92
- addfields['paymentType'] = @paymenttype
93
-
94
- addfields[mappings[:pending_url]] = @fields[mappings[:return_url]] unless @fields.has_key?(mappings[:pending_url])
95
- addfields[mappings[:cancel_return_url]] = @fields[mappings[:return_url]] unless @fields.has_key?(mappings[:cancel_return_url])
96
- addfields[mappings[:failure_url]] = @fields[mappings[:return_url]] unless @fields.has_key?(mappings[:failure_url])
97
-
98
- addfields
99
- end
100
-
101
- def add_request_fingerprint(fpfields)
102
- addfields = {}
103
- fingerprint_order = %w(secret)
104
- fingerprint_values = @secret.to_s
105
- fpfields.each { |key, value|
106
- next if key == 'pluginVersion'
107
- fingerprint_order.append key
108
- fingerprint_values += value.to_s
109
- }
110
-
111
- fingerprint_order.append 'requestFingerprintOrder'
112
- fingerprint_values += fingerprint_order.join(',')
113
-
114
- addfields['requestFingerprintOrder'] = fingerprint_order.join(',')
115
- addfields['requestFingerprint'] = Digest::MD5.hexdigest(fingerprint_values)
116
-
117
- return addfields
118
- end
119
-
120
- def form_fields
121
- result = {}
122
- result.merge!(@fields)
123
- result.merge!(add_standard_fields)
124
- result.merge!(add_request_fingerprint(result))
125
- result
126
- end
127
-
128
- def secret
129
- @secret
130
- end
131
-
132
- def customer_id
133
- @customer_id
134
- end
135
-
136
- def shop_id
137
- @shop_id
138
- end
139
-
140
- end
141
-
142
- end
143
- end
144
- end
145
- end
@@ -1,101 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module WirecardCheckoutPage
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- include Common
9
-
10
- def complete?
11
- @paymentstate == 'SUCCESS'
12
- end
13
-
14
- def item_id
15
- params['xActiveMerchantOrderId']
16
- end
17
-
18
- def transaction_id
19
- params['orderNumber']
20
- end
21
-
22
- # When was this payment received by the client.
23
- def received_at
24
- nil
25
- end
26
-
27
- # the money amount we received in X.2 decimal.
28
- def gross
29
- params['amount']
30
- end
31
-
32
- # Was this a test transaction?
33
- def test?
34
- false
35
- end
36
-
37
- def status
38
- case @paymentstate
39
- when 'SUCCESS'
40
- 'Completed'
41
- when 'PENDING'
42
- 'Pending'
43
- when 'CANCEL'
44
- 'Cancelled'
45
- when 'FAILURE'
46
- 'Failed'
47
- else
48
- 'Error'
49
- end
50
- end
51
-
52
- def status_code
53
- @paymentstate
54
- end
55
-
56
-
57
- # Acknowledge the transaction to WirecardCheckoutPage. This method has to be called after a new
58
- # apc arrives. WirecardCheckoutPage will verify that all the information we received are correct and will return a
59
- # ok or a fail.
60
- #
61
- # Example:
62
- #
63
- # def ipn
64
- # notify = WirecardCheckoutPageNotification.new(request.raw_post, options)
65
- #
66
- # if notify.acknowledge
67
- # ... process order ... if notify.complete?
68
- # else
69
- # ... log possible hacking attempt ...
70
- # end
71
- def acknowledge
72
- verify_response(params, @options[:secret])
73
- end
74
-
75
- def response(umessage = nil)
76
- if @message || umessage
77
- '<QPAY-CONFIRMATION-RESPONSE result="NOK" message="' + CGI.escapeHTML(umessage ? umessage : @message) + '"/>'
78
- else
79
- '<QPAY-CONFIRMATION-RESPONSE result="OK"/>'
80
- end
81
- end
82
-
83
- def method_missing(method_id, *args)
84
- return params[method_id.to_s] if params.has_key?(method_id.to_s)
85
- end
86
-
87
- private
88
-
89
- # Take the posted data and move the relevant data into a hash
90
- def parse(post)
91
- @raw = post.to_s
92
- for line in @raw.split('&')
93
- key, value = *line.scan( %r{^([A-Za-z0-9_.]+)\=(.*)$} ).flatten
94
- params[key] = CGI.unescape(value)
95
- end
96
- end
97
- end
98
- end
99
- end
100
- end
101
- end
@@ -1,35 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module WirecardCheckoutPage
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- include Common
7
-
8
- def initialize(postdata, options = {})
9
- @params = parse(postdata)
10
- @options = options
11
- verify_response(@params, options[:secret])
12
- end
13
-
14
- def success?
15
- @paymentstate == 'SUCCESS'
16
- end
17
-
18
- def cancelled?
19
- @paymentstate == 'CANCEL'
20
- end
21
-
22
- def pending?
23
- @paymentstate == 'PENDING'
24
- end
25
-
26
- def method_missing(method_id, *args)
27
- return params[method_id.to_s] if params.has_key?(method_id.to_s)
28
- end
29
-
30
- end
31
- end
32
- end
33
- end
34
- end
35
-
@@ -1,34 +0,0 @@
1
- require File.dirname(__FILE__) + '/world_pay/helper.rb'
2
- require File.dirname(__FILE__) + '/world_pay/notification.rb'
3
-
4
- module ActiveMerchant #:nodoc:
5
- module Billing #:nodoc:
6
- module Integrations #:nodoc:
7
- module WorldPay
8
-
9
- mattr_accessor :production_url, :test_url
10
- self.production_url = 'https://secure.worldpay.com/wcc/purchase'
11
- self.test_url = 'https://secure-test.worldpay.com/wcc/purchase'
12
-
13
- def self.service_url
14
- case ActiveMerchant::Billing::Base.integration_mode
15
- when :production
16
- self.production_url
17
- when :test
18
- self.test_url
19
- else
20
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
21
- end
22
- end
23
-
24
- def self.notification(post, options = {})
25
- Notification.new(post, options)
26
- end
27
-
28
- def self.return(post, options = {})
29
- Return.new(post, options)
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,101 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module WorldPay
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- mapping :account, 'instId'
7
- mapping :amount, 'amount'
8
- mapping :order, 'cartId'
9
- mapping :currency, 'currency'
10
-
11
- mapping :customer, :email => 'email',
12
- :phone => 'tel'
13
-
14
- mapping :billing_address, :zip => 'postcode',
15
- :country => 'country'
16
-
17
- mapping :description, 'desc'
18
- mapping :notify_url, 'MC_callback'
19
- mapping :return_url, 'MC_return'
20
-
21
-
22
- # WorldPay supports two different test modes - :always_succeed and :always_fail
23
- def initialize(order, account, options = {})
24
- super
25
-
26
- if ActiveMerchant::Billing::Base.integration_mode == :test || options[:test]
27
- test_mode = case options[:test]
28
- when :always_fail
29
- 101
30
- when false
31
- 0
32
- else
33
- 100
34
- end
35
- add_field('testMode', test_mode.to_s)
36
- elsif ActiveMerchant::Billing::Base.integration_mode == :always_succeed
37
- add_field('testMode', '100')
38
- elsif ActiveMerchant::Billing::Base.integration_mode == :always_fail
39
- add_field('testMode', '101')
40
- end
41
- end
42
-
43
- # WorldPay only supports a single address field so we
44
- # have to concat together - lines are separated using &#10;
45
- def billing_address(params={})
46
- add_field(mappings[:billing_address][:zip], params[:zip])
47
- add_field(mappings[:billing_address][:country], lookup_country_code(params[:country]))
48
-
49
- address = [params[:address1], params[:address2], params[:city], params[:state]].compact
50
- add_field('address', address.join('&#10;'))
51
- end
52
-
53
- # WorldPay only supports a single name field so we have to concat
54
- def customer(params={})
55
- add_field(mappings[:customer][:email], params[:email])
56
- add_field(mappings[:customer][:phone], params[:phone])
57
- add_field('name', "#{params[:first_name]} #{params[:last_name]}")
58
- end
59
-
60
- # Support for a MD5 hash of selected fields to prevent tampering
61
- # For further information read the tech note at the address below:
62
- # http://support.worldpay.com/kb/integration_guides/junior/integration/help/tech_notes/sjig_tn_009.html
63
- def encrypt(secret, fields = [:amount, :currency, :account, :order])
64
- signature_fields = fields.collect{ |field| mappings[field] }
65
- add_field('signatureFields', signature_fields.join(':'))
66
-
67
- field_values = fields.collect{ |field| form_fields[mappings[field]] }
68
- signature = "#{secret}:#{field_values.join(':')}"
69
- add_field('signature', Digest::MD5.hexdigest(signature))
70
- end
71
-
72
- # Add a time window for which the payment can be completed. Read the link below for how they work
73
- # http://support.worldpay.com/kb/integration_guides/junior/integration/help/appendicies/sjig_10100.html
74
- def valid_from(from_time)
75
- add_field('authValidFrom', from_time.to_i.to_s + '000')
76
- end
77
-
78
- def valid_to(to_time)
79
- add_field('authValidTo', to_time.to_i.to_s + '000')
80
- end
81
-
82
- # WorldPay supports the passing of custom parameters prefixed with the following:
83
- # C_ : These parameters can be used in the response pages hosted on WorldPay's site
84
- # M_ : These parameters are passed through to the callback script (if enabled)
85
- # MC_ or CM_ : These parameters are availble both in the response and callback contexts
86
- def response_params(params={})
87
- params.each{|k,v| add_field("C_#{k}",v)}
88
- end
89
-
90
- def callback_params(params={})
91
- params.each{|k,v| add_field("M_#{k}",v)}
92
- end
93
-
94
- def combined_params(params={})
95
- params.each{|k,v| add_field("MC_#{k}",v)}
96
- end
97
- end
98
- end
99
- end
100
- end
101
- end
@@ -1,160 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module WorldPay
5
- class Notification < ActiveMerchant::Billing::Integrations::Notification
6
- def complete?
7
- status == 'Completed'
8
- end
9
-
10
- def account
11
- params['instId']
12
- end
13
-
14
- def item_id
15
- params['cartId']
16
- end
17
-
18
- def transaction_id
19
- params['transId']
20
- end
21
-
22
- # Time this payment was received by the client in UTC time.
23
- def received_at
24
- Time.at(params['transTime'].to_i / 1000).utc
25
- end
26
-
27
- # Callback password set in the WorldPay CMS
28
- def security_key
29
- params['callbackPW']
30
- end
31
-
32
- # the money amount we received in X.2 decimal.
33
- def gross
34
- params['authAmount']
35
- end
36
-
37
- def currency
38
- params['authCurrency']
39
- end
40
-
41
- # Was this a test transaction?
42
- def test?
43
- params.key?('testMode') && params['testMode'] != '0'
44
- end
45
-
46
- def status
47
- params['transStatus'] == 'Y' ? 'Completed' : 'Cancelled'
48
- end
49
-
50
- def name
51
- params['name']
52
- end
53
-
54
- def address
55
- params['address']
56
- end
57
-
58
- def postcode
59
- params['postcode']
60
- end
61
-
62
- def country
63
- params['country']
64
- end
65
-
66
- def phone_number
67
- params['tel']
68
- end
69
-
70
- def fax_number
71
- params['fax']
72
- end
73
-
74
- def email_address
75
- params['email']
76
- end
77
-
78
- def card_type
79
- params['cardType']
80
- end
81
-
82
- # WorldPay extended fraud checks returned as a 4 character string
83
- # 1st char: Credit card CVV check
84
- # 2nd char: Postcode AVS check
85
- # 3rd char: Address AVS check
86
- # 4th char: Country comparison check
87
- # Possible values are:
88
- # :not_supported - 0
89
- # :not_checked - 1
90
- # :matched - 2
91
- # :not_matched - 4
92
- # :partial_match - 8
93
- def cvv_status
94
- return avs_value_to_symbol(params['AVS'][0].chr)
95
- end
96
-
97
- def postcode_status
98
- return avs_value_to_symbol(params['AVS'][1].chr)
99
- end
100
-
101
- def address_status
102
- return avs_value_to_symbol(params['AVS'][2].chr)
103
- end
104
-
105
- def country_status
106
- return avs_value_to_symbol(params['AVS'][3].chr)
107
- end
108
-
109
- def acknowledge(authcode = nil)
110
- return true
111
- end
112
-
113
- # WorldPay supports the passing of custom parameters through to the callback script
114
- def custom_params
115
- return @custom_params ||= read_custom_params
116
- end
117
-
118
-
119
- private
120
-
121
- # Take the posted data and move the relevant data into a hash
122
- def parse(post)
123
- @raw = post
124
- for line in post.split('&')
125
- key, value = *line.scan( %r{^(\w+)\=(.*)$} ).flatten
126
- params[key] = value
127
- end
128
- end
129
-
130
- # Read the custom params into a hash
131
- def read_custom_params
132
- custom = {}
133
- params.each do |key, value|
134
- if /\A(M_|MC_|CM_)/ === key
135
- custom[key.gsub(/\A(M_|MC_|CM_)/, '').to_sym] = value
136
- end
137
- end
138
- custom
139
- end
140
-
141
- # Convert a AVS value to a symbol - see above for more about AVS
142
- def avs_value_to_symbol(value)
143
- case value.to_s
144
- when '8'
145
- :partial_match
146
- when '4'
147
- :no_match
148
- when '2'
149
- :matched
150
- when '1'
151
- :not_checked
152
- else
153
- :not_supported
154
- end
155
- end
156
- end
157
- end
158
- end
159
- end
160
- end