activemerchant 1.42.6 → 1.90.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 (450) hide show
  1. checksums.yaml +5 -13
  2. data/CHANGELOG +1420 -2
  3. data/CONTRIBUTORS +106 -0
  4. data/README.md +107 -103
  5. data/lib/active_merchant/billing/apple_pay_payment_token.rb +22 -0
  6. data/lib/active_merchant/billing/avs_result.rb +12 -13
  7. data/lib/active_merchant/billing/base.rb +13 -16
  8. data/lib/active_merchant/billing/check.rb +35 -24
  9. data/lib/active_merchant/billing/compatibility.rb +117 -0
  10. data/lib/active_merchant/billing/credit_card.rb +196 -81
  11. data/lib/active_merchant/billing/credit_card_formatting.rb +6 -4
  12. data/lib/active_merchant/billing/credit_card_methods.rb +199 -75
  13. data/lib/active_merchant/billing/cvv_result.rb +15 -15
  14. data/lib/active_merchant/billing/gateway.rb +171 -39
  15. data/lib/active_merchant/billing/gateways/adyen.rb +380 -0
  16. data/lib/active_merchant/billing/gateways/allied_wallet.rb +205 -0
  17. data/lib/active_merchant/billing/gateways/authorize_net.rb +933 -604
  18. data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +417 -0
  19. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +74 -54
  20. data/lib/active_merchant/billing/gateways/axcessms.rb +181 -0
  21. data/lib/active_merchant/billing/gateways/balanced.rb +130 -370
  22. data/lib/active_merchant/billing/gateways/bank_frick.rb +225 -0
  23. data/lib/active_merchant/billing/gateways/banwire.rb +23 -12
  24. data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +351 -0
  25. data/lib/active_merchant/billing/gateways/barclays_epdq_extra_plus.rb +6 -6
  26. data/lib/active_merchant/billing/gateways/be2bill.rb +2 -2
  27. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +109 -32
  28. data/lib/active_merchant/billing/gateways/beanstream.rb +59 -13
  29. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +12 -9
  30. data/lib/active_merchant/billing/gateways/blue_pay.rb +520 -498
  31. data/lib/active_merchant/billing/gateways/blue_snap.rb +347 -0
  32. data/lib/active_merchant/billing/gateways/bogus.rb +80 -46
  33. data/lib/active_merchant/billing/gateways/borgun.rb +220 -0
  34. data/lib/active_merchant/billing/gateways/bpoint.rb +277 -0
  35. data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +15 -2
  36. data/lib/active_merchant/billing/gateways/braintree.rb +2 -2
  37. data/lib/active_merchant/billing/gateways/braintree_blue.rb +311 -121
  38. data/lib/active_merchant/billing/gateways/braintree_orange.rb +4 -4
  39. data/lib/active_merchant/billing/gateways/bridge_pay.rb +244 -0
  40. data/lib/active_merchant/billing/gateways/cams.rb +230 -0
  41. data/lib/active_merchant/billing/gateways/card_connect.rb +311 -0
  42. data/lib/active_merchant/billing/gateways/card_save.rb +6 -7
  43. data/lib/active_merchant/billing/gateways/card_stream.rb +235 -89
  44. data/lib/active_merchant/billing/gateways/cardknox.rb +327 -0
  45. data/lib/active_merchant/billing/gateways/cardprocess.rb +254 -0
  46. data/lib/active_merchant/billing/gateways/cashnet.rb +219 -0
  47. data/lib/active_merchant/billing/gateways/cc5.rb +50 -8
  48. data/lib/active_merchant/billing/gateways/cecabank.rb +27 -14
  49. data/lib/active_merchant/billing/gateways/cenpos.rb +327 -0
  50. data/lib/active_merchant/billing/gateways/checkout.rb +214 -0
  51. data/lib/active_merchant/billing/gateways/checkout_v2.rb +233 -0
  52. data/lib/active_merchant/billing/gateways/citrus_pay.rb +22 -0
  53. data/lib/active_merchant/billing/gateways/clearhaus.rb +220 -0
  54. data/lib/active_merchant/billing/gateways/commercegate.rb +142 -0
  55. data/lib/active_merchant/billing/gateways/conekta.rb +91 -97
  56. data/lib/active_merchant/billing/gateways/creditcall.rb +271 -0
  57. data/lib/active_merchant/billing/gateways/credorax.rb +356 -0
  58. data/lib/active_merchant/billing/gateways/ct_payment.rb +268 -0
  59. data/lib/active_merchant/billing/gateways/culqi.rb +277 -0
  60. data/lib/active_merchant/billing/gateways/cyber_source.rb +294 -158
  61. data/lib/active_merchant/billing/gateways/d_local.rb +226 -0
  62. data/lib/active_merchant/billing/gateways/data_cash.rb +59 -347
  63. data/lib/active_merchant/billing/gateways/dibs.rb +199 -0
  64. data/lib/active_merchant/billing/gateways/digitzs.rb +292 -0
  65. data/lib/active_merchant/billing/gateways/ebanx.rb +296 -0
  66. data/lib/active_merchant/billing/gateways/efsnet.rb +24 -39
  67. data/lib/active_merchant/billing/gateways/elavon.rb +146 -147
  68. data/lib/active_merchant/billing/gateways/element.rb +356 -0
  69. data/lib/active_merchant/billing/gateways/epay.rb +41 -31
  70. data/lib/active_merchant/billing/gateways/evo_ca.rb +1 -1
  71. data/lib/active_merchant/billing/gateways/eway.rb +79 -78
  72. data/lib/active_merchant/billing/gateways/eway_managed.rb +35 -36
  73. data/lib/active_merchant/billing/gateways/eway_rapid.rb +369 -228
  74. data/lib/active_merchant/billing/gateways/exact.rb +32 -26
  75. data/lib/active_merchant/billing/gateways/ezic.rb +195 -0
  76. data/lib/active_merchant/billing/gateways/fat_zebra.rb +90 -64
  77. data/lib/active_merchant/billing/gateways/federated_canada.rb +6 -14
  78. data/lib/active_merchant/billing/gateways/finansbank.rb +3 -3
  79. data/lib/active_merchant/billing/gateways/first_giving.rb +142 -0
  80. data/lib/active_merchant/billing/gateways/first_pay.rb +128 -122
  81. data/lib/active_merchant/billing/gateways/firstdata_e4.rb +190 -64
  82. data/lib/active_merchant/billing/gateways/firstdata_e4_v27.rb +446 -0
  83. data/lib/active_merchant/billing/gateways/flo2cash.rb +215 -0
  84. data/lib/active_merchant/billing/gateways/flo2cash_simple.rb +20 -0
  85. data/lib/active_merchant/billing/gateways/forte.rb +270 -0
  86. data/lib/active_merchant/billing/gateways/garanti.rb +29 -27
  87. data/lib/active_merchant/billing/gateways/global_collect.rb +340 -0
  88. data/lib/active_merchant/billing/gateways/global_transport.rb +194 -0
  89. data/lib/active_merchant/billing/gateways/hdfc.rb +35 -36
  90. data/lib/active_merchant/billing/gateways/hps.rb +305 -0
  91. data/lib/active_merchant/billing/gateways/iats_payments.rb +271 -16
  92. data/lib/active_merchant/billing/gateways/in_context_paypal_express.rb +15 -0
  93. data/lib/active_merchant/billing/gateways/inspire.rb +29 -32
  94. data/lib/active_merchant/billing/gateways/instapay.rb +5 -6
  95. data/lib/active_merchant/billing/gateways/ipp.rb +175 -0
  96. data/lib/active_merchant/billing/gateways/iridium.rb +247 -41
  97. data/lib/active_merchant/billing/gateways/itransact.rb +4 -5
  98. data/lib/active_merchant/billing/gateways/iveri.rb +251 -0
  99. data/lib/active_merchant/billing/gateways/jetpay.rb +198 -71
  100. data/lib/active_merchant/billing/gateways/jetpay_v2.rb +437 -0
  101. data/lib/active_merchant/billing/gateways/komoju.rb +115 -0
  102. data/lib/active_merchant/billing/gateways/kushki.rb +219 -0
  103. data/lib/active_merchant/billing/gateways/latitude19.rb +411 -0
  104. data/lib/active_merchant/billing/gateways/linkpoint.rb +45 -43
  105. data/lib/active_merchant/billing/gateways/litle.rb +328 -444
  106. data/lib/active_merchant/billing/gateways/mastercard.rb +267 -0
  107. data/lib/active_merchant/billing/gateways/maxipago.rb +145 -115
  108. data/lib/active_merchant/billing/gateways/mercado_pago.rb +277 -0
  109. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +37 -19
  110. data/lib/active_merchant/billing/gateways/merchant_one.rb +13 -15
  111. data/lib/active_merchant/billing/gateways/merchant_partners.rb +245 -0
  112. data/lib/active_merchant/billing/gateways/merchant_ware.rb +57 -60
  113. data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +59 -48
  114. data/lib/active_merchant/billing/gateways/merchant_warrior.rb +38 -19
  115. data/lib/active_merchant/billing/gateways/mercury.rb +77 -54
  116. data/lib/active_merchant/billing/gateways/metrics_global.rb +11 -30
  117. data/lib/active_merchant/billing/gateways/micropayment.rb +183 -0
  118. data/lib/active_merchant/billing/gateways/migs.rb +81 -22
  119. data/lib/active_merchant/billing/gateways/modern_payments.rb +3 -3
  120. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +23 -25
  121. data/lib/active_merchant/billing/gateways/monei.rb +307 -0
  122. data/lib/active_merchant/billing/gateways/moneris.rb +146 -64
  123. data/lib/active_merchant/billing/gateways/moneris_us.rb +197 -53
  124. data/lib/active_merchant/billing/gateways/money_movers.rb +6 -15
  125. data/lib/active_merchant/billing/gateways/mundipagg.rb +292 -0
  126. data/lib/active_merchant/billing/gateways/nab_transact.rb +86 -64
  127. data/lib/active_merchant/billing/gateways/ncr_secure_pay.rb +165 -0
  128. data/lib/active_merchant/billing/gateways/net_registry.rb +11 -5
  129. data/lib/active_merchant/billing/gateways/netaxept.rb +21 -22
  130. data/lib/active_merchant/billing/gateways/netbanx.rb +290 -0
  131. data/lib/active_merchant/billing/gateways/netbilling.rb +70 -35
  132. data/lib/active_merchant/billing/gateways/netpay.rb +5 -6
  133. data/lib/active_merchant/billing/gateways/network_merchants.rb +241 -0
  134. data/lib/active_merchant/billing/gateways/nmi.rb +274 -10
  135. data/lib/active_merchant/billing/gateways/ogone.rb +90 -47
  136. data/lib/active_merchant/billing/gateways/omise.rb +324 -0
  137. data/lib/active_merchant/billing/gateways/openpay.rb +48 -20
  138. data/lib/active_merchant/billing/gateways/opp.rb +369 -0
  139. data/lib/active_merchant/billing/gateways/optimal_payment.rb +79 -44
  140. data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +22 -21
  141. data/lib/active_merchant/billing/gateways/orbital.rb +346 -102
  142. data/lib/active_merchant/billing/gateways/pac_net_raven.rb +48 -29
  143. data/lib/active_merchant/billing/gateways/pagarme.rb +246 -0
  144. data/lib/active_merchant/billing/gateways/pago_facil.rb +122 -0
  145. data/lib/active_merchant/billing/gateways/pay_conex.rb +245 -0
  146. data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +67 -48
  147. data/lib/active_merchant/billing/gateways/pay_hub.rb +213 -0
  148. data/lib/active_merchant/billing/gateways/pay_junction.rb +20 -26
  149. data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +188 -0
  150. data/lib/active_merchant/billing/gateways/pay_secure.rb +7 -15
  151. data/lib/active_merchant/billing/gateways/paybox_direct.rb +40 -36
  152. data/lib/active_merchant/billing/gateways/payeezy.rb +410 -0
  153. data/lib/active_merchant/billing/gateways/payex.rb +38 -30
  154. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +62 -36
  155. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +11 -7
  156. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +3 -3
  157. data/lib/active_merchant/billing/gateways/payflow.rb +74 -27
  158. data/lib/active_merchant/billing/gateways/payflow_express.rb +77 -81
  159. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +2 -3
  160. data/lib/active_merchant/billing/gateways/payflow_uk.rb +5 -6
  161. data/lib/active_merchant/billing/gateways/payment_express.rb +54 -45
  162. data/lib/active_merchant/billing/gateways/paymentez.rb +304 -0
  163. data/lib/active_merchant/billing/gateways/paymill.rb +160 -66
  164. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +54 -7
  165. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +4 -0
  166. data/lib/active_merchant/billing/gateways/paypal/paypal_recurring_api.rb +17 -3
  167. data/lib/active_merchant/billing/gateways/paypal.rb +36 -27
  168. data/lib/active_merchant/billing/gateways/paypal_ca.rb +1 -1
  169. data/lib/active_merchant/billing/gateways/paypal_digital_goods.rb +7 -6
  170. data/lib/active_merchant/billing/gateways/paypal_express.rb +32 -4
  171. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +3 -3
  172. data/lib/active_merchant/billing/gateways/payscout.rb +2 -13
  173. data/lib/active_merchant/billing/gateways/paystation.rb +96 -88
  174. data/lib/active_merchant/billing/gateways/payu_in.rb +248 -0
  175. data/lib/active_merchant/billing/gateways/payu_latam.rb +445 -0
  176. data/lib/active_merchant/billing/gateways/payway.rb +8 -8
  177. data/lib/active_merchant/billing/gateways/pin.rb +74 -18
  178. data/lib/active_merchant/billing/gateways/plugnpay.rb +66 -76
  179. data/lib/active_merchant/billing/gateways/pro_pay.rb +326 -0
  180. data/lib/active_merchant/billing/gateways/psigate.rb +30 -30
  181. data/lib/active_merchant/billing/gateways/psl_card.rb +27 -34
  182. data/lib/active_merchant/billing/gateways/qbms.rb +65 -54
  183. data/lib/active_merchant/billing/gateways/quantum.rb +18 -18
  184. data/lib/active_merchant/billing/gateways/quickbooks.rb +290 -0
  185. data/lib/active_merchant/billing/gateways/quickpay/quickpay_common.rb +184 -0
  186. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +295 -0
  187. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v4to7.rb +226 -0
  188. data/lib/active_merchant/billing/gateways/quickpay.rb +10 -350
  189. data/lib/active_merchant/billing/gateways/qvalent.rb +236 -0
  190. data/lib/active_merchant/billing/gateways/realex.rb +78 -48
  191. data/lib/active_merchant/billing/gateways/redsys.rb +310 -170
  192. data/lib/active_merchant/billing/gateways/s5.rb +246 -0
  193. data/lib/active_merchant/billing/gateways/safe_charge.rb +262 -0
  194. data/lib/active_merchant/billing/gateways/sage.rb +415 -119
  195. data/lib/active_merchant/billing/gateways/sage_pay.rb +195 -90
  196. data/lib/active_merchant/billing/gateways/sallie_mae.rb +11 -12
  197. data/lib/active_merchant/billing/gateways/secure_net.rb +51 -43
  198. data/lib/active_merchant/billing/gateways/secure_pay.rb +182 -10
  199. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +25 -14
  200. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +10 -18
  201. data/lib/active_merchant/billing/gateways/securion_pay.rb +264 -0
  202. data/lib/active_merchant/billing/gateways/skip_jack.rb +35 -38
  203. data/lib/active_merchant/billing/gateways/smart_ps.rb +50 -42
  204. data/lib/active_merchant/billing/gateways/so_easy_pay.rb +9 -9
  205. data/lib/active_merchant/billing/gateways/spreedly_core.rb +62 -12
  206. data/lib/active_merchant/billing/gateways/stripe.rb +536 -103
  207. data/lib/active_merchant/billing/gateways/swipe_checkout.rb +12 -18
  208. data/lib/active_merchant/billing/gateways/telr.rb +274 -0
  209. data/lib/active_merchant/billing/gateways/tns.rb +22 -0
  210. data/lib/active_merchant/billing/gateways/trans_first.rb +143 -30
  211. data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +608 -0
  212. data/lib/active_merchant/billing/gateways/transact_pro.rb +224 -0
  213. data/lib/active_merchant/billing/gateways/transax.rb +5 -6
  214. data/lib/active_merchant/billing/gateways/transnational.rb +2 -232
  215. data/lib/active_merchant/billing/gateways/trexle.rb +218 -0
  216. data/lib/active_merchant/billing/gateways/trust_commerce.rb +86 -57
  217. data/lib/active_merchant/billing/gateways/usa_epay.rb +4 -4
  218. data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +196 -89
  219. data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +157 -32
  220. data/lib/active_merchant/billing/gateways/vanco.rb +294 -0
  221. data/lib/active_merchant/billing/gateways/verifi.rb +42 -49
  222. data/lib/active_merchant/billing/gateways/viaklix.rb +11 -24
  223. data/lib/active_merchant/billing/gateways/visanet_peru.rb +233 -0
  224. data/lib/active_merchant/billing/gateways/webpay.rb +26 -28
  225. data/lib/active_merchant/billing/gateways/wepay.rb +237 -0
  226. data/lib/active_merchant/billing/gateways/wirecard.rb +153 -31
  227. data/lib/active_merchant/billing/gateways/world_net.rb +344 -0
  228. data/lib/active_merchant/billing/gateways/worldpay.rb +207 -63
  229. data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +215 -0
  230. data/lib/active_merchant/billing/gateways/worldpay_us.rb +221 -0
  231. data/lib/active_merchant/billing/gateways.rb +8 -11
  232. data/lib/active_merchant/billing/model.rb +30 -0
  233. data/lib/active_merchant/billing/network_tokenization_credit_card.rb +39 -0
  234. data/lib/active_merchant/billing/payment_token.rb +21 -0
  235. data/lib/active_merchant/billing/rails.rb +3 -0
  236. data/lib/active_merchant/billing/response.rb +31 -24
  237. data/lib/active_merchant/billing.rb +7 -1
  238. data/lib/active_merchant/connection.rb +195 -0
  239. data/lib/active_merchant/country.rb +335 -0
  240. data/lib/active_merchant/empty.rb +20 -0
  241. data/lib/active_merchant/errors.rb +35 -0
  242. data/lib/active_merchant/net_http_ssl_connection.rb +10 -0
  243. data/lib/active_merchant/network_connection_retries.rb +80 -0
  244. data/lib/active_merchant/post_data.rb +25 -0
  245. data/lib/active_merchant/posts_data.rb +92 -0
  246. data/lib/active_merchant/version.rb +1 -1
  247. data/lib/active_merchant.rb +23 -27
  248. data/lib/activemerchant.rb +1 -1
  249. data/lib/certs/cacert.pem +3988 -0
  250. data/lib/support/gateway_support.rb +7 -9
  251. data/lib/support/outbound_hosts.rb +13 -10
  252. data/lib/support/ssl_verify.rb +6 -7
  253. data/lib/support/ssl_version.rb +87 -0
  254. metadata +148 -323
  255. checksums.yaml.gz.sig +0 -0
  256. data/gem-public_cert.pem +0 -21
  257. data/lib/active_merchant/billing/expiry_date.rb +0 -34
  258. data/lib/active_merchant/billing/gateways/app55.rb +0 -185
  259. data/lib/active_merchant/billing/gateways/barclays_epdq.rb +0 -314
  260. data/lib/active_merchant/billing/gateways/certo_direct.rb +0 -277
  261. data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +0 -249
  262. data/lib/active_merchant/billing/gateways/ideal/ideal_rabobank.pem +0 -13
  263. data/lib/active_merchant/billing/gateways/ideal/ideal_response.rb +0 -29
  264. data/lib/active_merchant/billing/gateways/ideal_rabobank.rb +0 -66
  265. data/lib/active_merchant/billing/gateways/orbital/avs_result.rb +0 -93
  266. data/lib/active_merchant/billing/gateways/orbital/cvv_result.rb +0 -34
  267. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +0 -93
  268. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +0 -114
  269. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +0 -102
  270. data/lib/active_merchant/billing/gateways/samurai.rb +0 -118
  271. data/lib/active_merchant/billing/gateways/vindicia.rb +0 -361
  272. data/lib/active_merchant/billing/integrations/a1agregator/helper.rb +0 -31
  273. data/lib/active_merchant/billing/integrations/a1agregator/notification.rb +0 -186
  274. data/lib/active_merchant/billing/integrations/a1agregator/status.rb +0 -38
  275. data/lib/active_merchant/billing/integrations/a1agregator.rb +0 -26
  276. data/lib/active_merchant/billing/integrations/action_view_helper.rb +0 -74
  277. data/lib/active_merchant/billing/integrations/alipay/helper.rb +0 -34
  278. data/lib/active_merchant/billing/integrations/alipay/notification.rb +0 -101
  279. data/lib/active_merchant/billing/integrations/alipay.rb +0 -18
  280. data/lib/active_merchant/billing/integrations/authorize_net_sim/helper.rb +0 -229
  281. data/lib/active_merchant/billing/integrations/authorize_net_sim/notification.rb +0 -340
  282. data/lib/active_merchant/billing/integrations/authorize_net_sim.rb +0 -38
  283. data/lib/active_merchant/billing/integrations/bit_pay/helper.rb +0 -64
  284. data/lib/active_merchant/billing/integrations/bit_pay/notification.rb +0 -74
  285. data/lib/active_merchant/billing/integrations/bit_pay/return.rb +0 -10
  286. data/lib/active_merchant/billing/integrations/bit_pay.rb +0 -30
  287. data/lib/active_merchant/billing/integrations/bogus/helper.rb +0 -17
  288. data/lib/active_merchant/billing/integrations/bogus/notification.rb +0 -11
  289. data/lib/active_merchant/billing/integrations/bogus/return.rb +0 -10
  290. data/lib/active_merchant/billing/integrations/bogus.rb +0 -23
  291. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +0 -120
  292. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +0 -158
  293. data/lib/active_merchant/billing/integrations/chronopay/return.rb +0 -10
  294. data/lib/active_merchant/billing/integrations/chronopay.rb +0 -23
  295. data/lib/active_merchant/billing/integrations/citrus/helper.rb +0 -40
  296. data/lib/active_merchant/billing/integrations/citrus/notification.rb +0 -133
  297. data/lib/active_merchant/billing/integrations/citrus/return.rb +0 -40
  298. data/lib/active_merchant/billing/integrations/citrus.rb +0 -51
  299. data/lib/active_merchant/billing/integrations/direc_pay/helper.rb +0 -200
  300. data/lib/active_merchant/billing/integrations/direc_pay/notification.rb +0 -76
  301. data/lib/active_merchant/billing/integrations/direc_pay/return.rb +0 -32
  302. data/lib/active_merchant/billing/integrations/direc_pay/status.rb +0 -37
  303. data/lib/active_merchant/billing/integrations/direc_pay.rb +0 -41
  304. data/lib/active_merchant/billing/integrations/directebanking/helper.rb +0 -90
  305. data/lib/active_merchant/billing/integrations/directebanking/notification.rb +0 -120
  306. data/lib/active_merchant/billing/integrations/directebanking/return.rb +0 -11
  307. data/lib/active_merchant/billing/integrations/directebanking.rb +0 -47
  308. data/lib/active_merchant/billing/integrations/doku/helper.rb +0 -102
  309. data/lib/active_merchant/billing/integrations/doku/notification.rb +0 -69
  310. data/lib/active_merchant/billing/integrations/doku/return.rb +0 -10
  311. data/lib/active_merchant/billing/integrations/doku.rb +0 -24
  312. data/lib/active_merchant/billing/integrations/dotpay/helper.rb +0 -77
  313. data/lib/active_merchant/billing/integrations/dotpay/notification.rb +0 -86
  314. data/lib/active_merchant/billing/integrations/dotpay/return.rb +0 -11
  315. data/lib/active_merchant/billing/integrations/dotpay.rb +0 -22
  316. data/lib/active_merchant/billing/integrations/dwolla/common.rb +0 -23
  317. data/lib/active_merchant/billing/integrations/dwolla/helper.rb +0 -43
  318. data/lib/active_merchant/billing/integrations/dwolla/notification.rb +0 -64
  319. data/lib/active_merchant/billing/integrations/dwolla/return.rb +0 -49
  320. data/lib/active_merchant/billing/integrations/dwolla.rb +0 -23
  321. data/lib/active_merchant/billing/integrations/e_payment_plans/helper.rb +0 -34
  322. data/lib/active_merchant/billing/integrations/e_payment_plans/notification.rb +0 -84
  323. data/lib/active_merchant/billing/integrations/e_payment_plans.rb +0 -48
  324. data/lib/active_merchant/billing/integrations/easy_pay/common.rb +0 -40
  325. data/lib/active_merchant/billing/integrations/easy_pay/helper.rb +0 -36
  326. data/lib/active_merchant/billing/integrations/easy_pay/notification.rb +0 -59
  327. data/lib/active_merchant/billing/integrations/easy_pay.rb +0 -30
  328. data/lib/active_merchant/billing/integrations/epay/helper.rb +0 -55
  329. data/lib/active_merchant/billing/integrations/epay/notification.rb +0 -110
  330. data/lib/active_merchant/billing/integrations/epay.rb +0 -21
  331. data/lib/active_merchant/billing/integrations/first_data/helper.rb +0 -61
  332. data/lib/active_merchant/billing/integrations/first_data/notification.rb +0 -56
  333. data/lib/active_merchant/billing/integrations/first_data.rb +0 -38
  334. data/lib/active_merchant/billing/integrations/gestpay/common.rb +0 -42
  335. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +0 -70
  336. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +0 -85
  337. data/lib/active_merchant/billing/integrations/gestpay/return.rb +0 -10
  338. data/lib/active_merchant/billing/integrations/gestpay.rb +0 -25
  339. data/lib/active_merchant/billing/integrations/helper.rb +0 -117
  340. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +0 -58
  341. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +0 -59
  342. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +0 -68
  343. data/lib/active_merchant/billing/integrations/hi_trust.rb +0 -27
  344. data/lib/active_merchant/billing/integrations/ipay88/helper.rb +0 -118
  345. data/lib/active_merchant/billing/integrations/ipay88/notification.rb +0 -103
  346. data/lib/active_merchant/billing/integrations/ipay88/return.rb +0 -29
  347. data/lib/active_merchant/billing/integrations/ipay88.rb +0 -23
  348. data/lib/active_merchant/billing/integrations/liqpay/helper.rb +0 -43
  349. data/lib/active_merchant/billing/integrations/liqpay/notification.rb +0 -89
  350. data/lib/active_merchant/billing/integrations/liqpay/return.rb +0 -83
  351. data/lib/active_merchant/billing/integrations/liqpay.rb +0 -30
  352. data/lib/active_merchant/billing/integrations/maksuturva/helper.rb +0 -119
  353. data/lib/active_merchant/billing/integrations/maksuturva/notification.rb +0 -48
  354. data/lib/active_merchant/billing/integrations/maksuturva.rb +0 -86
  355. data/lib/active_merchant/billing/integrations/moneybookers/helper.rb +0 -75
  356. data/lib/active_merchant/billing/integrations/moneybookers/notification.rb +0 -123
  357. data/lib/active_merchant/billing/integrations/moneybookers.rb +0 -26
  358. data/lib/active_merchant/billing/integrations/nochex/helper.rb +0 -68
  359. data/lib/active_merchant/billing/integrations/nochex/notification.rb +0 -94
  360. data/lib/active_merchant/billing/integrations/nochex/return.rb +0 -10
  361. data/lib/active_merchant/billing/integrations/nochex.rb +0 -88
  362. data/lib/active_merchant/billing/integrations/notification.rb +0 -71
  363. data/lib/active_merchant/billing/integrations/paxum/common.rb +0 -24
  364. data/lib/active_merchant/billing/integrations/paxum/helper.rb +0 -42
  365. data/lib/active_merchant/billing/integrations/paxum/notification.rb +0 -33
  366. data/lib/active_merchant/billing/integrations/paxum.rb +0 -44
  367. data/lib/active_merchant/billing/integrations/pay_fast/common.rb +0 -42
  368. data/lib/active_merchant/billing/integrations/pay_fast/helper.rb +0 -50
  369. data/lib/active_merchant/billing/integrations/pay_fast/notification.rb +0 -134
  370. data/lib/active_merchant/billing/integrations/pay_fast/return.rb +0 -10
  371. data/lib/active_merchant/billing/integrations/pay_fast.rb +0 -70
  372. data/lib/active_merchant/billing/integrations/paydollar/helper.rb +0 -41
  373. data/lib/active_merchant/billing/integrations/paydollar/notification.rb +0 -60
  374. data/lib/active_merchant/billing/integrations/paydollar/return.rb +0 -15
  375. data/lib/active_merchant/billing/integrations/paydollar.rb +0 -59
  376. data/lib/active_merchant/billing/integrations/payflow_link/helper.rb +0 -116
  377. data/lib/active_merchant/billing/integrations/payflow_link/notification.rb +0 -78
  378. data/lib/active_merchant/billing/integrations/payflow_link.rb +0 -21
  379. data/lib/active_merchant/billing/integrations/paypal/helper.rb +0 -119
  380. data/lib/active_merchant/billing/integrations/paypal/notification.rb +0 -227
  381. data/lib/active_merchant/billing/integrations/paypal/return.rb +0 -10
  382. data/lib/active_merchant/billing/integrations/paypal.rb +0 -39
  383. data/lib/active_merchant/billing/integrations/paypal_payments_advanced/helper.rb +0 -15
  384. data/lib/active_merchant/billing/integrations/paypal_payments_advanced.rb +0 -20
  385. data/lib/active_merchant/billing/integrations/paysbuy/helper.rb +0 -15
  386. data/lib/active_merchant/billing/integrations/paysbuy/notification.rb +0 -39
  387. data/lib/active_merchant/billing/integrations/paysbuy.rb +0 -36
  388. data/lib/active_merchant/billing/integrations/payu_in/helper.rb +0 -76
  389. data/lib/active_merchant/billing/integrations/payu_in/notification.rb +0 -154
  390. data/lib/active_merchant/billing/integrations/payu_in/return.rb +0 -36
  391. data/lib/active_merchant/billing/integrations/payu_in.rb +0 -36
  392. data/lib/active_merchant/billing/integrations/payu_in_paisa/helper.rb +0 -19
  393. data/lib/active_merchant/billing/integrations/payu_in_paisa/notification.rb +0 -13
  394. data/lib/active_merchant/billing/integrations/payu_in_paisa/return.rb +0 -16
  395. data/lib/active_merchant/billing/integrations/payu_in_paisa.rb +0 -30
  396. data/lib/active_merchant/billing/integrations/platron/helper.rb +0 -32
  397. data/lib/active_merchant/billing/integrations/platron/notification.rb +0 -113
  398. data/lib/active_merchant/billing/integrations/platron.rb +0 -28
  399. data/lib/active_merchant/billing/integrations/pxpay/helper.rb +0 -112
  400. data/lib/active_merchant/billing/integrations/pxpay/notification.rb +0 -157
  401. data/lib/active_merchant/billing/integrations/pxpay/return.rb +0 -25
  402. data/lib/active_merchant/billing/integrations/pxpay.rb +0 -31
  403. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +0 -96
  404. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +0 -137
  405. data/lib/active_merchant/billing/integrations/quickpay.rb +0 -21
  406. data/lib/active_merchant/billing/integrations/rbkmoney/helper.rb +0 -23
  407. data/lib/active_merchant/billing/integrations/rbkmoney/notification.rb +0 -91
  408. data/lib/active_merchant/billing/integrations/rbkmoney.rb +0 -17
  409. data/lib/active_merchant/billing/integrations/return.rb +0 -42
  410. data/lib/active_merchant/billing/integrations/robokassa/common.rb +0 -19
  411. data/lib/active_merchant/billing/integrations/robokassa/helper.rb +0 -50
  412. data/lib/active_merchant/billing/integrations/robokassa/notification.rb +0 -55
  413. data/lib/active_merchant/billing/integrations/robokassa/return.rb +0 -17
  414. data/lib/active_merchant/billing/integrations/robokassa.rb +0 -49
  415. data/lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb +0 -33
  416. data/lib/active_merchant/billing/integrations/sage_pay_form/helper.rb +0 -136
  417. data/lib/active_merchant/billing/integrations/sage_pay_form/notification.rb +0 -210
  418. data/lib/active_merchant/billing/integrations/sage_pay_form/return.rb +0 -31
  419. data/lib/active_merchant/billing/integrations/sage_pay_form.rb +0 -37
  420. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +0 -107
  421. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +0 -171
  422. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +0 -58
  423. data/lib/active_merchant/billing/integrations/two_checkout.rb +0 -44
  424. data/lib/active_merchant/billing/integrations/valitor/helper.rb +0 -86
  425. data/lib/active_merchant/billing/integrations/valitor/notification.rb +0 -13
  426. data/lib/active_merchant/billing/integrations/valitor/response_fields.rb +0 -97
  427. data/lib/active_merchant/billing/integrations/valitor/return.rb +0 -13
  428. data/lib/active_merchant/billing/integrations/valitor.rb +0 -33
  429. data/lib/active_merchant/billing/integrations/verkkomaksut/helper.rb +0 -88
  430. data/lib/active_merchant/billing/integrations/verkkomaksut/notification.rb +0 -59
  431. data/lib/active_merchant/billing/integrations/verkkomaksut.rb +0 -20
  432. data/lib/active_merchant/billing/integrations/web_pay/common.rb +0 -50
  433. data/lib/active_merchant/billing/integrations/web_pay/helper.rb +0 -68
  434. data/lib/active_merchant/billing/integrations/web_pay/notification.rb +0 -51
  435. data/lib/active_merchant/billing/integrations/web_pay.rb +0 -45
  436. data/lib/active_merchant/billing/integrations/webmoney/common.rb +0 -17
  437. data/lib/active_merchant/billing/integrations/webmoney/helper.rb +0 -40
  438. data/lib/active_merchant/billing/integrations/webmoney/notification.rb +0 -47
  439. data/lib/active_merchant/billing/integrations/webmoney.rb +0 -43
  440. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/common.rb +0 -104
  441. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/helper.rb +0 -145
  442. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/notification.rb +0 -101
  443. data/lib/active_merchant/billing/integrations/wirecard_checkout_page/return.rb +0 -35
  444. data/lib/active_merchant/billing/integrations/wirecard_checkout_page.rb +0 -39
  445. data/lib/active_merchant/billing/integrations/world_pay/helper.rb +0 -101
  446. data/lib/active_merchant/billing/integrations/world_pay/notification.rb +0 -160
  447. data/lib/active_merchant/billing/integrations/world_pay.rb +0 -34
  448. data/lib/active_merchant/billing/integrations.rb +0 -17
  449. data.tar.gz.sig +0 -0
  450. metadata.gz.sig +0 -1
