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
@@ -59,7 +59,7 @@ module ActiveMerchant #:nodoc:
59
59
  end
60
60
 
61
61
  def credit(money, authorization, options = {})
62
- deprecated CREDIT_DEPRECATION_MESSAGE
62
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
63
63
  refund(money, authorization, options)
64
64
  end
65
65
 
@@ -87,7 +87,7 @@ module ActiveMerchant #:nodoc:
87
87
  post[:card_token] = creditcard
88
88
  post[:cvv] = options[:cvv]
89
89
  elsif creditcard.is_a?(Hash)
90
- deprecated "Passing the credit card as a Hash is deprecated. Use a String and put the (optional) CVV in the options hash instead."
90
+ ActiveMerchant.deprecated "Passing the credit card as a Hash is deprecated. Use a String and put the (optional) CVV in the options hash instead."
91
91
  post[:card_token] = creditcard[:token]
92
92
  post[:cvv] = creditcard[:cvv]
93
93
  else
@@ -58,7 +58,7 @@ module ActiveMerchant #:nodoc:
58
58
  end
59
59
 
60
60
  def credit(money, authorization, options = {})
61
- deprecated CREDIT_DEPRECATION_MESSAGE
61
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
62
62
  refund(money, authorization, options)
63
63
  end
64
64
 
@@ -107,12 +107,6 @@ module ActiveMerchant #:nodoc:
107
107
  post[:cvv] = creditcard.verification_value
108
108
  end
109
109
 
110
- def expdate(creditcard)
111
- year = sprintf("%.4i", creditcard.year)
112
- month = sprintf("%.2i", creditcard.month)
113
- "#{month}#{year[-2..-1]}"
114
- end
115
-
116
110
  def parse(body)
117
111
  body.split('&').inject({}) do |memo, x|
118
112
  k, v = x.split('=')
@@ -126,7 +120,6 @@ module ActiveMerchant #:nodoc:
126
120
  data = ssl_post(self.live_url, post_data(action, parameters))
127
121
  response = parse(data)
128
122
  message = message_from(response)
129
- test_mode = test?
130
123
 
