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,29 +0,0 @@
1
- require "digest/sha1"
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Ipay88
7
- class Return < ActiveMerchant::Billing::Integrations::Return
8
-
9
- def initialize(query_string, options = {})
10
- super
11
- @notification = Notification.new(query_string, options)
12
- end
13
-
14
- def success?
15
- params["Status"] == "1"
16
- end
17
-
18
- def cancelled?
19
- params["ErrDesc"] == 'Customer Cancel Transaction'
20
- end
21
-
22
- def message
23
- params["ErrDesc"]
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,71 +0,0 @@
1
- require File.dirname(__FILE__) + '/klarna/helper.rb'
2
- require File.dirname(__FILE__) + '/klarna/notification.rb'
3
- require 'digest'
4
-
5
- module ActiveMerchant #:nodoc:
6
- module Billing #:nodoc:
7
- module Integrations #:nodoc:
8
- module Klarna
9
- mattr_accessor :service_url
10
- self.service_url = 'https://api.hostedcheckout.io/api/v1/checkout'
11
-
12
- def self.notification(post_body, options = {})
13
- Notification.new(post_body, options)
14
- end
15
-
16
- def self.return(query_string, options = {})
17
- Return.new(query_string, options)
18
- end
19
-
20
- def self.cart_items_payload(fields, cart_items)
21
- check_required_fields!(fields)
22
-
23
- payload = fields['purchase_country'].to_s +
24
- fields['purchase_currency'].to_s +
25
- fields['locale'].to_s
26
-
27
- cart_items.each_with_index do |item, i|
28
- payload << fields["cart_item-#{i}_type"].to_s +
29
- fields["cart_item-#{i}_reference"].to_s +
30
- fields["cart_item-#{i}_quantity"].to_s +
31
- fields["cart_item-#{i}_unit_price"].to_s +
32
- fields.fetch("cart_item-#{i}_discount_rate", '').to_s
33
- end
34
-
35
- payload << fields['merchant_id'].to_s +
36
- fields['merchant_terms_uri'].to_s +
37
- fields['merchant_checkout_uri'].to_s +
38
- fields['merchant_base_uri'].to_s +
39
- fields['merchant_confirmation_uri'].to_s
40
-
41
- payload
42
- end
43
-
44
- def self.sign(fields, cart_items, shared_secret)
45
- payload = cart_items_payload(fields, cart_items)
46
-
47
- digest(payload, shared_secret)
48
- end
49
-
50
- def self.digest(payload, shared_secret)
51
- Digest::SHA256.base64digest(payload + shared_secret.to_s)
52
- end
53
-
54
- private
55
-
56
- def self.check_required_fields!(fields)
57
- %w(purchase_country
58
- purchase_currency
59
- locale
60
- merchant_id
61
- merchant_terms_uri
62
- merchant_checkout_uri
63
- merchant_base_uri
64
- merchant_confirmation_uri).each do |required_field|
65
- raise ArgumentError, "Missing required field #{required_field}" if fields[required_field].nil?
66
- end
67
- end
68
- end
69
- end
70
- end
71
- end
@@ -1,123 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Klarna
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- mapping :currency, 'purchase_currency'
7
- mapping :cancel_return_url, ['merchant_terms_uri', 'merchant_checkout_uri', 'merchant_base_uri']
8
- mapping :account, 'merchant_id'
9
- mapping :customer, email: 'shipping_address_email'
10
-
11
- def initialize(order, account, options = {})
12
- super
13
- @shared_secret = options[:credential2]
14
- @order = order
15
-
16
- add_field('platform_type', application_id)
17
- add_field('test_mode', test?)
18
- end
19
-
20
- def notify_url(url)
21
- url = append_order_query_param(url)
22
- add_field('merchant_push_uri', url)
23
- end
24
-
25
- def return_url(url)
26
- url = append_order_query_param(url)
27
- add_field('merchant_confirmation_uri', url)
28
- end
29
-
30
- def line_item(item)
31
- @line_items ||= []
32
- @line_items << item
33
-
34
- i = @line_items.size - 1
35
-
36
- add_field("cart_item-#{i}_type", item.fetch(:type, ''))
37
- add_field("cart_item-#{i}_reference", item.fetch(:reference, ''))
38
- add_field("cart_item-#{i}_name", item.fetch(:name, ''))
39
- add_field("cart_item-#{i}_quantity", item.fetch(:quantity, ''))
40
- add_field("cart_item-#{i}_unit_price", tax_included_unit_price(item)).to_s
41
- add_field("cart_item-#{i}_discount_rate", item.fetch(:discount_rate, ''))
42
- add_field("cart_item-#{i}_tax_rate", tax_rate_for(item)).to_s
43
-
44
- @fields
45
- end
46
-
47
- def billing_address(billing_fields)
48
- country = billing_fields[:country]
49
-
50
- add_field('purchase_country', country)
51
- add_field('locale', guess_locale_based_on_country(country))
52
- end
53
-
54
- def shipping_address(shipping_fields)
55
- add_field('shipping_address_given_name', shipping_fields[:first_name])
56
- add_field('shipping_address_family_name', shipping_fields[:last_name])
57
-
58
- street_address = [shipping_fields[:address1], shipping_fields[:address2]].compact.join(', ')
59
- add_field('shipping_address_street_address', street_address)
60
-
61
- add_field('shipping_address_postal_code', shipping_fields[:zip])
62
- add_field('shipping_address_city', shipping_fields[:city])
63
- add_field('shipping_address_country', shipping_fields[:country])
64
- add_field('shipping_address_phone', shipping_fields[:phone])
65
- end
66
-
67
- def form_fields
68
- sign_fields
69
-
70
- super
71
- end
72
-
73
- def sign_fields
74
- merchant_digest = Klarna.sign(@fields, @line_items, @shared_secret)
75
- add_field('merchant_digest', merchant_digest)
76
- end
77
-
78
- private
79
-
80
- def append_order_query_param(url)
81
- u = URI.parse(url)
82
- params = Rack::Utils.parse_nested_query(u.query)
83
- params["order"] = @order
84
- u.query = params.to_query
85
-
86
- u.to_s
87
- end
88
-
89
- def guess_locale_based_on_country(country_code)
90
- case country_code
91
- when /no/i
92
- "nb-no"
93
- when /fi/i
94
- "fi-fi"
95
- when /se/i
96
- "sv-se"
97
- else
98
- "sv-se"
99
- end
100
- end
101
-
102
- def tax_included_unit_price(item)
103
- item.fetch(:unit_price, '').to_i + item.fetch(:tax_amount, '').to_i
104
- end
105
-
106
- def tax_rate_for(item)
107
- subtotal_price = item.fetch(:unit_price, 0).to_f * item.fetch(:quantity, 0).to_i
108
- tax_amount = item.fetch(:tax_amount, 0).to_f
109
-
110
- tax_rate = tax_amount / subtotal_price
111
- tax_rate = tax_rate.round(4)
112
-
113
- percentage_to_two_decimal_precision_whole_number(tax_rate)
114
- end
115
-
116
- def percentage_to_two_decimal_precision_whole_number(percentage)
117
- (percentage * 10000).to_i
118
- end
119
- end
120
- end
121
- end
122
- end
123
- end
@@ -1,103 +0,0 @@
1
- require 'net/http'
2
- require 'json'
3
-
4
- module ActiveMerchant #:nodoc:
5
- module Billing #:nodoc:
6
- module Integrations #:nodoc:
7
- module Klarna
8
- class Notification < ActiveMerchant::Billing::Integrations::Notification
9
- def initialize(post, options = {})
10
- super
11
- @shared_secret = @options[:credential2]
12
- end
13
-
14
- def complete?
15
- status == 'Completed'
16
- end
17
-
18
- def item_id
19
- order
20
- end
21
-
22
- def transaction_id
23
- params["reference"]
24
- end
25
-
26
- def received_at
27
- params["completed_at"]
28
- end
29
-
30
- def payer_email
31
- params["billing_address"]["email"]
32
- end
33
-
34
- def receiver_email
35
- params["shipping_address"]["email"]
36
- end
37
-
38
- def currency
39
- params["purchase_currency"].upcase
40
- end
41
-
42
- def gross
43
- amount = Float(gross_cents) / 100
44
- sprintf("%.2f", amount)
45
- end
46
-
47
- def gross_cents
48
- params["cart"]["total_price_including_tax"]
49
- end
50
-
51
- def status
52
- case params['status']
53
- when 'checkout_complete'
54
- 'Completed'
55
- else
56
- params['status']
57
- end
58
- end
59
-
60
- def acknowledge(authcode = nil)
61
- Verifier.new(@options[:authorization_header], @raw, @shared_secret).verify
62
- end
63
-
64
- private
65
-
66
- def order
67
- query = Rack::Utils.parse_nested_query(@options[:query_string])
68
- query["order"]
69
- end
70
-
71
- def parse(post)
72
- @raw = post.to_s
73
- @params = JSON.parse(post)
74
- end
75
-
76
- class Verifier
77
- attr_reader :header, :payload, :digest, :shared_secret
78
- def initialize(header, payload, shared_secret)
79
- @header, @payload, @shared_secret = header, payload, shared_secret
80
-
81
- @digest = extract_digest
82
- end
83
-
84
- def verify
85
- digest_matches?
86
- end
87
-
88
- private
89
-
90
- def extract_digest
91
- match = header.match(/^Klarna (?<digest>.+)$/)
92
- match && match[:digest]
93
- end
94
-
95
- def digest_matches?
96
- Klarna.digest(payload, shared_secret) == digest
97
- end
98
- end
99
- end
100
- end
101
- end
102
- end
103
- end
@@ -1,30 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- # Documentation: https://www.liqpay.com/?do=pages&p=cnb10
5
- module Liqpay
6
- autoload :Helper, File.dirname(__FILE__) + '/liqpay/helper.rb'
7
- autoload :Notification, File.dirname(__FILE__) + '/liqpay/notification.rb'
8
- autoload :Return, File.dirname(__FILE__) + '/liqpay/return.rb'
9
-
10
- mattr_accessor :service_url
11
- self.service_url = 'https://liqpay.com/?do=clickNbuy'
12
-
13
- mattr_accessor :signature_parameter_name
14
- self.signature_parameter_name = 'signature'
15
-
16
- def self.helper(order, account, options = {})
17
- Helper.new(order, account, options)
18
- end
19
-
20
- def self.notification(query_string, options = {})
21
- Notification.new(query_string, options)
22
- end
23
-
24
- def self.return(query_string)
25
- Return.new(query_string)
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,43 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Liqpay
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- def initialize(order, account, options = {})
7
- @secret = options.delete(:secret)
8
- super
9
-
10
- add_field 'version', '1.2'
11
- end
12
-
13
- def form_fields
14
- xml = "<request>
15
- <version>1.2</version>
16
- <result_url>#{@fields["result_url"]}</result_url>
17
- <server_url>#{@fields["server_url"]}</server_url>
18
- <merchant_id>#{@fields["merchant_id"]}</merchant_id>
19
- <order_id>#{@fields["order_id"]}</order_id>
20
- <amount>#{@fields["amount"]}</amount>
21
- <currency>#{@fields["currency"]}</currency>
22
- <description>#{@fields["description"]}</description>
23
- <default_phone>#{@fields["default_phone"]}</default_phone>
24
- <pay_way>card</pay_way>
25
- </request>".strip
26
- sign = Base64.encode64(Digest::SHA1.digest("#{@secret}#{xml}#{@secret}")).strip
27
- {"operation_xml" => Base64.encode64(xml), "signature" => sign}
28
- end
29
-
30
- mapping :account, 'merchant_id'
31
- mapping :amount, 'amount'
32
- mapping :currency, 'currency'
33
- mapping :order, 'order_id'
34
- mapping :description, 'description'
35
- mapping :phone, 'default_phone'
36
-
37
- mapping :notify_url, 'server_url'
38
- mapping :return_url, 'result_url'
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,89 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Liqpay
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- def self.recognizes?(params)
9
- params.has_key?('amount') && params.has_key?('order_id')
10
- end
11
-
12
- def initialize(post, options = {})
13
- raise ArgumentError if post.blank?
14
- super
15
- @params.merge!(Hash.from_xml(Base64.decode64(xml))["response"])
16
- end
17
-
18
- def xml
19
- @params["operation_xml"]
20
- end
21
-
22
- def complete?
23
- status == 'success'
24
- end
25
-
26
- def account
27
- params['merchant_id']
28
- end
29
-
30
- def amount
31
- BigDecimal.new(gross)
32
- end
33
-
34
- def item_id
35
- params['order_id']
36
- end
37
-
38
- def transaction_id
39
- params['transaction_id']
40
- end
41
-
42
- def action_name
43
- params['action_name'] # either 'result_url' or 'server_url'
44
- end
45
-
46
- def version
47
- params['version']
48
- end
49
-
50
- def sender_phone
51
- params['sender_phone']
52
- end
53
-
54
- def security_key
55
- params[ActiveMerchant::Billing::Integrations::Liqpay.signature_parameter_name]
56
- end
57
-
58
- def gross
59
- params['amount']
60
- end
61
-
62
- def currency
63
- params['currency']
64
- end
65
-
66
- def status
67
- params['status'] # 'success', 'failure' or 'wait_secure'
68
- end
69
-
70
- def code
71
- params['code']
72
- end
73
-
74
- def generate_signature_string
75
- "#{@options[:secret]}#{Base64.decode64(xml)}#{@options[:secret]}"
76
- end
77
-
78
- def generate_signature
79
- Base64.encode64(Digest::SHA1.digest(generate_signature_string)).strip
80
- end
81
-
82
- def acknowledge(authcode = nil)
83
- security_key == generate_signature
84
- end
85
- end
86
- end
87
- end
88
- end
89
- end