@@ -1,50 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Robokassa
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- include Common
7
-
8
- def initialize(order, account, options = {})
9
- @md5secret = options.delete(:secret)
10
- super
11
- end
12
-
13
- def form_fields
14
- @fields.merge(ActiveMerchant::Billing::Integrations::Robokassa.signature_parameter_name => generate_signature)
15
- end
16
-
17
- def main_params
18
- [:account, :amount, :order].map {|key| @fields[mappings[key]]}
19
- end
20
-
21
- def params
22
- @fields
23
- end
24
-
25
- def secret
26
- @md5secret
27
- end
28
-
29
- def method_missing(method_id, *args)
30
- method_id = method_id.to_s.gsub(/=$/, '')
31
-
32
- # support for robokassa custom parameters
33
- if method_id =~ /^shp/
34
- add_field method_id, args.last
35
- end
36
-
37
- super
38
- end
39
-
40
- mapping :account, 'MrchLogin'
41
- mapping :amount, 'OutSum'
42
- mapping :currency, 'IncCurrLabel'
43
- mapping :order, 'InvId'
44
- mapping :description, 'Desc'
45
- mapping :email, 'Email'
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,55 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Robokassa
5
- class Notification < ActiveMerchant::Billing::Integrations::Notification
6
- include Common
7
-
8
- def self.recognizes?(params)
9
- params.has_key?('InvId') && params.has_key?('OutSum')
10
- end
11
-
12
- def complete?
13
- true
14
- end
15
-
16
- def amount
17
- BigDecimal.new(gross)
18
- end
19
-
20
- def item_id
21
- params['InvId']
22
- end
23
-
24
- def security_key
25
- params[ActiveMerchant::Billing::Integrations::Robokassa.signature_parameter_name].to_s.downcase
26
- end
27
-
28
- def gross
29
- params['OutSum']
30
- end
31
-
32
- def status
33
- 'success'
34
- end
35
-
36
- def secret
37
- @options[:secret]
38
- end
39
-
40
- def main_params
41
- [gross, item_id]
42
- end
43
-
44
- def acknowledge(authcode = nil)
45
- security_key == generate_signature
46
- end
47
-
48
- def success_response(*args)
49
- "OK#{item_id}"
50
- end
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,17 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Robokassa
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- def item_id
7
- @params['InvId']
8
- end
9
-
10
- def amount
11
- @params['OutSum']
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,49 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
-
5
- # Documentation: http://robokassa.ru/Doc/En/Interface.aspx
6
- module Robokassa
7
- autoload :Helper, File.dirname(__FILE__) + '/robokassa/helper.rb'
8
- autoload :Notification, File.dirname(__FILE__) + '/robokassa/notification.rb'
9
- autoload :Return, File.dirname(__FILE__) + '/robokassa/return.rb'
10
- autoload :Common, File.dirname(__FILE__) + '/robokassa/common.rb'
11
-
12
- # Overwrite this if you want to change the Robokassa test url
13
- mattr_accessor :test_url
14
- self.test_url = 'http://test.robokassa.ru/Index.aspx'
15
-
16
- # Overwrite this if you want to change the Robokassa production url
17
- mattr_accessor :production_url
18
- self.production_url = 'https://merchant.roboxchange.com/Index.aspx'
19
-
20
- mattr_accessor :signature_parameter_name
21
- self.signature_parameter_name = 'SignatureValue'
22
-
23
- def self.service_url
24
- mode = ActiveMerchant::Billing::Base.integration_mode
25
- case mode
26
- when :production
27
- self.production_url
28
- when :test
29
- self.test_url
30
- else
31
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
32
- end
33
- end
34
-
35
- def self.helper(order, account, options = {})
36
- Helper.new(order, account, options)
37
- end
38
-
39
- def self.notification(query_string, options = {})
40
- Notification.new(query_string, options)
41
- end
42
-
43
- def self.return(query_string)
44
- Return.new(query_string)
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,33 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module SagePayForm
5
- module Encryption
6
- def sage_encrypt(plaintext, key)
7
- Base64.strict_encode64(sage_encrypt_xor(plaintext, key))
8
- end
9
-
10
- def sage_decrypt(ciphertext, key)
11
- sage_encrypt_xor(Base64.decode64(ciphertext), key)
12
- end
13
-
14
- def sage_encrypt_salt(min, max)
15
- length = rand(max - min + 1) + min
16
- SecureRandom.base64(length + 4)[0, length]
17
- end
18
-
19
- private
20
-
21
- def sage_encrypt_xor(data, key)
22
- raise 'No key provided' if key.blank?
23
-
24
- key *= (data.bytesize.to_f / key.bytesize.to_f).ceil
25
- key = key[0, data.bytesize]
26
-
27
- data.bytes.zip(key.bytes).map { |b1, b2| (b1 ^ b2).chr }.join
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,136 +0,0 @@
1
- require 'uri'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module SagePayForm
7
- class Helper < ActiveMerchant::Billing::Integrations::Helper
8
- include Encryption
9
-
10
- mapping :credential2, 'EncryptKey'
11
-
12
- mapping :account, 'Vendor'
13
- mapping :amount, 'Amount'
14
- mapping :currency, 'Currency'
15
-
16
- mapping :order, 'VendorTxCode'
17
-
18
- mapping :customer,
19
- :first_name => 'BillingFirstnames',
20
- :last_name => 'BillingSurname',
21
- :email => 'CustomerEMail',
22
- :phone => 'BillingPhone',
23
- :send_email_confirmation => 'SendEmail'
24
-
25
- mapping :billing_address,
26
- :city => 'BillingCity',
27
- :address1 => 'BillingAddress1',
28
- :address2 => 'BillingAddress2',
29
- :state => 'BillingState',
30
- :zip => 'BillingPostCode',
31
- :country => 'BillingCountry'
32
-
33
- mapping :shipping_address,
34
- :city => 'DeliveryCity',
35
- :address1 => 'DeliveryAddress1',
36
- :address2 => 'DeliveryAddress2',
37
- :state => 'DeliveryState',
38
- :zip => 'DeliveryPostCode',
39
- :country => 'DeliveryCountry'
40
-
41
- mapping :return_url, 'SuccessURL'
42
- mapping :description, 'Description'
43
-
44
- class_attribute :referrer_id
45
-
46
- def shipping_address(params = {})
47
- @shipping_address_set = true unless params.empty?
48
-
49
- params.each do |k, v|
50
- field = mappings[:shipping_address][k]
51
- add_field(field, v) unless field.nil?
52
- end
53
- end
54
-
55
- def map_billing_address_to_shipping_address
56
- %w(City Address1 Address2 State PostCode Country).each do |field|
57
- fields["Delivery#{field}"] = fields["Billing#{field}"]
58
- end
59
- end
60
-
61
- def form_fields
62
- map_billing_address_to_shipping_address unless @shipping_address_set
63
-
64
- fields['DeliveryFirstnames'] ||= fields['BillingFirstnames']
65
- fields['DeliverySurname'] ||= fields['BillingSurname']
66
-
67
- fields['FailureURL'] ||= fields['SuccessURL']
68
-
69
- fields['BillingPostCode'] ||= "0000"
70
- fields['DeliveryPostCode'] ||= "0000"
71
-
72
- crypt_skip = ['Vendor', 'EncryptKey', 'SendEmail']
73
- crypt_skip << 'BillingState' unless fields['BillingCountry'] == 'US'
74
- crypt_skip << 'DeliveryState' unless fields['DeliveryCountry'] == 'US'
75
- crypt_skip << 'CustomerEMail' unless fields['SendEmail']
76
- key = fields['EncryptKey']
77
- @crypt ||= create_crypt_field(fields.except(*crypt_skip), key)
78
-
79
- result = {
80
- 'VPSProtocol' => '2.23',
81
- 'TxType' => 'PAYMENT',
82
- 'Vendor' => @fields['Vendor'],
83
- 'Crypt' => @crypt
84
- }
85
- result['ReferrerID'] = referrer_id if referrer_id
86
- result
87
- end
88
-
89
- private
90
-
91
- def create_crypt_field(fields, key)
92
- parts = fields.map { |k, v| "#{k}=#{sanitize(k, v)}" unless v.nil? }.compact.shuffle
93
- parts.unshift(sage_encrypt_salt(key.length, key.length * 2))
94
- sage_encrypt(parts.join('&'), key)
95
- end
96
-
97
- def sanitize(key, value)
98
- reject = exact = nil
99
-
100
- case key
101
- when /URL$/
102
- # allow all
103
- when 'VendorTxCode'
104
- reject = /[^A-Za-z0-9{}._-]+/
105
- when /[Nn]ames?$/
106
- reject = %r{[^[:alpha:] /\\.'-]+}
107
- when /(?:Address[12]|City)$/
108
- reject = %r{[^[:alnum:] +'/\\:,.\n()-]+}
109
- when /PostCode$/
110
- reject = /[^A-Za-z0-9 -]+/
111
- when /Phone$/
112
- reject = /[^0-9A-Za-z+ ()-]+/
113
- when 'Currency'
114
- exact = /^[A-Z]{3}$/
115
- when /State$/
116
- exact = /^[A-Z]{2}$/
117
- when 'Description'
118
- value = value[0...100]
119
- else
120
- reject = /&+/
121
- end
122
-
123
- if exact
124
- raise ArgumentError, "Invalid value for #{key}: #{value.inspect}" unless value =~ exact
125
- value
126
- elsif reject
127
- value.gsub(reject, ' ')
128
- else
129
- value
130
- end
131
- end
132
- end
133
- end
134
- end
135
- end
136
- end
@@ -1,210 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module SagePayForm
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- class CryptError < StandardError; end
9
-
10
- include Encryption
11
-
12
- def initialize(post_data, options)
13
- super
14
- load_crypt_params(params['crypt'], options[:credential2])
15
- end
16
-
17
- # Was the transaction complete?
18
- def complete?
19
- status_code == 'OK'
20
- end
21
-
22
- # Was the transaction cancelled?
23
- # Unfortunately, we can't distinguish "user abort" from "idle too long".
24
- def cancelled?
25
- status_code == 'ABORT'
26
- end
27
-
28
- # Text version of #complete?, since we don't support Pending.
29
- def status
30
- complete? ? 'Completed' : 'Failed'
31
- end
32
-
33
- # Status of transaction. List of possible values:
34
- # <tt>OK</tt>:: Transaction completed successfully.
35
- # <tt>NOTAUTHED</tt>:: Incorrect card details / insufficient funds.
36
- # <tt>MALFORMED</tt>:: Invalid input data.
37
- # <tt>INVALID</tt>:: Valid input data, but some fields are incorrect.
38
- # <tt>ABORT</tt>:: User hit cancel button or went idle for 15+ minutes.
39
- # <tt>REJECTED</tt>:: Rejected by account fraud screening rules.
40
- # <tt>AUTHENTICATED</tt>:: Authenticated card details secured at SagePay.
41
- # <tt>REGISTERED</tt>:: Non-authenticated card details secured at SagePay.
42
- # <tt>ERROR</tt>:: Problem internal to SagePay.
43
- def status_code
44
- params['Status']
45
- end
46
-
47
- # Check this if #completed? is false.
48
- def message
49
- params['StatusDetail']
50
- end
51
-
52
- # Vendor-supplied code (:order mapping).
53
- def item_id
54
- params['VendorTxCode']
55
- end
56
-
57
- # Internal SagePay code, typically "{LONG-UUID}".
58
- def transaction_id
59
- params['VPSTxId']
60
- end
61
-
62
- # Authorization number (only if #completed?).
63
- def auth_id
64
- params['TxAuthNo']
65
- end
66
-
67
- # Total amount (no fees).
68
- def gross
69
- params['Amount']
70
- end
71
-
72
- # AVS and CV2 check results. Possible values:
73
- # <tt>ALL MATCH</tt>::
74
- # <tt>SECURITY CODE MATCH ONLY</tt>::
75
- # <tt>ADDRESS MATCH ONLY</tt>::
76
- # <tt>NO DATA MATCHES</tt>::
77
- # <tt>DATA NOT CHECKED</tt>::
78
- def avs_cv2_result
79
- params['AVSCV2']
80
- end
81
-
82
- # Numeric address check. Possible values:
83
- # <tt>NOTPROVIDED</tt>::
84
- # <tt>NOTCHECKED</tt>::
85
- # <tt>MATCHED</tt>::
86
- # <tt>NOTMATCHED</tt>::
87
- def address_result
88
- params['AddressResult']
89
- end
90
-
91
- # Post code check. Possible values:
92
- # <tt>NOTPROVIDED</tt>::
93
- # <tt>NOTCHECKED</tt>::
94
- # <tt>MATCHED</tt>::
95
- # <tt>NOTMATCHED</tt>::
96
- def post_code_result
97
- params['PostCodeResult']
98
- end
99
-
100
- # CV2 code check. Possible values:
101
- # <tt>NOTPROVIDED</tt>::
102
- # <tt>NOTCHECKED</tt>::
103
- # <tt>MATCHED</tt>::
104
- # <tt>NOTMATCHED</tt>::
105
- def cv2_result
106
- params['CV2Result']
107
- end
108
-
109
- # Was the Gift Aid box checked?
110
- def gift_aid?
111
- params['GiftAid'] == '1'
112
- end
113
-
114
- # Result of 3D Secure checks. Possible values:
115
- # <tt>OK</tt>:: Authenticated correctly.
116
- # <tt>NOTCHECKED</tt>:: Authentication not performed.
117
- # <tt>NOTAVAILABLE</tt>:: Card not auth-capable, or auth is otherwise impossible.
118
- # <tt>NOTAUTHED</tt>:: User failed authentication.
119
- # <tt>INCOMPLETE</tt>:: Authentication unable to complete.
120
- # <tt>ERROR</tt>:: Unable to attempt authentication due to data / service errors.
121
- def buyer_auth_result
122
- params['3DSecureStatus']
123
- end
124
-
125
- # Encoded 3D Secure result code.
126
- def buyer_auth_result_code
127
- params['CAVV']
128
- end
129
-
130
- # Address confirmation status. PayPal only. Possible values:
131
- # <tt>NONE</tt>::
132
- # <tt>CONFIRMED</tt>::
133
- # <tt>UNCONFIRMED</tt>::
134
- def address_status
135
- params['AddressStatus']
136
- end
137
-
138
- # Payer verification. Undocumented.
139
- def payer_verified?
140
- params['PayerStatus'] == 'VERIFIED'
141
- end
142
-
143
- # Credit card type. Possible values:
144
- # <tt>VISA</tt>:: Visa
145
- # <tt>MC</tt>:: MasterCard
146
- # <tt>DELTA</tt>:: Delta
147
- # <tt>SOLO</tt>:: Solo
148
- # <tt>MAESTRO</tt>:: Maestro (UK and International)
149
- # <tt>UKE</tt>:: Visa Electron
150
- # <tt>AMEX</tt>:: American Express
151
- # <tt>DC</tt>:: Diners Club
152
- # <tt>JCB</tt>:: JCB
153
- # <tt>LASER</tt>:: Laser
154
- # <tt>PAYPAL</tt>:: PayPal
155
- def credit_card_type
156
- params['CardType']
157
- end
158
-
159
- # Last four digits of credit card.
160
- def credit_card_last_4_digits
161
- params['Last4Digits']
162
- end
163
-
164
- # Used by composition methods, but not supplied by SagePay.
165
- def currency
166
- nil
167
- end
168
-
169
- def test?
170
- false
171
- end
172
-
173
- def acknowledge
174
- true
175
- end
176
-
177
- private
178
-
179
- def load_crypt_params(crypt, key)
180
- raise MissingCryptData if crypt.blank?
181
- raise MissingCryptKey if key.blank?
182
-
183
- crypt_data = sage_decrypt(crypt.gsub(' ', '+'), key)
184
- raise InvalidCryptData unless crypt_data =~ /(^|&)Status=/
185
-
186
- params.clear
187
- parse(crypt_data)
188
- end
189
-
190
- class MissingCryptKey < CryptError
191
- def message
192
- 'No merchant decryption key supplied'
193
- end
194
- end
195
- class MissingCryptData < CryptError
196
- def message
197
- 'No data received from SagePay'
198
- end
199
- end
200
- class InvalidCryptData < CryptError
201
- def message
202
- 'Invalid data received from SagePay'
203
- end
204
- end
205
-
206
- end
207
- end
208
- end
209
- end
210
- end
@@ -1,31 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module SagePayForm
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
-
7
- def initialize(query_string, options)
8
- begin
9
- @notification = Notification.new(query_string, options)
10
- rescue Notification::CryptError => e
11
- @message = e.message
12
- end
13
- end
14
-
15
- def success?
16
- @notification && @notification.complete?
17
- end
18
-
19
- def cancelled?
20
- @notification && @notification.cancelled?
21
- end
22
-
23
- def message
24
- @message || @notification.message
25
- end
26
-
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,37 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module SagePayForm
5
- autoload :Helper, File.dirname(__FILE__) + '/sage_pay_form/helper.rb'
6
- autoload :Return, File.dirname(__FILE__) + '/sage_pay_form/return.rb'
7
- autoload :Notification, File.dirname(__FILE__) + '/sage_pay_form/notification.rb'
8
- autoload :Encryption, File.dirname(__FILE__) + '/sage_pay_form/encryption.rb'
9
-
10
- mattr_accessor :production_url
11
- mattr_accessor :test_url
12
- mattr_accessor :simulate_url
13
- self.production_url = 'https://live.sagepay.com/gateway/service/vspform-register.vsp'
14
- self.test_url = 'https://test.sagepay.com/gateway/service/vspform-register.vsp'
15
- self.simulate_url = 'https://test.sagepay.com/Simulator/VSPFormGateway.asp'
16
-
17
- def self.return(query_string, options = {})
18
- Return.new(query_string, options)
19
- end
20
-
21
- def self.service_url
22
- mode = ActiveMerchant::Billing::Base.integration_mode
23
- case mode
24
- when :production
25
- self.production_url
26
- when :test
27
- self.test_url
28
- when :simulate
29
- self.simulate_url
30
- else
31
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end