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,10 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Chronopay
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- end
7
- end
8
- end
9
- end
10
- end
@@ -1,28 +0,0 @@
1
- module ActiveMerchant
2
- module Billing
3
- module Integrations
4
- module Citrus
5
- autoload :Helper, File.dirname(__FILE__) + '/citrus/helper.rb'
6
- autoload :Notification, File.dirname(__FILE__) + '/citrus/notification.rb'
7
- autoload :Return, File.dirname(__FILE__) + '/citrus/return.rb'
8
-
9
- def self.helper(order, account, options = {})
10
- Helper.new(order, account, options)
11
- end
12
-
13
- def self.notification(post, options = {})
14
- Notification.new(post, options)
15
- end
16
-
17
- def self.return(query_string, options = {})
18
- Return.new(query_string, options)
19
- end
20
-
21
- def self.checksum(secret_key, payload_items )
22
- digest = OpenSSL::Digest.new('sha1')
23
- OpenSSL::HMAC.hexdigest(digest, secret_key, payload_items)
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,57 +0,0 @@
1
- module ActiveMerchant
2
- module Billing
3
- module Integrations
4
- module Citrus
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
-
7
- mapping :order, 'merchantTxnId'
8
- mapping :amount, 'orderAmount'
9
- mapping :account, 'merchantAccessKey'
10
- mapping :credential2, 'secret_key'
11
- mapping :credential3, 'pmt_url'
12
- mapping :currency, 'currency'
13
-
14
- mapping :customer, :first_name => 'firstName',:last_name => 'lastName', :email => 'email', :phone => 'mobileNo'
15
-
16
- mapping :billing_address, :city => 'addressCity', :address1 => 'addressStreet1', :address2 => 'addressStreet2',:state => 'addressState',:zip => 'addressZip', :country => 'addressCountry'
17
-
18
- mapping :checksum, 'secSignature'
19
- mapping :return_url, 'returnUrl'
20
-
21
- SANDBOX_URL = 'https://sandbox.citruspay.com/'.freeze
22
- STAGING_URL = 'https://stg.citruspay.com/'.freeze
23
- PRODUCTION_URL = 'https://www.citruspay.com/'.freeze
24
-
25
- def credential_based_url
26
- pmt_url = @fields['pmt_url']
27
- case ActiveMerchant::Billing::Base.integration_mode
28
- when :production
29
- PRODUCTION_URL + pmt_url
30
- when :test
31
- SANDBOX_URL + pmt_url
32
- when :staging
33
- STAGING_URL + pmt_url
34
- else
35
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
36
- end
37
- end
38
-
39
- def initialize(order, account, options = {})
40
- super
41
- add_field 'paymentMode', 'NET_BANKING'
42
- add_field 'reqtime', (Time.now.to_i * 1000).to_s
43
- end
44
-
45
- def form_fields
46
- @fields.merge(mappings[:checksum] => generate_checksum)
47
- end
48
-
49
- def generate_checksum
50
- checksum_fields = @fields["pmt_url"] + @fields["orderAmount"].to_s + @fields["merchantTxnId"] + @fields["currency"]
51
- Citrus.checksum(@fields["secret_key"], checksum_fields )
52
- end
53
- end
54
- end
55
- end
56
- end
57
- end
@@ -1,133 +0,0 @@
1
- module ActiveMerchant
2
- module Billing
3
- module Integrations
4
- module Citrus
5
- class Notification < ActiveMerchant::Billing::Integrations::Notification
6
-
7
- def initialize(post, options = {})
8
- super(post, options)
9
- @secret_key = options[:credential2]
10
- end
11
-
12
- def complete?
13
- status == "Completed" || status == 'Canceled'
14
- end
15
-
16
- def status
17
- @status ||= if checksum_ok?
18
- if transaction_id.blank?
19
- 'Invalid'
20
- else
21
- case transaction_status.downcase
22
- when 'success' then 'Completed'
23
- when 'canceled' then 'Cancelled'
24
- end
25
- end
26
- else
27
- 'Tampered'
28
- end
29
- end
30
-
31
- def invoice_ok?( order_id )
32
- order_id.to_s == invoice.to_s
33
- end
34
-
35
- def amount_ok?( order_amount )
36
- BigDecimal.new( amount ) == order_amount
37
- end
38
-
39
- def item_id
40
- params['TxId']
41
- end
42
-
43
- def invoice
44
- item_id
45
- end
46
-
47
- # Status of transaction return from the Citrus. List of possible values:
48
- # <tt>SUCCESS</tt>::
49
- # <tt>CANCELED</tt>::
50
- def transaction_status
51
- params['TxStatus']
52
- end
53
-
54
- def gross
55
- params['amount']
56
- end
57
-
58
- def amount
59
- gross
60
- end
61
-
62
- def transaction_id
63
- params['pgTxnNo']
64
- end
65
-
66
- def issuerrefno
67
- params['issuerRefNo']
68
- end
69
-
70
- def authidcode
71
- params['authIdCode']
72
- end
73
-
74
- def pgrespcode
75
- params['pgRespCode']
76
- end
77
-
78
- def checksum
79
- params['signature']
80
- end
81
-
82
- def paymentmode
83
- params['paymentMode']
84
- end
85
-
86
- def currency
87
- params['currency']
88
- end
89
-
90
- def customer_email
91
- params['email']
92
- end
93
-
94
- def customer_phone
95
- params['mobileNo']
96
- end
97
-
98
- def customer_first_name
99
- params['firstName']
100
- end
101
-
102
- def customer_last_name
103
- params['lastName']
104
- end
105
-
106
- def customer_address
107
- { :address1 => params['addressStreet1'], :address2 => params['addressStreet2'],
108
- :city => params['addressCity'], :state => params['addressState'],
109
- :country => params['addressCountry'], :zip => params['addressZip'] }
110
- end
111
-
112
- def message
113
- @message || params['TxMsg']
114
- end
115
-
116
- def acknowledge(authcode = nil)
117
- checksum_ok?
118
- end
119
-
120
- def checksum_ok?
121
- fields = [invoice, transaction_status, amount.to_s, transaction_id, issuerrefno, authidcode, customer_first_name, customer_last_name, pgrespcode, customer_address[:zip]].join
122
-
123
- unless Citrus.checksum(@secret_key, fields ) == checksum
124
- @message = 'checksum mismatch...'
125
- return false
126
- end
127
- true
128
- end
129
- end
130
- end
131
- end
132
- end
133
- end
@@ -1,40 +0,0 @@
1
- module ActiveMerchant
2
- module Billing
3
- module Integrations
4
- module Citrus
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
-
7
- def initialize(query_string, options = {})
8
- super
9
- @notification = Notification.new(query_string, options)
10
- end
11
-
12
- def transaction_id
13
- @notification.transaction_id
14
- end
15
-
16
- def status( order_id, order_amount )
17
- if @notification.invoice_ok?( order_id ) && @notification.amount_ok?( BigDecimal.new(order_amount) )
18
- @notification.status
19
- else
20
- 'Mismatch'
21
- end
22
- end
23
-
24
- def success?
25
- status( @params['TxId'], @params['amount'] ) == 'Completed'
26
- end
27
-
28
- def message
29
- @notification.message
30
- end
31
-
32
- def cancelled?
33
- @notification.status == 'Cancelled'
34
- end
35
-
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,41 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module DirecPay
5
- autoload :Helper, File.dirname(__FILE__) + '/direc_pay/helper.rb'
6
- autoload :Return, File.dirname(__FILE__) + '/direc_pay/return.rb'
7
- autoload :Notification, File.dirname(__FILE__) + '/direc_pay/notification.rb'
8
- autoload :Status, File.dirname(__FILE__) + '/direc_pay/status.rb'
9
-
10
- mattr_accessor :production_url, :test_url
11
-
12
- self.production_url = "https://www.timesofmoney.com/direcpay/secure/dpMerchantTransaction.jsp"
13
- self.test_url = "https://test.direcpay.com/direcpay/secure/dpMerchantTransaction.jsp"
14
-
15
- def self.service_url
16
- mode = ActiveMerchant::Billing::Base.integration_mode
17
- case mode
18
- when :production
19
- self.production_url
20
- when :test
21
- self.test_url
22
- else
23
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
24
- end
25
- end
26
-
27
- def self.notification(post, options = {})
28
- Notification.new(post)
29
- end
30
-
31
- def self.return(query_string, options = {})
32
- Return.new(query_string, options)
33
- end
34
-
35
- def self.request_status_update(mid, transaction_id, notification_url)
36
- Status.new(mid).update(transaction_id, notification_url)
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,200 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module DirecPay
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- mapping :account, 'MID'
7
- mapping :order, 'Merchant Order No'
8
- mapping :amount, 'Amount'
9
- mapping :currency, 'Currency'
10
- mapping :country, 'Country'
11
-
12
- mapping :billing_address, :city => 'custCity',
13
- :address1 => 'custAddress',
14
- :state => 'custState',
15
- :zip => 'custPinCode',
16
- :country => 'custCountry',
17
- :phone => 'custMobileNo'
18
-
19
- mapping :shipping_address, :name => 'deliveryName',
20
- :city => 'deliveryCity',
21
- :address1 => 'deliveryAddress',
22
- :state => 'deliveryState',
23
- :zip => 'deliveryPinCode',
24
- :country => 'deliveryCountry',
25
- :phone => 'deliveryMobileNo'
26
-
27
- mapping :customer, :name => 'custName',
28
- :email => 'custEmailId'
29
-
30
- mapping :description, 'otherNotes'
31
- mapping :edit_allowed, 'editAllowed'
32
-
33
- mapping :return_url, 'Success URL'
34
- mapping :failure_url, 'Failure URL'
35
-
36
- mapping :operating_mode, 'Operating Mode'
37
- mapping :other_details, 'Other Details'
38
- mapping :collaborator, 'Collaborator'
39
-
40
- OPERATING_MODE = 'DOM'
41
- COUNTRY = 'IND'
42
- CURRENCY = 'INR'
43
- OTHER_DETAILS = 'NULL'
44
- EDIT_ALLOWED = 'Y'
45
-
46
- PHONE_CODES = {
47
- 'IN' => '91',
48
- 'US' => '01',
49
- 'CA' => '01'
50
- }
51
-
52
- ENCODED_PARAMS = [ :account, :operating_mode, :country, :currency, :amount, :order, :other_details, :return_url, :failure_url, :collaborator ]
53
-
54
-
55
- def initialize(order, account, options = {})
56
- super
57
- collaborator = ActiveMerchant::Billing::Base.integration_mode == :test || options[:test] ? 'TOML' : 'DirecPay'
58
- add_field(mappings[:collaborator], collaborator)
59
- add_field(mappings[:country], 'IND')
60
- add_field(mappings[:operating_mode], OPERATING_MODE)
61
- add_field(mappings[:other_details], OTHER_DETAILS)
62
- add_field(mappings[:edit_allowed], EDIT_ALLOWED)
63
- end
64
-
65
-
66
- def customer(params = {})
67
- add_field(mappings[:customer][:name], full_name(params))
68
- add_field(mappings[:customer][:email], params[:email])
69
- end
70
-
71
- # Need to format the amount to have 2 decimal places
72
- def amount=(money)
73
- cents = money.respond_to?(:cents) ? money.cents : money
74
- if money.is_a?(String) or cents.to_i <= 0
75
- raise ArgumentError, 'money amount must be either a Money object or a positive integer in cents.'
76
- end
77
- add_field(mappings[:amount], sprintf("%.2f", cents.to_f/100))
78
- end
79
-
80
- def shipping_address(params = {})
81
- super(update_address(:shipping_address, params))
82
- end
83
-
84
- def billing_address(params = {})
85
- super(update_address(:billing_address, params))
86
- end
87
-
88
- def form_fields
89
- add_failure_url
90
- add_request_parameters
91
-
92
- unencoded_parameters
93
- end
94
-
95
-
96
- private
97
-
98
- def add_request_parameters
99
- params = ENCODED_PARAMS.map{ |param| fields[mappings[param]] }
100
- encoded = encode_value(params.join('|'))
101
-
102
- add_field('requestparameter', encoded)
103
- end
104
-
105
- def unencoded_parameters
106
- params = fields.dup
107
- # remove all encoded params from exported fields
108
- ENCODED_PARAMS.each{ |param| params.delete(mappings[param]) }
109
- # remove all special characters from each field value
110
- params = params.collect{|name, value| [name, remove_special_characters(value)] }
111
- Hash[params]
112
- end
113
-
114
- def add_failure_url
115
- if fields[mappings[:failure_url]].nil?
116
- add_field(mappings[:failure_url], fields[mappings[:return_url]])
117
- end
118
- end
119
-
120
- def update_address(address_type, params)
121
- params = params.dup
122
- address = params[:address1]
123
- address = "#{address} #{params[:address2]}" if params[:address2].present?
124
- address = "#{params[:company]} #{address}" if params[:company].present?
125
- params[:address1] = address
126
-
127
- params[:phone] = normalize_phone_number(params[:phone])
128
- add_land_line_phone_for(address_type, params)
129
-
130
- if address_type == :shipping_address
131
- shipping_name = full_name(params) || fields[mappings[:customer][:name]]
132
- add_field(mappings[:shipping_address][:name], shipping_name)
133
- end
134
- params
135
- end
136
-
137
- # Split a single phone number into the country code, area code and local number as best as possible
138
- def add_land_line_phone_for(address_type, params)
139
- address_field = address_type == :billing_address ? 'custPhoneNo' : 'deliveryPhNo'
140
-
141
- if params.has_key?(:phone2)
142
- phone = normalize_phone_number(params[:phone2])
143
- phone_country_code, phone_area_code, phone_number = nil
144
-
145
- if params[:country] == 'IN' && phone =~ /(91)? *(\d{3}) *(\d{4,})$/
146
- phone_country_code, phone_area_code, phone_number = $1, $2, $3
147
- else
148
- numbers = phone.split(' ')
149
- case numbers.size
150
- when 3
151
- phone_country_code, phone_area_code, phone_number = numbers
152
- when 2
153
- phone_area_code, phone_number = numbers
154
- else
155
- phone =~ /(\d{3})(\d+)$/
156
- phone_area_code, phone_number = $1, $2
157
- end
158
- end
159
-
160
- add_field("#{address_field}1", phone_country_code || phone_code_for_country(params[:country]) || '91')
161
- add_field("#{address_field}2", phone_area_code)
162
- add_field("#{address_field}3", phone_number)
163
- end
164
- end
165
-
166
- def normalize_phone_number(phone)
167
- phone.gsub(/[^\d ]+/, '') if phone
168
- end
169
-
170
- # Special characters are NOT allowed while posting transaction parameters on DirecPay system
171
- def remove_special_characters(string)
172
- string.gsub(/[~"'&#%]/, '-')
173
- end
174
-
175
- def encode_value(value)
176
- encoded = Base64.strict_encode64(value)
177
- string_to_encode = encoded[0, 1] + "T" + encoded[1, encoded.length]
178
- Base64.strict_encode64(string_to_encode)
179
- end
180
-
181
- def decode_value(value)
182
- decoded = Base64.decode64(value)
183
- string_to_decode = decoded[0, 1] + decoded[2, decoded.length]
184
- Base64.decode64(string_to_decode)
185
- end
186
-
187
- def phone_code_for_country(country)
188
- PHONE_CODES[country]
189
- end
190
-
191
- def full_name(params)
192
- return if params[:name].blank? && params[:first_name].blank? && params[:last_name].blank?
193
-
194
- params[:name] || "#{params[:first_name]} #{params[:last_name]}"
195
- end
196
- end
197
- end
198
- end
199
- end
200
- end