activemerchant 1.43.3 → 1.44.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -107,7 +107,7 @@ module ActiveMerchant #:nodoc:
107
107
  end
108
108
 
109
109
  def parse(body)
110
- Hash[body.split('&').map{|x| x.split('=').map{|x| CGI.unescape(x)}}]
110
+ Hash[body.split('&').map{|x| x.split('=').map{|y| CGI.unescape(y)}}]
111
111
  end
112
112
 
113
113
  def commit(action, money, parameters)
@@ -199,14 +199,7 @@ module ActiveMerchant #:nodoc:
199
199
  else
200
200
  post['UserName']
201
201
  end
202
- Digest::HMAC.hexdigest(string, @options[:secret], Digest::SHA1)
203
- end
204
-
205
- def expdate(creditcard)
206
- year = sprintf("%.4i", creditcard.year)
207
- month = sprintf("%.2i", creditcard.month)
208
-
209
- "#{month}#{year[-2..-1]}"
202
+ OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA1.new(@options[:secret]), @options[:secret], string)
210
203
  end
211
204
  end
212
205
  end
@@ -0,0 +1,122 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ class PagoFacilGateway < Gateway
4
+ self.test_url = 'https://www.pagofacil.net/st/public/Wsrtransaccion/index/format/json?'
5
+ self.live_url = 'https://www.pagofacil.net/ws/public/Wsrtransaccion/index/format/json?'
6
+
7
+ self.supported_countries = ['MX']
8
+ self.default_currency = 'MXN'
9
+ self.supported_cardtypes = [:visa, :master, :american_express, :jcb]
10
+
11
+ self.homepage_url = 'http://www.pagofacil.net/'
12
+ self.display_name = 'PagoFacil'
13
+
14
+ def initialize(options={})
15
+ requires!(options, :branch_id, :merchant_id, :service_id)
16
+ super
17
+ end
18
+
19
+ def purchase(money, credit_card, options={})
20
+ post = {}
21
+ add_invoice(post, money, options)
22
+ add_payment(post, credit_card)
23
+ add_address(post, options)
24
+ add_customer_data(post, options)
25
+ add_merchant_data(post)
26
+
27
+ commit(post)
28
+ end
29
+
30
+ private
31
+
32
+ def add_customer_data(post, options)
33
+ post[:email] = options[:email]
34
+ post[:celular] = options[:cellphone]
35
+ end
36
+
37
+ def add_address(post, options)
38
+ address = options.fetch(:billing_address, {})
39
+ post[:calleyNumero] = address[:address1]
40
+ post[:colonia] = address[:address2]
41
+ post[:municipio] = address[:city]
42
+ post[:estado] = address[:state]
43
+ post[:pais] = address[:country]
44
+ post[:telefono] = address[:phone]
45
+ post[:cp] = address[:zip]
46
+ end
47
+
48
+ def add_invoice(post, money, options)
49
+ post[:monto] = amount(money)
50
+ post[:idPedido] = options[:order_id]
51
+ add_currency(post, money, options)
52
+ end
53
+
54
+ def add_currency(post, money, options)
55
+ currency = options.fetch(:currency, currency(money))
56
+ unless currency == self.class.default_currency
57
+ post[:divisa] = currency
58
+ end
59
+ end
60
+
61
+ def add_payment(post, credit_card)
62
+ post[:nombre] = credit_card.first_name
63
+ post[:apellidos] = credit_card.last_name
64
+ post[:numeroTarjeta] = credit_card.number
65
+ post[:cvt] = credit_card.verification_value
66
+ post[:mesExpiracion] = sprintf("%02d", credit_card.month)
67
+ post[:anyoExpiracion] = credit_card.year.to_s.slice(-2, 2)
68
+ end
69
+
70
+ def add_merchant_data(post)
71
+ post[:idSucursal] = options.fetch(:branch_id)
72
+ post[:idUsuario] = options.fetch(:merchant_id)
73
+ post[:idServicio] = options.fetch(:service_id)
74
+ end
75
+
76
+ def parse(body)
77
+ JSON.parse(body)["WebServices_Transacciones"]["transaccion"]
78
+ rescue JSON::ParserError
79
+ json_error(body)
80
+ end
81
+
82
+ def commit(parameters)
83
+ url = (test? ? test_url : live_url)
84
+ response = parse(ssl_post(url, post_data(parameters)))
85
+ Response.new(
86
+ success_from(response),
87
+ message_from(response),
88
+ response,
89
+ authorization: authorization_from(response),
90
+ test: test?
91
+ )
92
+ end
93
+
94
+ def success_from(response)
95
+ response["autorizado"] == "1" ||
96
+ response["autorizado"] == true
97
+ end
98
+
99
+ def message_from(response)
100
+ response["texto"]
101
+ end
102
+
103
+ def authorization_from(response)
104
+ response["autorizacion"]
105
+ end
106
+
107
+ def post_data(parameters = {})
108
+ {
109
+ method: 'transaccion',
110
+ data: parameters
111
+ }.to_query
112
+ end
113
+
114
+ def json_error(response)
115
+ {
116
+ "texto" => 'Invalid response received from the PagoFacil API.',
117
+ "raw_response" => response
118
+ }
119
+ end
120
+ end
121
+ end
122
+ end
@@ -211,7 +211,7 @@ module ActiveMerchant #:nodoc:
211
211
  end