131
124
  Response.new(success?(response), message, response,
132
125
  :test => test?,
@@ -3,7 +3,8 @@ require File.dirname(__FILE__) + '/cc5'
3
3
  module ActiveMerchant #:nodoc:
4
4
  module Billing #:nodoc:
5
5
  class FinansbankGateway < CC5Gateway
6
- self.live_url = self.test_url = 'https://www.fbwebpos.com/servlet/cc5ApiServer'
6
+ self.live_url = 'https://www.fbwebpos.com/servlet/cc5ApiServer'
7
+ self.test_url = 'https://testsanalpos.est.com.tr/servlet/cc5ApiServer'
7
8
 
8
9
  # The countries the gateway supports merchants from as 2 digit ISO country codes
9
10
  self.supported_countries = ['US', 'TR']
@@ -1,176 +1,160 @@
1
+ require 'nokogiri'
2
+
1
3
  module ActiveMerchant #:nodoc:
2
4
  module Billing #:nodoc:
3
5
  class FirstPayGateway < Gateway
4
- class FirstPayPostData < PostData
5
- # Fields that will be sent even if they are blank
6
- self.required_fields = [ :action, :amount, :trackid ]
7
- end
6
+ self.live_url = 'https://secure.1stpaygateway.net/secure/gateway/xmlgateway.aspx'
8
7
 
9
- # both URLs are IP restricted
10
- self.test_url = 'https://apgcert.first-pay.com/AcqENGIN/SecureCapture'
11
- self.live_url = 'https://acqengin.first-pay.com/AcqENGIN/SecureCapture'
12
-
13
- # The countries the gateway supports merchants from as 2 digit ISO country codes
14
8
  self.supported_countries = ['US']
9
+ self.default_currency = 'USD'
10
+ self.money_format = :dollars
11
+ self.supported_cardtypes = [:visa, :master, :american_express, :discover]
15
12
 
16
- # The card types supported by the payment gateway
17
- self.supported_cardtypes = [:visa, :master]
18
-
19
- # The homepage URL of the gateway
20
- self.homepage_url = 'http://www.first-pay.com'
21
-
22
- # The name of the gateway
23
- self.display_name = 'First Pay'
24
-
25
- # all transactions are in cents
26
- self.money_format = :cents
27
-
28
- ACTIONS = {
29
- 'sale' => 1,
30
- 'credit' => 2,
31
- 'void' => 3
32
- }
13
+ self.homepage_url = 'http://1stpaygateway.net/'
14
+ self.display_name = '1stPayGateway.Net'
33
15
 
34
- def initialize(options = {})
35
- requires!(options, :login, :password)
16
+ def initialize(options={})
17
+ requires!(options, :transaction_center_id, :gateway_id)
36
18
  super
37
19
  end
38
20
 
39
- def purchase(money, creditcard, options = {})
40
- post = FirstPayPostData.new
41
- add_invoice(post, options)
42
- add_creditcard(post, creditcard)
43
- add_address(post, options)
21
+ def purchase(money, payment, options={})
22
+ post = {}
23
+ add_invoice(post, money, options)
24
+ add_payment(post, payment)
25
+ add_address(post, payment, options)
44
26
  add_customer_data(post, options)
45
27
 
46
- commit('sale', money, post)
28
+ commit('sale', post)
47
29
  end
48
30
 
49
- def refund(money, reference, options = {})
50
- requires!(options, :credit_card)
51
-
52
- post = FirstPayPostData.new
53
- add_invoice(post, options)
54
- add_creditcard(post, options[:credit_card])
55
- add_address(post, options)
31
+ def authorize(money, payment, options={})
32
+ post = {}
33
+ add_invoice(post, money, options)
34
+ add_payment(post, payment)
35
+ add_address(post, payment, options)
56
36
  add_customer_data(post, options)
57
- add_credit_data(post, reference)
58
37
 
59
- commit('credit', money, post)
38
+ commit('auth', post)
60
39
  end
61
40
 
62
- def credit(money, reference, options = {})
63
- deprecated CREDIT_DEPRECATION_MESSAGE
64
- refund(money, reference, options)
41
+ def capture(money, authorization, options={})
42
+ post = {}
43
+ add_reference(post, 'settle', money, authorization)
44
+ commit('settle', post)
65
45
  end
66
46
 
67
- def void(money, creditcard, options = {})
68
- post = FirstPayPostData.new
69
- add_creditcard(post, creditcard)
70
- add_void_data(post, options)
71
- add_invoice(post, options)
72
- add_customer_data(post, options)
73
-
74
- commit('void', money, post)
47
+ def refund(money, authorization, options={})
48
+ post = {}
49
+ add_reference(post, 'credit', money, authorization)
50
+ commit('credit', post)
75
51
  end
76
52
 
53
+ def void(authorization, options={})
54
+ post = {}
55
+ add_reference(post, 'void', nil, authorization)
56
+ commit('void', post)
57
+ end
77
58
 
78
59
  private
79
60
 
80
- def add_customer_data(post, options)
81
- post[:cardip] = options[:ip]
82
- post[:email] = options[:email]
61
+ def add_authentication(post, options)
62
+ post[:transaction_center_id] = options[:transaction_center_id]
63
+ post[:gateway_id] = options[:gateway_id]
83
64
  end
84
65
 
85
- def add_address(post, options)
86
- if billing_address = options[:billing_address] || options[:address]
87
- post[:addr] = billing_address[:address1].to_s + ' ' + billing_address[:address2].to_s
88
- post[:city] = billing_address[:city]
89
- post[:state] = billing_address[:state]
90
- post[:zip] = billing_address[:zip]
91
- post[:country] = billing_address[:country]
92
- end
66
+ def add_customer_data(post, options)
67
+ post[:owner_email] = options[:email] if options[:email]
68
+ post[:remote_ip_address] = options[:ip] if options[:ip]
93
69
  end
94
70
 
95
- def add_invoice(post, options)
96
- post[:trackid] = rand(Time.now.to_i)
71
+ def add_address(post, creditcard, options)
72
+ address = options[:billing_address] || options[:address]
73
+ post[:owner_name] = address[:name]
74
+ post[:owner_street] = address[:address1]
75
+ post[:owner_street2] = address[:address2] if address[:address2]
76
+ post[:owner_city] = address[:city]
77
+ post[:owner_state] = address[:state]
78
+ post[:owner_zip] = address[:zip]
79
+ post[:owner_country] = address[:country]
80
+ post[:owner_phone] = address[:phone] if address[:phone]
97
81
  end
98
82
 
99
- def add_creditcard(post, creditcard)
100
- post[:member] = creditcard.first_name.to_s + " " + creditcard.last_name.to_s
101
- post[:card] = creditcard.number
102
- post[:exp] = expdate(creditcard)
83
+ def add_invoice(post, money, options)
84
+ post[:order_id] = options[:order_id]
85
+ post[:total] = amount(money)
103
86
  end
104
87
 
105
- def expdate(credit_card)
106
- year = sprintf("%.4i", credit_card.year)
107
- month = sprintf("%.2i", credit_card.month)
108
-
109
- "#{month}#{year[-2..-1]}"
88
+ def add_payment(post, payment)
89
+ post[:card_name] = payment.brand # Unclear if need to map to known names or open text field??
90
+ post[:card_number] = payment.number
91
+ post[:card_exp] = expdate(payment)
92
+ post[:cvv2] = payment.verification_value
110
93
  end
111
94
 
112
- def add_credit_data(post, transaction_id)
113
- post[:transid] = transaction_id
95
+ def add_reference(post, action, money, authorization)
96
+ post[:"#{action}_amount1"] = amount(money) if money
97
+ post[:total_number_transactions] = 1
98
+ post[:reference_number1] = authorization
114
99
  end
115
100
 
116
- def add_void_data(post, options)
117
- post[:transid] = options[:transactionid]
118
- end
101
+ def parse(xml)
102
+ response = {}
119
103
 
120
- def commit(action, money, post)
121
- response = parse( ssl_post(test? ? self.test_url : self.live_url, post_data(action, post, money)) )
104
+ doc = Nokogiri::XML(xml)
105
+ doc.root.xpath("//RESPONSE/FIELDS/FIELD").each do |field|
106
+ response[field['KEY']] = field.text
107
+ end unless doc.root.nil?
122
108
 
123
- Response.new(response[:response] == 'CAPTURED', response[:message], response,
124
- :test => test?,
125
- :authorization => response[:authorization],
126
- :avs_result => { :code => response[:avsresponse] },
127
- :cvv_result => response[:cvvresponse])
109
+ response
128
110
  end
129
111
 
130
- def parse(body)
131
- response = {}
112
+ def commit(action, parameters)
113
+ response = parse(ssl_post(live_url, post_data(action, parameters)))
132
114
 
133
- # check for an error first
134
- if body.include?('!ERROR!')
135
- response[:response] = 'ERROR'
136
- response[:message] = error_message_from(body)
137
- else
138
- # a capture / not captured response will be : delimited
139
- split = body.split(':')
140
- response[:response] = split[0]
141
-
142
- # FirstPay docs are worthless. turns out the transactionid is required for credits
143
- # so we need to store that in authorization, not the actual auth.
144
- if response[:response] == 'CAPTURED'
145
- response[:message] = 'CAPTURED'
146
- response[:authorization] = split[9] # actually the transactionid
147
- response[:auth] = split[1]
148
- response[:avsresponse] = split[3]
149
- response[:cvvresponse] = split[17]
150
- else
151
- # NOT CAPTURED response
152
- response[:message] = split[1]
153
- response[:transactionid] = split[9]
154
- end
155
- end
115
+ Response.new(
116
+ success_from(response),
117
+ message_from(response),
118
+ response,
119
+ authorization: authorization_from(response),
120
+ test: test?
121
+ )
122
+ end
156
123
 
157
- return response
124
+ def success_from(response)
125
+ (
126
+ (response['status'] == '1') ||
127
+ (response['status1'] == '1')
128
+ )
158
129
  end
159
130
 
160
- def error_message_from(response)
161
- # error messages use this format - '!ERROR! 704-MISSING BASIC DATA TYPE:card, exp, zip, addr, member, amount\n'
162
- response.split("! ")[1].chomp
131
+ def message_from(response)
132
+ # Silly inconsistent gateway. Always make capitalized (but not all caps)
133
+ msg = (response['auth_response'] || response['response1'])
134
+ msg.downcase.capitalize if msg
163
135
  end
164
136
 
165
- def post_data(action, post, money)
166
- post[:vid] = @options[:login]
167
- post[:password] = @options[:password]
168
- post[:action] = ACTIONS[action]
169
- post[:amount] = amount(money)
137
+ def authorization_from(response)
138
+ response['reference_number'] || response['reference_number1']
139
+ end
140
+
141
+ def post_data(action, parameters = {})
142
+ parameters[:transaction_center_id] = @options[:transaction_center_id]
143
+ parameters[:gateway_id] = @options[:gateway_id]
144
+
145
+ parameters[:operation_type] = action
170
146
 
171
- return post.to_post_data
147
+ xml = Builder::XmlMarkup.new
148
+ xml.instruct!
149
+ xml.tag! 'TRANSACTION' do
150
+ xml.tag! 'FIELDS' do
151
+ parameters.each do |key, value|
152
+ xml.tag! 'FIELD', value, { 'KEY' => key }
153
+ end
154
+ end
155
+ end
156
+ xml.target!
172
157
  end
173
158
  end
174
159
  end
175
160
  end
176
-
@@ -6,12 +6,13 @@ module ActiveMerchant #:nodoc:
6
6
  self.live_url = "https://api.globalgatewaye4.firstdata.com/transaction/v11"
7
7
 
8
8
  TRANSACTIONS = {
9
- :sale => "00",
10
- :authorization => "01",
11
- :capture => "32",
12
- :void => "33",
13
- :credit => "34",
14
- :store => "05"
9
+ sale: "00",
10
+ authorization: "01",
11
+ verify: "05",
12
+ capture: "32",
13
+ void: "33",
14
+ credit: "34",
15
+ store: "05"
15
16
  }
16
17
 
17
18
  POST_HEADERS = {
@@ -23,7 +24,15 @@ module ActiveMerchant #:nodoc:
23
24
 
24
25
  SENSITIVE_FIELDS = [:verification_str2, :expiry_date, :card_number]
25
26
 
26
- self.supported_cardtypes = [:visa, :master, :american_express, :jcb, :discover]
27
+ BRANDS = {
28
+ :visa => 'Visa',
29
+ :master => "Mastercard",
30
+ :american_express => "American Express",
31
+ :jcb => "JCB",
32
+ :discover => "Discover"
33
+ }
34
+
35
+ self.supported_cardtypes = BRANDS.keys
27
36
  self.supported_countries = ["CA", "US"]
28
37
  self.default_currency = "USD"
29
38
  self.homepage_url = "http://www.firstdata.com"
@@ -66,6 +75,10 @@ module ActiveMerchant #:nodoc:
66
75
  commit(:credit, build_capture_or_credit_request(money, authorization, options))
67
76
  end
68
77
 
78
+ def verify(credit_card, options = {})
79
+ commit(:verify, build_sale_or_authorization_request(0, credit_card, options))
80
+ end
81
+
69
82
  # Tokenize a credit card with TransArmor
70
83
  #
71
84
  # The TransArmor token and other card data necessary for subsequent
@@ -121,6 +134,7 @@ module ActiveMerchant #:nodoc:
121
134
 
122
135
  add_customer_data(xml, options)
123
136
  add_invoice(xml, options)
137
+ add_card_authentication_data(xml, options)
124
138
 
125
139
  xml.target!
126
140
  end
@@ -131,6 +145,7 @@ module ActiveMerchant #:nodoc:
131
145
  add_identification(xml, identification)
132
146
  add_amount(xml, money)
133
147
  add_customer_data(xml, options)
148
+ add_card_authentication_data(xml, options)
134
149
 
135
150
  xml.target!
136
151
  end
@@ -165,12 +180,17 @@ module ActiveMerchant #:nodoc:
165
180
  end
166
181
 
167
182
  def add_credit_card(xml, credit_card, options)
168
- xml.tag! "Card_Number", credit_card.number
169
- xml.tag! "Expiry_Date", expdate(credit_card)
170
- xml.tag! "CardHoldersName", credit_card.name
171
- xml.tag! "CardType", credit_card.brand
172
183
 
173
- add_credit_card_verification_strings(xml, credit_card, options)
184
+ if credit_card.respond_to?(:track_data) && credit_card.track_data.present?
185
+ xml.tag! "Track1", credit_card.track_data
186
+ else
187
+ xml.tag! "Card_Number", credit_card.number
188
+ xml.tag! "Expiry_Date", expdate(credit_card)
189
+ xml.tag! "CardHoldersName", credit_card.name
190
+ xml.tag! "CardType", card_type(credit_card.brand)
191
+
192
+ add_credit_card_verification_strings(xml, credit_card, options)
193
+ end
174
194
  end
175
195
 
176
196
  def add_credit_card_verification_strings(xml, credit_card, options)
@@ -187,6 +207,12 @@ module ActiveMerchant #:nodoc:
187
207
  end
188
208
  end
189
209
 
210
+ def add_card_authentication_data(xml, options)
211
+ xml.tag! "CAVV", options[:cavv]
212
+ xml.tag! "XID", options[:xid]
213
+ xml.tag! "Ecommerce_Flag", options[:eci]
214
+ end
215
+
190
216
  def add_credit_card_token(xml, store_authorization)
191
217
  params = store_authorization.split(";")
192
218
  credit_card = CreditCard.new(
@@ -199,7 +225,7 @@ module ActiveMerchant #:nodoc:
199
225
  xml.tag! "TransarmorToken", params[0]
200
226
  xml.tag! "Expiry_Date", expdate(credit_card)
201
227
  xml.tag! "CardHoldersName", credit_card.name
202
- xml.tag! "CardType", credit_card.brand
228
+ xml.tag! "CardType", card_type(credit_card.brand)
203
229
  end
204
230
 
205
231
  def add_customer_data(xml, options)
@@ -223,6 +249,10 @@ module ActiveMerchant #:nodoc:
223
249
  "#{format(credit_card.month, :two_digits)}#{format(credit_card.year, :two_digits)}"
224
250
  end
225
251
 
252
+ def card_type(credit_card_brand)
253
+ BRANDS[credit_card_brand.to_sym] if credit_card_brand
254
+ end
255
+
226
256
  def commit(action, request, credit_card = nil)
227
257
  url = (test? ? self.test_url : self.live_url)
228
258
  begin