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,76 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module DirecPay
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- RESPONSE_PARAMS = ['DirecPay Reference ID', 'Flag', 'Country', 'Currency', 'Other Details', 'Merchant Order No', 'Amount']
9
-
10
- def acknowledge(authcode = nil)
11
- true
12
- end
13
-
14
- def complete?
15
- status == 'Completed' || status == 'Pending'
16
- end
17
-
18
- def status
19
- case params['Flag']
20
- when 'SUCCESS'
21
- 'Completed'
22
- when 'PENDING'
23
- 'Pending'
24
- when 'FAIL'
25
- 'Failed'
26
- else
27
- 'Error'
28
- end
29
- end
30
-
31
- def item_id
32
- params['Merchant Order No']
33
- end
34
-
35
- def transaction_id
36
- params['DirecPay Reference ID']
37
- end
38
-
39
- # the money amount we received in X.2 decimal
40
- def gross
41
- params['Amount']
42
- end
43
-
44
- def currency
45
- params['Currency']
46
- end
47
-
48
- def country
49
- params['Country']
50
- end
51
-
52
- def other_details
53
- params['Other Details']
54
- end
55
-
56
- def test?
57
- false
58
- end
59
-
60
- # Take the posted data and move the relevant data into a hash
61
- def parse(post)
62
- super
63
-
64
- values = params['responseparams'].to_s.split('|')
65
- response_params = values.size == 3 ? ['DirecPay Reference ID', 'Flag', 'Error message'] : RESPONSE_PARAMS
66
- response_params.each_with_index do |name, index|
67
- params[name] = values[index]
68
- end
69
- params
70
- end
71
-
72
- end
73
- end
74
- end
75
- end
76
- end
@@ -1,32 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
-
5
- module DirecPay
6
- class Return < ActiveMerchant::Billing::Integrations::Return
7
-
8
- def initialize(post_data, options = {})
9
- @notification = Notification.new(treat_failure_as_pending(post_data), options)
10
- end
11
-
12
- def success?
13
- notification.complete?
14
- end
15
-
16
- def message
17
- notification.status
18
- end
19
-
20
-
21
- private
22
-
23
- # Work around the issue that the initial return from DirecPay is always either SUCCESS or FAIL, there is no PENDING
24
- def treat_failure_as_pending(post_data)
25
- post_data.sub(/FAIL/, 'PENDING')
26
- end
27
- end
28
- end
29
-
30
- end
31
- end
32
- end
@@ -1,37 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module DirecPay
5
-
6
- class Status
7
- include PostsData
8
-
9
- STATUS_TEST_URL = 'https://test.direcpay.com/direcpay/secure/dpMerchantTransaction.jsp'
10
- STATUS_LIVE_URL = 'https://www.timesofmoney.com/direcpay/secure/dpPullMerchAtrnDtls.jsp'
11
-
12
- attr_reader :account, :options
13
-
14
- def initialize(account, options = {})
15
- @account, @options = account, options
16
- end
17
-
18
-
19
- # Use this method to manually request a status update to the provided notification_url
20
- def update(authorization, notification_url)
21
- url = test? ? STATUS_TEST_URL : STATUS_LIVE_URL
22
- parameters = [ authorization, account, notification_url ]
23
- data = PostData.new
24
- data[:requestparams] = parameters.join('|')
25
-
26
- response = ssl_get("#{url}?#{data.to_post_data}")
27
- end
28
-
29
- def test?
30
- ActiveMerchant::Billing::Base.integration_mode == :test || options[:test]
31
- end
32
-
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,47 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Directebanking
5
- autoload :Return, File.dirname(__FILE__) + '/directebanking/return.rb'
6
- autoload :Helper, File.dirname(__FILE__) + '/directebanking/helper.rb'
7
- autoload :Notification, File.dirname(__FILE__) + '/directebanking/notification.rb'
8
-
9
- # Supported countries:
10
- # Germany - DE
11
- # Austria - AT
12
- # Belgium - BE
13
- # Netherlands - NL
14
- # Switzerland - CH
15
- # Great Britain - GB
16
-
17
- # Overwrite this if you want to change the directebanking test url
18
- mattr_accessor :test_url
19
- self.test_url = 'https://www.directebanking.com/payment/start'
20
-
21
- # Overwrite this if you want to change the directebanking production url
22
- mattr_accessor :production_url
23
- self.production_url = 'https://www.directebanking.com/payment/start'
24
-
25
- def self.service_url
26
- mode = ActiveMerchant::Billing::Base.integration_mode
27
- case mode
28
- when :production
29
- self.production_url
30
- when :test
31
- self.test_url
32
- else
33
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
34
- end
35
- end
36
-
37
- def self.notification(post, options = {})
38
- Notification.new(post, options)
39
- end
40
-
41
- def self.return(post, options = {})
42
- Return.new(post, options)
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,90 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Directebanking
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
-
7
- # All credentials are mandatory and need to be set
8
- #
9
- # credential1: User ID
10
- # credential2: Project ID
11
- # credential3: Project Password (Algorithm: SH1)
12
- # credential4: Notification Password (Algorithm: SH1)
13
- def initialize(order, account, options = {})
14
- super
15
- add_field('user_variable_0', order)
16
- add_field('project_id', options[:credential2])
17
- @project_password = options[:credential3]
18
- end
19
-
20
- SIGNATURE_FIELDS = [
21
- :user_id,
22
- :project_id,
23
- :sender_holder,
24
- :sender_account_number,
25
- :sender_bank_code,
26
- :sender_country_id,
27
- :amount,
28
- :currency_id,
29
- :reason_1,
30
- :reason_2,
31
- :user_variable_0,
32
- :user_variable_1,
33
- :user_variable_2,
34
- :user_variable_3,
35
- :user_variable_4,
36
- :user_variable_5
37
- ]
38
-
39
- SIGNATURE_IGNORE_AT_METHOD_CREATION_FIELDS = [
40
- :user_id,
41
- :amount,
42
- :project_id,
43
- :currency_id,
44
- :user_variable_0,
45
- :user_variable_1,
46
- :user_variable_2,
47
- :user_variable_3
48
- ]
49
-
50
- SIGNATURE_FIELDS.each do |key|
51
- if !SIGNATURE_IGNORE_AT_METHOD_CREATION_FIELDS.include?(key)
52
- mapping "#{key}".to_sym, "#{key.to_s}"
53
- end
54
- end
55
-
56
- # Need to format the amount to have 2 decimal places
57
- def amount=(money)
58
- cents = money.respond_to?(:cents) ? money.cents : money
59
- if money.is_a?(String) or cents.to_i <= 0
60
- raise ArgumentError, 'money amount must be either a Money object or a positive integer in cents.'
61
- end
62
- add_field mappings[:amount], sprintf("%.2f", cents.to_f/100)
63
- end
64
-
65
- def generate_signature_string
66
- # format of signature: user_id|project_id|sender_holder|sender_account_number|sender_bank_code| sender_country_id|amount|currency_id|reason_1|reason_2|user_variable_0|user_variable_1|user_variable_2|user_variable_3|user_variable_4|user_variable_5|project_password
67
- SIGNATURE_FIELDS.map {|key| @fields[key.to_s]} * "|" + "|#{@project_password}"
68
- end
69
-
70
- def generate_signature
71
- Digest::SHA1.hexdigest(generate_signature_string)
72
- end
73
-
74
- def form_fields
75
- @fields.merge('hash' => generate_signature)
76
- end
77
-
78
- mapping :account, 'user_id'
79
- mapping :amount, 'amount'
80
- mapping :currency, 'currency_id'
81
- mapping :description, 'reason_1'
82
-
83
- mapping :return_url, 'user_variable_1'
84
- mapping :cancel_return_url, 'user_variable_2'
85
- mapping :notify_url, 'user_variable_3'
86
- end
87
- end
88
- end
89
- end
90
- end
@@ -1,120 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Directebanking
5
- class Notification < ActiveMerchant::Billing::Integrations::Notification
6
-
7
- def initialize(data, options)
8
- if options[:credential4].nil?
9
- raise ArgumentError, "You need to provide the notification password (SH1) as the option :credential4 to verify that the notification originated from Directebanking (Payment Networks AG)"
10
- end
11
- super
12
- end
13
-
14
- def complete?
15
- status == 'Completed'
16
- end
17
-
18
- def item_id
19
- params['user_variable_0']
20
- end
21
-
22
- def transaction_id
23
- params['transaction']
24
- end
25
-
26
- # When was this payment received by the client.
27
- def received_at
28
- Time.parse(params['created']) if params['created']
29
- end
30
-
31
- # the money amount we received in X.2 decimal.
32
- def gross
33
- "%.2f" % params['amount'].to_f
34
- end
35
-
36
- def status
37
- 'Completed'
38
- end
39
-
40
- def currency
41
- params['currency_id']
42
- end
43
-
44
- def test?
45
- params['sender_bank_name'] == 'Testbank'
46
- end
47
-
48
- # for verifying the signature of the URL parameters
49
- PAYMENT_HOOK_SIGNATURE_FIELDS = [
50
- :transaction,
51
- :user_id,
52
- :project_id,
53
- :sender_holder,
54
- :sender_account_number,
55
- :sender_bank_code,
56
- :sender_bank_name,
57
- :sender_bank_bic,
58
- :sender_iban,
59
- :sender_country_id,
60
- :recipient_holder,
61
- :recipient_account_number,
62
- :recipient_bank_code,
63
- :recipient_bank_name,
64
- :recipient_bank_bic,
65
- :recipient_iban,
66
- :recipient_country_id,
67
- :international_transaction,
68
- :amount,
69
- :currency_id,
70
- :reason_1,
71
- :reason_2,
72
- :security_criteria,
73
- :user_variable_0,
74
- :user_variable_1,
75
- :user_variable_2,
76
- :user_variable_3,
77
- :user_variable_4,
78
- :user_variable_5,
79
- :created
80
- ]
81
-
82
- PAYMENT_HOOK_IGNORE_AT_METHOD_CREATION_FIELDS = [
83
- :transaction,
84
- :amount,
85
- :currency_id,
86
- :user_variable_0,
87
- :user_variable_1,
88
- :user_variable_2,
89
- :user_variable_3,
90
- :created
91
- ]
92
-
93
- # Provide access to raw fields
94
- PAYMENT_HOOK_SIGNATURE_FIELDS.each do |key|
95
- if !PAYMENT_HOOK_IGNORE_AT_METHOD_CREATION_FIELDS.include?(key)
96
- define_method(key.to_s) do
97
- params[key.to_s]
98
- end
99
- end
100
- end
101
-
102
- def generate_signature_string
103
- #format is: transaction|user_id|project_id|sender_holder|sender_account_number|sender_bank_code|sender_bank_name|sender_bank_bic|sender_iban|sender_country_id|recipient_holder|recipient_account_number|recipient_bank_code|recipient_bank_name|recipient_bank_bic|recipient_iban|recipient_country_id|international_transaction|amount|currency_id|reason_1|reason_2|security_criteria|user_variable_0|user_variable_1|user_variable_2|user_variable_3|user_variable_4|user_variable_5|created|notification_password
104
- PAYMENT_HOOK_SIGNATURE_FIELDS.map {|key| params[key.to_s]} * "|" + "|#{@options[:credential4]}"
105
- end
106
-
107
- def generate_signature
108
- Digest::SHA1.hexdigest(generate_signature_string)
109
- end
110
-
111
- def acknowledge(authcode = nil)
112
- # signature_is_valid?
113
- generate_signature.to_s == params['hash'].to_s
114
- end
115
-
116
- end
117
- end
118
- end
119
- end
120
- end
@@ -1,11 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Directebanking
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- end
7
- end
8
- end
9
- end
10
- end
11
-
@@ -1,24 +0,0 @@
1
- require File.dirname(__FILE__) + '/doku/helper.rb'
2
- require File.dirname(__FILE__) + '/doku/notification.rb'
3
-
4
- module ActiveMerchant #:nodoc:
5
- module Billing #:nodoc:
6
- module Integrations #:nodoc:
7
- module Doku
8
-
9
- def self.service_url
10
- 'https://apps.myshortcart.com/payment/request-payment/'
11
- end
12
-
13
- def self.notification(post, options = {})
14
- Notification.new(post, options)
15
- end
16
-
17
- def self.return(post, options = {})
18
- Return.new(post, options)
19
- end
20
-
21
- end
22
- end
23
- end
24
- end
@@ -1,102 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Doku
5
-
6
- # # Example.
7
- #
8
- # payment_service_for('ORDER_ID', 'DOKU_STORE_ID', :service => :doku, :amount => 155_000, :shared_key => 'DOKU_SHARED_KEY') do |service|
9
- #
10
- # service.customer :name => 'Ismail Danuarta',
11
- # :email => 'ismail.danuarta@gmail.com',
12
- # :mobile_phone => '085779280093',
13
- # :working_phone => '0215150555',
14
- # :home_phone => '0215150555',
15
- # :birth_date => '1991-09-11'
16
- #
17
- # service.billing_address :city => 'Jakarta Selatan',
18
- # :address => 'Jl. Jendral Sudirman kav 59, Plaza Asia Office Park Unit 3',
19
- # :state => 'DKI Jakarta',
20
- # :zip => '12190',
21
- # :country => 'ID'
22
-
23
- # service.shipping_address :city => 'Jakarta',
24
- # :address => 'Jl. Jendral Sudirman kav 59, Plaza Asia Office Park Unit 3',
25
- # :state => 'DKI Jakarta',
26
- # :zip => '12190',
27
- # :country => 'ID'
28
- #
29
- # service.url 'http://yourstore.com'
30
- #
31
- # end
32
- #
33
-
34
- class Helper < ActiveMerchant::Billing::Integrations::Helper
35
- def initialize(order, account, options = {})
36
- @shared_key = options.delete(:credential2)
37
- @transidmerchant = order
38
- super
39
- end
40
-
41
- def form_fields
42
- add_field 'WORDS', words
43
- add_field 'BASKET', basket
44
- add_field 'TRANSIDMERCHANT', @transidmerchant
45
- @fields
46
- end
47
-
48
- def customer(params = {})
49
- add_field mappings[:customer][:name], "#{params[:first_name]} #{params[:last_name]}"
50
- add_field mappings[:customer][:email], params[:email]
51
- add_field mappings[:customer][:phone], params[:phone]
52
- add_field mappings[:customer][:mobile_phone], params[:mobile_phone]
53
- add_field mappings[:customer][:working_phone], params[:working_phone]
54
- add_field mappings[:customer][:birth_date], params[:birth_date]
55
- end
56
-
57
- mapping :account, 'STOREID'
58
- mapping :amount, 'AMOUNT'
59
- mapping :cancel_return_url, 'URL'
60
-
61
-
62
- mapping :customer, :name => 'CNAME',
63
- :email => 'CEMAIL',
64
- :phone => 'CHPHONE',
65
- :mobile_phone => 'CMPHONE',
66
- :working_phone => 'CWPHONE',
67
- :birth_date => 'BIRTHDATE'
68
-
69
- mapping :billing_address, :city => 'CCITY',
70
- :address1 => 'CADDRESS',
71
- :state => 'CSTATE',
72
- :zip => 'CZIPCODE',
73
- :country => 'CCOUNTRY'
74
-
75
- mapping :shipping_address, :city => 'SCITY',
76
- :address1 => 'SADDRESS',
77
- :state => 'SSTATE',
78
- :zip => 'SZIPCODE',
79
- :country => 'SCOUNTRY'
80
- private
81
-
82
- def basket
83
- "Checkout #{@transidmerchant},#{@fields['AMOUNT']},1,#{@fields['AMOUNT']}"
84
- end
85
-
86
- def words
87
- @words ||= Digest::SHA1.hexdigest("#{ @fields['AMOUNT'] }#{ @shared_key }#{ @transidmerchant }")
88
- end
89
-
90
- def add_address(key, params)
91
- return if mappings[key].nil?
92
-
93
- code = lookup_country_code(params.delete(:country), :numeric)
94
- add_field(mappings[key][:country], code)
95
- add_fields(key, params)
96
- end
97
-
98
- end
99
- end
100
- end
101
- end
102
- end