212
212
 
213
213
  def credit(money, authorization, options = {})
214
- deprecated CREDIT_DEPRECATION_MESSAGE
214
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
215
215
  refund(money, authorization, options)
216
216
  end
217
217
 
@@ -239,6 +239,8 @@ module ActiveMerchant #:nodoc:
239
239
  # YYYYMMDD format and can be used to specify when the first charge will be made.
240
240
  # If omitted the first charge will be immediate.
241
241
  def recurring(money, payment_source, options = {})
242
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
243
+
242
244
  requires!(options, [:periodicity, :monthly, :weekly, :daily], :payments)
243
245
 
244
246
  periodic_type = case options[:periodicity]
@@ -379,18 +381,6 @@ module ActiveMerchant #:nodoc:
379
381
  end
380
382
  response
381
383
  end
382
-
383
- # Make a ruby type out of the response string
384
- def normalize(field)
385
- case field
386
- when "true" then true
387
- when "false" then false
388
- when "" then nil
389
- when "null" then nil
390
- else field
391
- end
392
- end
393
-
394
384
  end
395
385
  end
396
386
  end
@@ -64,13 +64,6 @@ module ActiveMerchant #:nodoc:
64
64
  post[:cvv2] = credit_card.verification_value
65
65
  end
66
66
 
67
- def expdate(credit_card)
68
- year = sprintf("%.4i", credit_card.year)
69
- month = sprintf("%.2i", credit_card.month)
70
-
71
- "#{month}#{year[-2..-1]}"
72
- end
73
-
74
67
  def commit(action, money, parameters)
75
68
  response = parse( ssl_post(self.live_url, post_data(action, parameters)) )
76
69
 
@@ -97,7 +97,7 @@ module ActiveMerchant #:nodoc:
97
97
  end
98
98
 
99
99
  def credit(money, identification, options = {})
100
- deprecated CREDIT_DEPRECATION_MESSAGE
100
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
101
101
  refund(money, identification, options)
102
102
  end
103
103
 
@@ -183,14 +183,6 @@ module ActiveMerchant #:nodoc:
183
183
 
184
184
  "0000000000#{randkey}"[-10..-1]
185
185
  end
186
-
187
- def expdate(credit_card)
188
- year = sprintf("%.4i", credit_card.year)
189
- month = sprintf("%.2i", credit_card.month)
190
-
191
- "#{month}#{year[-2..-1]}"
192
- end
193
-
194
186
  end
195
187
  end
196
188
  end
@@ -6,7 +6,7 @@ module ActiveMerchant #:nodoc:
6
6
  self.test_url = 'https://test-external.payex.com/'
7
7
 
8
8
  self.money_format = :cents
