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,38 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module FirstData
5
- autoload :Helper, 'active_merchant/billing/integrations/first_data/helper.rb'
6
- autoload :Notification, 'active_merchant/billing/integrations/first_data/notification.rb'
7
-
8
- # Overwrite this if you want to change the ANS test url
9
- mattr_accessor :test_url
10
- self.test_url = 'https://demo.globalgatewaye4.firstdata.com/payment'
11
-
12
- # Overwrite this if you want to change the ANS production url
13
- mattr_accessor :production_url
14
- self.production_url = 'https://checkout.globalgatewaye4.firstdata.com/payment'
15
-
16
- def self.service_url
17
- mode = ActiveMerchant::Billing::Base.integration_mode
18
- case mode
19
- when :production
20
- self.production_url
21
- when :test
22
- self.test_url
23
- else
24
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
25
- end
26
- end
27
-
28
- def self.notification(post)
29
- Notification.new(post)
30
- end
31
-
32
- def self.return(query_string)
33
- Return.new(query_string)
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,61 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module FirstData
5
- # First Data payment pages emulates the Authorize.Net SIM API. See
6
- # ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Helper for
7
- # more details.
8
- #
9
- # An example. Note the username as a parameter and transaction key you
10
- # will want to use later.
11
- #
12
- # payment_service_for('order_id', 'first_data_payment_page_id', :service => :first_data, :amount => 157.0) do |service|
13
- #
14
- # # You must call setup_hash and invoice
15
- #
16
- # service.setup_hash :transaction_key => '8CP6zJ7uD875J6tY',
17
- # :order_timestamp => 1206836763
18
- # service.customer_id 8
19
- # service.customer :first_name => 'g',
20
- # :last_name => 'g',
21
- # :email => 'g@g.com',
22
- # :phone => '3'
23
- # service.billing_address :zip => 'g',
24
- # :country => 'United States of America',
25
- # :address => 'g'
26
- #
27
- # service.ship_to_address :first_name => 'g',
28
- # :last_name => 'g',
29
- # :city => '',
30
- # :address => 'g',
31
- # :address2 => '',
32
- # :state => address.state,
33
- # :country => 'United States of America',
34
- # :zip => 'g'
35
- #
36
- # service.invoice "516428355" # your invoice number
37
- # # The end-user is presented with the HTML produced by the notify_url
38
- # # (using the First Data Receipt Link feature).
39
- # service.return_url "http://mysite/first_data_receipt_generator_page"
40
- # service.payment_header 'My store name'
41
- # service.add_line_item :name => 'item name', :quantity => 1, :unit_price => 0
42
- # service.test_request 'true' # only if it's just a test
43
- # service.shipping '25.0'
44
- # # Tell it to display a "0" line item for shipping, with the price in
45
- # # the name, otherwise it isn't shown at all, leaving the end user to
46
- # # wonder why the total is different than the sum of the line items.
47
- # service.add_shipping_as_line_item
48
- # server.add_tax_as_line_item # same with tax
49
- # # See the helper.rb file for various custom fields
50
- # end
51
- class Helper < ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Helper
52
- # Configure notify_url to use the "Relay Response" feature
53
- mapping :notify_url, 'x_relay_url'
54
-
55
- # Configure return_url to use the "Receipt Link" feature
56
- mapping :return_url, 'x_receipt_link_url'
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,56 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- # First Data payment pages emulates the Authorize.Net SIM API. See
7
- # ActiveMerchant::Billing::Integrations::FirstData::Notification for
8
- # more details.
9
- #
10
- # # Example:
11
- # parser = FirstData::Notification.new(request.raw_post)
12
- # passed = parser.complete?
13
- #
14
- # order = Order.find_by_order_number(parser.invoice_num)
15
- #
16
- # unless order
17
- # @message = 'Error--unable to find your transaction! Please contact us directly.'
18
- # return render :partial => 'first_data_payment_response'
19
- # end
20
- #
21
- # if order.total != parser.gross.to_f
22
- # logger.error "First Data said they paid for #{parser.gross} and it should have been #{order.total}!"
23
- # passed = false
24
- # end
25
- #
26
- # # Theoretically, First Data will *never* pass us the same transaction
27
- # # ID twice, but we can double check that... by using
28
- # # parser.transaction_id, and checking against previous orders' transaction
29
- # # id's (which you can save when the order is completed)....
30
- # unless parser.acknowledge FIRST_DATA_TRANSACTION_KEY, FIRST_DATA_RESPONSE_KEY
31
- # passed = false
32
- # logger.error "ALERT POSSIBLE FRAUD ATTEMPT"
33
- # end
34
- #
35
- # unless parser.cavv_matches? and parser.avs_code_matches?
36
- # logger.error 'Warning--non matching CC!' + params.inspect
37
- # # Could fail them here, as well (recommended)...
38
- # end
39
- #
40
- # if passed
41
- # # Set up your session, and render something that will redirect them to
42
- # # your site, most likely.
43
- # else
44
- # # Render failure or redirect them to your site where you will render failure
45
- # end
46
-
47
- module FirstData
48
- class Notification < ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Notification
49
- def acknowledge(response_key, payment_page_id)
50
- Digest::MD5.hexdigest(response_key + payment_page_id + params['x_trans_id'] + sprintf('%.2f', gross)) == params['x_MD5_Hash'].downcase
51
- end
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,25 +0,0 @@
1
- # With help from Giovanni Intini and his code for RGestPay - http://medlar.it/it/progetti/rgestpay
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Gestpay
7
- autoload :Return, File.dirname(__FILE__) + '/gestpay/return.rb'
8
- autoload :Common, File.dirname(__FILE__) + '/gestpay/common.rb'
9
- autoload :Helper, File.dirname(__FILE__) + '/gestpay/helper.rb'
10
- autoload :Notification, File.dirname(__FILE__) + '/gestpay/notification.rb'
11
-
12
- mattr_accessor :service_url
13
- self.service_url = 'https://ecomm.sella.it/gestpay/pagam.asp'
14
-
15
- def self.notification(post, options = {})
16
- Notification.new(post)
17
- end
18
-
19
- def self.return(query_string, options = {})
20
- Return.new(query_string)
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,42 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Gestpay
5
- module Common
6
- VERSION = "2.0"
7
- ENCRYPTION_PATH = "/CryptHTTPS/Encrypt.asp"
8
- DECRYPTION_PATH = "/CryptHTTPS/Decrypt.asp"
9
- DELIMITER = '*P1*'
10
-
11
- CURRENCY_MAPPING = {
12
- 'EUR' => '242',
13
- 'ITL' => '18',
14
- 'BRL' => '234',
15
- 'USD' => '1',
16
- 'JPY' => '71',
17
- 'HKD' => '103'
18
- }
19
-
20
- def parse_response(response)
21
- case response
22
- when /#cryptstring#(.*)#\/cryptstring#/, /#decryptstring#(.*)#\/decryptstring#/
23
- $1
24
- when /#error#(.*)#\/error#/
25
- raise StandardError, "An error occurred retrieving the encrypted string from GestPay: #{$1}"
26
- else
27
- raise StandardError, "No response was received by GestPay"
28
- end
29
- end
30
-
31
- def ssl_get(url, path)
32
- uri = URI.parse(url)
33
- site = Net::HTTP.new(uri.host, uri.port)
34
- site.use_ssl = true
35
- site.verify_mode = OpenSSL::SSL::VERIFY_NONE
36
- site.get(path).body
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,70 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Gestpay
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- include Common
7
- # Valid language codes
8
- # Italian => 1
9
- # English => 2
10
- # Spanish => 3
11
- # French => 4
12
- # Tedesco => 5
13
- def initialize(order, account, options = {})
14
- super
15
- add_field('PAY1_IDLANGUAGE', 2)
16
- end
17
-
18
- mapping :account, 'ShopLogin'
19
-
20
- mapping :amount, 'PAY1_AMOUNT'
21
- mapping :currency, 'PAY1_UICCODE'
22
-
23
- mapping :order, 'PAY1_SHOPTRANSACTIONID'
24
-
25
- # Buyer name PAY1_CHNAME
26
- mapping :customer, :email => 'PAY1_CHEMAIL'
27
-
28
- mapping :credit_card, :number => 'PAY1_CARDNUMBER',
29
- :expiry_month => 'PAY1_EXPMONTH',
30
- :expiry_year => 'PAY1_EXPYEAR',
31
- :verification_value => 'PAY1_CVV'
32
-
33
- def customer(params = {})
34
- add_field(mappings[:customer][:email], params[:email])
35
- add_field('PAY1_CHNAME', "#{params[:first_name]} #{params[:last_name]}")
36
- end
37
-
38
- def currency=(currency_code)
39
- code = CURRENCY_MAPPING[currency_code]
40
- raise StandardError, "Invalid currency code #{currency_code} specified" if code.nil?
41
-
42
- add_field(mappings[:currency], code)
43
- end
44
-
45
- def form_fields
46
- @encrypted_data ||= get_encrypted_string
47
-
48
- {
49
- 'a' => @fields['ShopLogin'],
50
- 'b' => @encrypted_data
51
- }
52
- end
53
-
54
- def get_encrypted_string
55
- response = ssl_get(Gestpay.service_url, encryption_query_string)
56
- parse_response(response)
57
- end
58
-
59
- def encryption_query_string
60
- fields = ['PAY1_AMOUNT', 'PAY1_SHOPTRANSACTIONID', 'PAY1_UICCODE']
61
-
62
- encoded_params = fields.collect{ |field| "#{field}=#{CGI.escape(@fields[field])}" }.join(DELIMITER)
63
-
64
- "#{ENCRYPTION_PATH}?a=" + CGI.escape(@fields['ShopLogin']) + "&b=" + encoded_params + "&c=" + CGI.escape(VERSION)
65
- end
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,85 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Gestpay
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- include Common
9
-
10
- def complete?
11
- status == 'Completed'
12
- end
13
-
14
- # The important param
15
- def item_id
16
- params['PAY1_SHOPTRANSACTIONID']
17
- end
18
-
19
- def transaction_id
20
- params['PAY1_BANKTRANSACTIONID']
21
- end
22
-
23
- # the money amount we received in X.2 decimal.
24
- def gross
25
- params['PAY1_AMOUNT']
26
- end
27
-
28
- def currency
29
- # Ruby 1.9 compat
30
- method = CURRENCY_MAPPING.respond_to?(:key) ? :key : :index
31
- CURRENCY_MAPPING.send(method, params['PAY1_UICCODE'])
32
- end
33
-
34
- def test?
35
- false
36
- end
37
-
38
- def status
39
- case params['PAY1_TRANSACTIONRESULT']
40
- when 'OK'
41
- 'Completed'
42
- else
43
- 'Failed'
44
- end
45
- end
46
-
47
- def acknowledge(authcode = nil)
48
- true
49
- end
50
-
51
- private
52
- # Take the posted data and move the relevant data into a hash
53
- def parse(query_string)
54
- @raw = query_string
55
-
56
- return if query_string.blank?
57
- encrypted_params = parse_delimited_string(query_string)
58
-
59
- return if encrypted_params['a'].blank? || encrypted_params['b'].blank?
60
- @params = decrypt_data(encrypted_params['a'], encrypted_params['b'])
61
- end
62
-
63
- def parse_delimited_string(string, delimiter = '&', unencode_cgi = false)
64
- result = {}
65
- for line in string.split(delimiter)
66
- key, value = *line.scan( %r{^(\w+)\=(.*)$} ).flatten
67
- result[key] = unencode_cgi ? CGI.unescape(value) : value
68
- end
69
- result
70
- end
71
-
72
- def decrypt_data(shop_login, encrypted_string)
73
- response = ssl_get(Gestpay.service_url, decryption_query_string(shop_login, encrypted_string))
74
- encoded_response = parse_response(response)
75
- parse_delimited_string(encoded_response, DELIMITER, true)
76
- end
77
-
78
- def decryption_query_string(shop_login, encrypted_string)
79
- "#{DECRYPTION_PATH}?a=" + CGI.escape(shop_login) + "&b=" + encrypted_string + "&c=" + CGI.escape(VERSION)
80
- end
81
- end
82
- end
83
- end
84
- end
85
- end
@@ -1,10 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Gestpay
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- end
7
- end
8
- end
9
- end
10
- end
@@ -1,123 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- class Helper #:nodoc:
5
- attr_reader :fields
6
- class_attribute :service_url
7
- class_attribute :mappings
8
- class_attribute :country_format
9
- self.country_format = :alpha2
10
-
11
- # The application making the calls to the gateway
12
- # Useful for things like the PayPal build notation (BN) id fields
13
- class_attribute :application_id
14
- self.application_id = 'ActiveMerchant'
15
-
16
- def self.inherited(subclass)
17
- subclass.mappings ||= {}
18
- end
19
-
20
- def initialize(order, account, options = {})
21
- options.assert_valid_keys([:amount, :currency, :test, :credential2, :credential3, :credential4, :country, :account_name, :description, :transaction_type, :authcode, :notify_url, :return_url, :redirect_param, :forward_url])
22
- @fields = {}
23
- @raw_html_fields = []
24
- @test = options[:test]
25
- self.order = order
26
- self.account = account
27
- self.amount = options[:amount]
28
- self.currency = options[:currency]
29
- self.credential2 = options[:credential2]
30
- self.credential3 = options[:credential3]
31
- self.credential4 = options[:credential4]
32
- self.notify_url = options[:notify_url]
33
- self.return_url = options[:return_url]
34
- self.redirect_param = options[:redirect_param]
35
- end
36
-
37
- def self.mapping(attribute, options = {})
38
- self.mappings[attribute] = options
39
- end
40
-
41
- def add_field(name, value)
42
- return if name.blank? || value.blank?
43
- @fields[name.to_s] = value.to_s
44
- end
45
-
46
- def add_fields(subkey, params = {})
47
- params.each do |k, v|
48
- field = mappings[subkey][k]
49
- add_field(field, v) unless field.blank?
50
- end
51
- end
52
-
53
- # Add a field that has characters that CGI::escape would mangle. Allows
54
- # for multiple fields with the same name (e.g., to support line items).
55
- def add_raw_html_field(name, value)
56
- return if name.blank? || value.blank?
57
- @raw_html_fields << [name, value]
58
- end
59
-
60
- def raw_html_fields
61
- @raw_html_fields
62
- end
63
-
64
- def billing_address(params = {})
65
- add_address(:billing_address, params)
66
- end
67
-
68
- def shipping_address(params = {})
69
- add_address(:shipping_address, params)
70
- end
71
-
72
- def form_fields
73
- @fields
74
- end
75
-
76
- def test?
77
- @test_mode ||= ActiveMerchant::Billing::Base.integration_mode == :test || @test
78
- end
79
-
80
- def form_method
81
- "POST"
82
- end
83
-
84
- private
85
-
86
- def add_address(key, params)
87
- return if mappings[key].nil?
88
-
89
- code = lookup_country_code(params.delete(:country))
90
- add_field(mappings[key][:country], code)
91
- add_fields(key, params)
92
- end
93
-
94
- def lookup_country_code(name_or_code, format = country_format)
95
- country = Country.find(name_or_code)
96
- country.code(format).to_s
97
- rescue InvalidCountryCodeError
98
- name_or_code
99
- end
100
-
101
- def method_missing(method_id, *args)
102
- method_id = method_id.to_s.gsub(/=$/, '').to_sym
103
- # Return and do nothing if the mapping was not found. This allows
104
- # for easy substitution of the different integrations
105
- return if mappings[method_id].nil?
106
-
107
- mapping = mappings[method_id]
108
-
109
- case mapping
110
- when Array
111
- mapping.each{ |field| add_field(field, args.last) }
112
- when Hash
113
- options = args.last.is_a?(Hash) ? args.pop : {}
114
-
115
- mapping.each{ |key, field| add_field(field, options[key]) }
116
- else
117
- add_field(mapping, args.last)
118
- end
119
- end
120
- end
121
- end
122
- end
123
- end