9
- self.supported_countries = ['SE', 'NO', 'DK']
9
+ self.supported_countries = ['DK', 'FI', 'NO', 'SE']
10
10
  self.supported_cardtypes = [:visa, :master, :american_express, :discover]
11
11
  self.homepage_url = 'http://payex.com/'
12
12
  self.display_name = 'Payex'
@@ -27,7 +27,7 @@ module ActiveMerchant #:nodoc:
27
27
 
28
28
  def credit(money, funding_source, options = {})
29
29
  if funding_source.is_a?(String)
30
- deprecated CREDIT_DEPRECATION_MESSAGE
30
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
31
31
  # Perform referenced credit
32
32
  refund(money, funding_source, options)
33
33
  elsif card_brand(funding_source) == 'check'
@@ -57,6 +57,8 @@ module ActiveMerchant #:nodoc:
57
57
  # * <tt>payments</tt> - The term, or number of payments that will be made
58
58
  # * <tt>comment</tt> - A comment associated with the profile
59
59
  def recurring(money, credit_card, options = {})
60
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
61
+
60
62
  options[:name] = credit_card.name if options[:name].blank? && credit_card
61
63
  request = build_recurring_request(options[:profile_id] ? :modify : :add, money, options) do |xml|
62
64
  add_credit_card(xml, credit_card) if credit_card
@@ -65,11 +67,15 @@ module ActiveMerchant #:nodoc:
65
67
  end
66
68
 
67
69
  def cancel_recurring(profile_id)
70
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
71
+
68
72
  request = build_recurring_request(:cancel, 0, :profile_id => profile_id)
69
73
  commit(request, options.merge(:request_type => :recurring))
70
74
  end
71
75
 
72
76
  def recurring_inquiry(profile_id, options = {})
77
+ ActiveMerchant.deprecated RECURRING_DEPRECATION_MESSAGE
78
+
73
79
  request = build_recurring_request(:inquiry, nil, options.update( :profile_id => profile_id ))
74
80
  commit(request, options.merge(:request_type => :recurring))
75
81
  end
@@ -85,7 +85,7 @@ module ActiveMerchant #:nodoc:
85
85
  else
86
86
  xml.tag! 'Transactions' do
87
87
  xml.tag! 'Transaction', 'CustRef' => options[:customer] do
88
- xml.tag! 'Verbosity', 'MEDIUM'
88
+ xml.tag! 'Verbosity', @options[:verbosity] || 'MEDIUM'
89
89
  xml << body
90
90
  end
91
91
  end
@@ -184,24 +184,24 @@ module ActiveMerchant #:nodoc:
184
184
  {
185
185
  "Content-Type" => "text/xml",
186
186
  "Content-Length" => content_length.to_s,
187
- "X-VPS-Client-Timeout" => timeout.to_s,
188
- "X-VPS-VIT-Integration-Product" => "ActiveMerchant",
189
- "X-VPS-VIT-Runtime-Version" => RUBY_VERSION,
190
- "X-VPS-Request-ID" => Utils.generate_unique_id
191
- }
192
- end
193
-
194
- def commit(request_body, options = {})
187
+ "X-VPS-Client-Timeout" => timeout.to_s,
188
+ "X-VPS-VIT-Integration-Product" => "ActiveMerchant",
189
+ "X-VPS-VIT-Runtime-Version" => RUBY_VERSION,
190
+ "X-VPS-Request-ID" => SecureRandom.hex(16)
191
+ }
192
+ end
193
+
194
+ def commit(request_body, options = {})
195
195
  request = build_request(request_body, options)
196
196
  headers = build_headers(request.size)
197
197
 
198
- response = parse(ssl_post(test? ? self.test_url : self.live_url, request, headers))
198
+ response = parse(ssl_post(test? ? self.test_url : self.live_url, request, headers))
199
199
 
200
- build_response(response[:result] == "0", response[:message], response,
201
- :test => test?,
202
- :authorization => response[:pn_ref] || response[:rp_ref],
203
- :cvv_result => CVV_CODE[response[:cv_result]],
204
- :avs_result => { :code => response[:avs_result] }
200
+ build_response(response[:result] == "0", response[:message], response,
201
+ :test => test?,
202
+ :authorization => response[:pn_ref] || response[:rp_ref],
203
+ :cvv_result => CVV_CODE[response[:cv_result]],
204
+ :avs_result => { :code => response[:avs_result] }
205
205
  )
206
206
  end
207
207
  end
@@ -41,7 +41,7 @@ module ActiveMerchant #:nodoc:
41
41
  # <em>You will need to call Payflow Support at 1-888-883-9770, choose option #2. Request that they update your account in "Pandora" under Product Settings >> PayPal Mark and update the Features Bitmap to 1111111111111112. This is 15 ones and a two.</em>
42
42
  #
43
43
  # See here[https://www.x.com/message/206214#206214] for the forum discussion (requires login to {x.com}[https://x.com]
44
- #
44
+ #
45
45
  # [<tt>:items</tt>] (opt) Array of Order Line Items hashes. These are shown to the buyer after redirect to PayPal.
46
46
  #
47
47
  #
@@ -64,7 +64,7 @@ module ActiveMerchant #:nodoc:
64
64
  class PayflowExpressGateway < Gateway
65
65
  include PayflowCommonAPI
66
66
  include PaypalExpressCommon
67
-
67
+
68
68
  self.test_redirect_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'
69
69
  self.homepage_url = 'https://www.paypal.com/cgi-bin/webscr?cmd=xpt/merchant/ExpressCheckoutIntro-outside'
70
70
  self.display_name = 'PayPal Express Checkout'
@@ -74,48 +74,48 @@ module ActiveMerchant #:nodoc:
74
74
  request = build_sale_or_authorization_request('Authorization', money, options)
75
75
  commit(request, options)
76
76
  end
77
-
78
- def purchase(money, options = {})
77
+
78
+ def purchase(money, options = {})
79
79
  requires!(options, :token, :payer_id)
80
80
  request = build_sale_or_authorization_request('Sale', money, options)
81
81
  commit(request, options)
82
82
  end
83
-
83
+
84
84
  def refund(money, identification, options = {})
85
85
  request = build_reference_request(:credit, money, identification, options)
86
86
  commit(request, options)
87
- end
87
+ end
88
88
 
89
89
  def credit(money, identification, options = {})
90
- deprecated CREDIT_DEPRECATION_MESSAGE
90
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
91
91
  refund(money, identification, options)
92
92
  end
93
93
 
94
94
  def setup_authorization(money, options = {})
95
95
  requires!(options, :return_url, :cancel_return_url)
96
-
96
+
97
97
  request = build_setup_express_sale_or_authorization_request('Authorization', money, options)
98
98
  commit(request, options)
99
99
  end
100
-
100
+
101
101
  def setup_purchase(money, options = {})
102
102
  requires!(options, :return_url, :cancel_return_url)
103
-
103
+
104
104
  request = build_setup_express_sale_or_authorization_request('Sale', money, options)
105
105
  commit(request, options)
106
106
  end
107
-
107
+
108
108
  def details_for(token)
109
109
  request = build_get_express_details_request(token)
110
110
  commit(request, options)
111
111
  end
112
-
112
+
113
113
  private
114
114
  def build_get_express_details_request(token)
115
- xml = Builder::XmlMarkup.new :indent => 2
115
+ xml = Builder::XmlMarkup.new :indent => 2
116
116
  xml.tag! 'GetExpressCheckout' do
117
117
  xml.tag! 'Authorization' do
118
- xml.tag! 'PayData' do
118
+ xml.tag! 'PayData' do
119
119
  xml.tag! 'Tender' do
120
120
  xml.tag! 'PayPal' do
121
121
  xml.tag! 'Token', token
@@ -136,8 +136,8 @@ module ActiveMerchant #:nodoc:
136
136
  end
137
137
  xml.target!
138
138
  end
139
-
140
- def build_sale_or_authorization_request(action, money, options)
139
+
140
+ def build_sale_or_authorization_request(action, money, options)
141
141
  xml = Builder::XmlMarkup.new :indent => 2
142
142
  xml.tag! 'DoExpressCheckout' do
143
143
  xml.tag! action do
@@ -201,8 +201,8 @@ module ActiveMerchant #:nodoc:
201
201
  xml.tag! 'Token', options[:token] unless options[:token].blank?
202
202
  xml.tag! 'NoShipping', options[:no_shipping] ? '1' : '0'
203
203
  xml.tag! 'AddressOverride', options[:address_override] ? '1' : '0'
204
- xml.tag! 'ButtonSource', application_id.to_s.slice(0,32) unless application_id.blank?
205
-
204
+ xml.tag! 'ButtonSource', application_id.to_s.slice(0,32) unless application_id.blank?
205
+
206
206
  # Customization of the payment page
207
207
  xml.tag! 'PageStyle', options[:page_style] unless options[:page_style].blank?
208
208
  xml.tag! 'HeaderImage', options[:header_image] unless options[:header_image].blank?
@@ -214,7 +214,7 @@ module ActiveMerchant #:nodoc:
214
214
  xml.tag! 'ExtData', 'Name' => 'ALLOWNOTE', 'Value' => options[:allow_note]
215
215
  end
216
216
  end
217
-
217
+
218
218
  def build_response(success, message, response, options = {})
219
219
  PayflowExpressResponse.new(success, message, response, options)
220
220
  end
@@ -82,7 +82,7 @@ module ActiveMerchant #:nodoc:
82
82
  end
83
83
 
84
84
  def credit(money, identification, options = {})
85
- deprecated CREDIT_DEPRECATION_MESSAGE
85
+ ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
86
86
  refund(money, identification, options)
87
87
  end
88
88
 
@@ -5,7 +5,7 @@ module ActiveMerchant #:nodoc:
5
5
  GI GR HR HU IE IL IM IS IT LI LT LU LV MC MT
6
6
  NL NO PL PT RO SE SI SK TR VA)
7
7
 
8
- self.supported_cardtypes = [:visa, :master]
8
+ self.supported_cardtypes = [:visa, :master, :american_express, :diners_club, :discover, :union_pay, :jcb]
9
9
  self.homepage_url = 'https://paymill.com'
10
10
  self.display_name = 'PAYMILL'
11
11
  self.money_format = :cents
@@ -30,6 +30,7 @@ module ActiveMerchant #:nodoc:
30
30
  add_amount(post, money, options)
31
31
  post[:preauthorization] = preauth(authorization)
32
32
  post[:description] = options[:description]
33
+ post[:source] = 'active_merchant'
33
34
  commit(:post, 'transactions', post)
34
35
  end
35
36
 
@@ -116,6 +117,7 @@ module ActiveMerchant #:nodoc:
116
117
  add_amount(post, money, options)
117
118
  post[:token] = card_token
118
119
  post[:description] = options[:description]
120
+ post[:source] = 'active_merchant'
119
121
  commit(:post, 'transactions', post)
120
122
  end
121
123
 
@@ -124,6 +126,8 @@ module ActiveMerchant #:nodoc:
124
126
 
125
127
  add_amount(post, money, options)
126
128
  post[:token] = card_token
129
+ post[:description] = options[:description]
130
+ post[:source] = 'active_merchant'
127
131
  commit(:post, 'preauthorizations', post)
128
132
  end
129
133
 
@@ -232,6 +236,8 @@ module ActiveMerchant #:nodoc:
232
236
 
233
237
 
234
238
  class ResponseParser
239
+ attr_reader :raw_response, :parsed, :succeeded, :message, :options
240
+
235
241
  def initialize(raw_response="", options={})
236
242
  @raw_response = raw_response
237
243
  @options = options
@@ -249,7 +255,6 @@ module ActiveMerchant #:nodoc:
249
255
  end
250
256
 
251
257
  private
252
- attr_reader :raw_response, :parsed, :succeeded, :message, :options
253
258
 
254
259
  def parse_response
255
260
  @parsed = JSON.parse(raw_response.sub(/jsonPFunction\(/, '').sub(/\)\z/, ''))