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,93 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- class OrbitalGateway < Gateway
4
- # Unfortunately, Orbital uses their own special codes for AVS responses
5
- # that are different than the standard codes defined in
6
- # <tt>ActiveMerchant::Billing::AVSResult</tt>.
7
- #
8
- # This class encapsulates the response codes shown on page 240 of their spec:
9
- # http://download.chasepaymentech.com/docs/orbital/orbital_gateway_xml_specification.pdf
10
- #
11
- class AVSResult < ActiveMerchant::Billing::AVSResult
12
- CODES = {
13
- '1' => 'No address supplied',
14
- '2' => 'Bill-to address did not pass Auth Host edit checks',
15
- '3' => 'AVS not performed',
16
- '4' => 'Issuer does not participate in AVS',
17
- '5' => 'Edit-error - AVS data is invalid',
18
- '6' => 'System unavailable or time-out',
19
- '7' => 'Address information unavailable',
20
- '8' => 'Transaction Ineligible for AVS',
21
- '9' => 'Zip Match/Zip 4 Match/Locale match',
22
- 'A' => 'Zip Match/Zip 4 Match/Locale no match',
23
- 'B' => 'Zip Match/Zip 4 no Match/Locale match',
24
- 'C' => 'Zip Match/Zip 4 no Match/Locale no match',
25
- 'D' => 'Zip No Match/Zip 4 Match/Locale match',
26
- 'E' => 'Zip No Match/Zip 4 Match/Locale no match',
27
- 'F' => 'Zip No Match/Zip 4 No Match/Locale match',
28
- 'G' => 'No match at all',
29
- 'H' => 'Zip Match/Locale match',
30
- 'J' => 'Issuer does not participate in Global AVS',
31
- 'JA' => 'International street address and postal match',
32
- 'JB' => 'International street address match. Postal code not verified',
33
- 'JC' => 'International street address and postal code not verified',
34
- 'JD' => 'International postal code match. Street address not verified',
35
- 'M1' => 'Cardholder name matches',
36
- 'M2' => 'Cardholder name, billing address, and postal code matches',
37
- 'M3' => 'Cardholder name and billing code matches',
38
- 'M4' => 'Cardholder name and billing address match',
39
- 'M5' => 'Cardholder name incorrect, billing address and postal code match',
40
- 'M6' => 'Cardholder name incorrect, billing postal code matches',
41
- 'M7' => 'Cardholder name incorrect, billing address matches',
42
- 'M8' => 'Cardholder name, billing address and postal code are all incorrect',
43
- 'N3' => 'Address matches, ZIP not verified',
44
- 'N4' => 'Address and ZIP code not verified due to incompatible formats',
45
- 'N5' => 'Address and ZIP code match (International only)',
46
- 'N6' => 'Address not verified (International only)',
47
- 'N7' => 'ZIP matches, address not verified',
48
- 'N8' => 'Address and ZIP code match (International only)',
49
- 'N9' => 'Address and ZIP code match (UK only)',
50
- 'R' => 'Issuer does not participate in AVS',
51
- 'UK' => 'Unknown',
52
- 'X' => 'Zip Match/Zip 4 Match/Address Match',
53
- 'Z' => 'Zip Match/Locale no match',
54
- }
55
-
56
- # Map vendor's AVS result code to a postal match code
57
- ORBITAL_POSTAL_MATCH_CODE = {
58
- 'Y' => %w( 9 A B C H JA JD M2 M3 M5 N5 N8 N9 X Z ),
59
- 'N' => %w( D E F G M8 ),
60
- 'X' => %w( 4 J R ),
61
- nil => %w( 1 2 3 5 6 7 8 JB JC M1 M4 M6 M7 N3 N4 N6 N7 UK )
62
- }.inject({}) do |map, (type, codes)|
63
- codes.each { |code| map[code] = type }
64
- map
65
- end
66
-
67
- # Map vendor's AVS result code to a street match code
68
- ORBITAL_STREET_MATCH_CODE = {
69
- 'Y' => %w( 9 B D F H JA JB M2 M4 M5 M6 M7 N3 N5 N7 N8 N9 X ),
70
- 'N' => %w( A C E G M8 Z ),
71
- 'X' => %w( 4 J R ),
72
- nil => %w( 1 2 3 5 6 7 8 JC JD M1 M3 N4 N6 UK )
73
- }.inject({}) do |map, (type, codes)|
74
- codes.each { |code| map[code] = type }
75
- map
76
- end
77
-
78
- def self.messages
79
- CODES
80
- end
81
-
82
- def initialize(code)
83
- @code = code.to_s.strip.upcase unless code.blank?
84
- if @code
85
- @message = CODES[@code]
86
- @postal_match = ORBITAL_POSTAL_MATCH_CODE[@code]
87
- @street_match = ORBITAL_STREET_MATCH_CODE[@code]
88
- end
89
- end
90
- end
91
- end
92
- end
93
- end
@@ -1,34 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- class OrbitalGateway < Gateway
4
- # Unfortunately, Orbital uses their own special codes for CVV responses
5
- # that are different than the standard codes defined in
6
- # <tt>ActiveMerchant::Billing::CVVResult</tt>.
7
- #
8
- # This class encapsulates the response codes shown on page 255 of their spec:
9
- # http://download.chasepaymentech.com/docs/orbital/orbital_gateway_xml_specification.pdf
10
- #
11
- class CVVResult < ActiveMerchant::Billing::CVVResult
12
- MESSAGES = {
13
- 'M' => 'Match',
14
- 'N' => 'No match',
15
- 'P' => 'Not processed',
16
- 'S' => 'Should have been present',
17
- 'U' => 'Unsupported by issuer/Issuer unable to process request',
18
- 'I' => 'Invalid',
19
- 'Y' => 'Invalid',
20
- '' => 'Not applicable'
21
- }
22
-
23
- def self.messages
24
- MESSAGES
25
- end
26
-
27
- def initialize(code)
28
- @code = code.blank? ? '' : code.upcase
29
- @message = MESSAGES[@code]
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,93 +0,0 @@
1
- require File.dirname(__FILE__) + '/sage_core'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- class SageBankcardGateway < Gateway #:nodoc:
6
- include SageCore
7
- self.live_url = 'https://www.sagepayments.net/cgi-bin/eftBankcard.dll?transaction'
8
- self.source = 'bankcard'
9
-
10
- # Credit cards supported by Sage
11
- # * VISA
12
- # * MasterCard
13
- # * AMEX
14
- # * Diners
15
- # * Carte Blanche
16
- # * Discover
17
- # * JCB
18
- # * Sears
19
- self.supported_cardtypes = [:visa, :master, :american_express, :discover, :jcb, :diners_club]
20
-
21
- def authorize(money, credit_card, options = {})
22
- post = {}
23
- add_credit_card(post, credit_card)
24
- add_transaction_data(post, money, options)
25
- commit(:authorization, post)
26
- end
27
-
28
- def purchase(money, credit_card, options = {})
29
- post = {}
30
- add_credit_card(post, credit_card)
31
- add_transaction_data(post, money, options)
32
- commit(:purchase, post)
33
- end
34
-
35
- # The +money+ amount is not used. The entire amount of the
36
- # initial authorization will be captured.
37
- def capture(money, reference, options = {})
38
- post = {}
39
- add_reference(post, reference)
40
- commit(:capture, post)
41
- end
42
-
43
- def void(reference, options = {})
44
- post = {}
45
- add_reference(post, reference)
46
- commit(:void, post)
47
- end
48
-
49
- def credit(money, credit_card, options = {})
50
- deprecated CREDIT_DEPRECATION_MESSAGE
51
- refund(money, credit_card, options)
52
- end
53
-
54
- def refund(money, credit_card, options = {})
55
- post = {}
56
- add_credit_card(post, credit_card)
57
- add_transaction_data(post, money, options)
58
- commit(:credit, post)
59
- end
60
-
61
- private
62
- def exp_date(credit_card)
63
- year = sprintf("%.4i", credit_card.year)
64
- month = sprintf("%.2i", credit_card.month)
65
-
66
- "#{month}#{year[-2..-1]}"
67
- end
68
-
69
- def add_credit_card(post, credit_card)
70
- post[:C_name] = credit_card.name
71
- post[:C_cardnumber] = credit_card.number
72
- post[:C_exp] = exp_date(credit_card)
73
- post[:C_cvv] = credit_card.verification_value if credit_card.verification_value?
74
- end
75
-
76
- def parse(data)
77
- response = {}
78
- response[:success] = data[1,1]
79
- response[:code] = data[2,6]
80
- response[:message] = data[8,32].strip
81
- response[:front_end] = data[40, 2]
82
- response[:cvv_result] = data[42, 1]
83
- response[:avs_result] = data[43, 1].strip
84
- response[:risk] = data[44, 2]
85
- response[:reference] = data[46, 10]
86
-
87
- response[:order_number], response[:recurring] = data[57...-1].split("\034")
88
- response
89
- end
90
- end
91
- end
92
- end
93
-
@@ -1,114 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module SageCore #:nodoc:
4
- def self.included(base)
5
- base.cattr_accessor :source
6
- base.supported_countries = ['US', 'CA']
7
- base.homepage_url = 'http://www.sagepayments.com'
8
- base.display_name = 'Sage Payment Solutions'
9
- end
10
-
11
- # Transactions types:
12
- # <tt>01</tt> - Sale
13
- # <tt>02</tt> - AuthOnly
14
- # <tt>03</tt> - Force/PriorAuthSale
15
- # <tt>04</tt> - Void
16
- # <tt>06</tt> - Credit
17
- # <tt>11</tt> - PriorAuthSale by Reference*
18
- TRANSACTIONS = {
19
- :purchase => '01',
20
- :authorization => '02',
21
- :capture => '11',
22
- :void => '04',
23
- :credit => '06'
24
- }
25
-
26
- def initialize(options = {})
27
- requires!(options, :login, :password)
28
- super
29
- end
30
-
31
- private
32
- def add_invoice(post, options)
33
- post[:T_ordernum] = options[:order_id].slice(0, 20)
34
- post[:T_tax] = amount(options[:tax]) unless options[:tax].blank?
35
- post[:T_shipping] = amount(options[:shipping]) unless options[:shipping].blank?
36
- end
37
-
38
- def add_reference(post, reference)
39
- ref, source = reference.to_s.split(";")
40
- post[:T_reference] = ref
41
- end
42
-
43
- def add_amount(post, money)
44
- post[:T_amt] = amount(money)
45
- end
46
-
47
- def add_customer_data(post, options)
48
- post[:T_customer_number] = options[:customer] if Float(options[:customer]) rescue nil
49
- end
50
-
51
- def add_addresses(post, options)
52
- billing_address = options[:billing_address] || options[:address] || {}
53
-
54
- post[:C_address] = billing_address[:address1]
55
- post[:C_city] = billing_address[:city]
56
-
57
- if ['US', 'CA'].include?(billing_address[:country])
58
- post[:C_state] = billing_address[:state]
59
- else
60
- post[:C_state] = "Outside of United States"
61
- end
62
-
63
- post[:C_zip] = billing_address[:zip]
64
- post[:C_country] = billing_address[:country]
65
- post[:C_telephone] = billing_address[:phone]
66
- post[:C_fax] = billing_address[:fax]
67
- post[:C_email] = options[:email]
68
-
69
- if shipping_address = options[:shipping_address]
70
- post[:C_ship_name] = shipping_address[:name]
71
- post[:C_ship_address] = shipping_address[:address1]
72
- post[:C_ship_city] = shipping_address[:city]
73
- post[:C_ship_state] = shipping_address[:state]
74
- post[:C_ship_zip] = shipping_address[:zip]
75
- post[:C_ship_country] = shipping_address[:country]
76
- end
77
- end
78
-
79
- def add_transaction_data(post, money, options)
80
- add_amount(post, money)
81
- add_invoice(post, options)
82
- add_addresses(post, options)
83
- add_customer_data(post, options)
84
- end
85
-
86
- def commit(action, params)
87
- response = parse(ssl_post(self.live_url, post_data(action, params)))
88
-
89
- Response.new(success?(response), response[:message], response,
90
- :test => test?,
91
- :authorization => authorization_from(response),
92
- :avs_result => { :code => response[:avs_result] },
93
- :cvv_result => response[:cvv_result]
94
- )
95
- end
96
-
97
- def authorization_from(response)
98
- "#{response[:reference]};#{source}"
99
- end
100
-
101
- def success?(response)
102
- response[:success] == 'A'
103
- end
104
-
105
- def post_data(action, params = {})
106
- params[:M_id] = @options[:login]
107
- params[:M_key] = @options[:password]
108
- params[:T_code] = TRANSACTIONS[action]
109
-
110
- params.collect { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join("&")
111
- end
112
- end
113
- end
114
- end
@@ -1,102 +0,0 @@
1
- require File.dirname(__FILE__) + '/sage_core'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- class SageVirtualCheckGateway < Gateway #:nodoc:
6
- include SageCore
7
- self.live_url = 'https://www.sagepayments.net/cgi-bin/eftVirtualCheck.dll?transaction'
8
- self.source = 'virtual_check'
9
-
10
- def purchase(money, credit_card, options = {})
11
- post = {}
12
- add_check(post, credit_card)
13
- add_check_customer_data(post, options)
14
- add_transaction_data(post, money, options)
15
- commit(:purchase, post)
16
- end
17
-
18
- def void(reference, options = {})
19
- post = {}
20
- add_reference(post, reference)
21
- commit(:void, post)
22
- end
23
-
24
- def credit(money, credit_card, options = {})
25
- deprecated CREDIT_DEPRECATION_MESSAGE
26
- refund(money, source, options)
27
- end
28
-
29
- def refund(money, credit_card, options = {})
30
- post = {}
31
- add_check(post, credit_card)
32
- add_check_customer_data(post, options)
33
- add_transaction_data(post, money, options)
34
- commit(:credit, post)
35
- end
36
-
37
- private
38
- def add_check(post, check)
39
- post[:C_first_name] = check.first_name
40
- post[:C_last_name] = check.last_name
41
- post[:C_rte] = check.routing_number
42
- post[:C_acct] = check.account_number
43
- post[:C_check_number] = check.number
44
- post[:C_acct_type] = account_type(check)
45
- end
46
-
47
- def add_check_customer_data(post, options)
48
- # Required  Customer Type – (NACHA Transaction Class)
49
- # CCD for Commercial, Merchant Initiated
50
- # PPD for Personal, Merchant Initiated
51
- # WEB for Internet, Consumer Initiated
52
- # RCK for Returned Checks
53
- # ARC for Account Receivable Entry
54
- # TEL for TelephoneInitiated
55
- post[:C_customer_type] = "WEB"
56
-
57
- # Optional  10  Digit Originator  ID – Assigned  By for  each transaction  class  or  business  purpose. If  not provided, the default Originator ID for the specific  Customer Type will be applied. 
58
- post[:C_originator_id] = options[:originator_id]
59
-
60
- # Optional  Transaction Addenda
61
- post[:T_addenda] = options[:addenda]
62
-
63
- # Required  Check  Writer  Social  Security  Number  (  Numbers Only, No Dashes ) 
64
- post[:C_ssn] = options[:ssn].to_s.gsub(/[^\d]/, '')
65
-
66
- post[:C_dl_state_code] = options[:drivers_license_state]
67
- post[:C_dl_number] = options[:drivers_license_number]
68
- post[:C_dob] = format_birth_date(options[:date_of_birth])
69
- end
70
-
71
- def format_birth_date(date)
72
- date.respond_to?(:strftime) ? date.strftime("%m/%d/%Y") : date
73
- end
74
-
75
- # DDA for Checking
76
- # SAV for Savings 
77
- def account_type(check)
78
- case check.account_type
79
- when 'checking' then 'DDA'
80
- when 'savings' then 'SAV'
81
- else raise ArgumentError, "Unknown account type #{check.account_type}"
82
- end
83
- end
84
-
85
- def parse(data)
86
- response = {}
87
- response[:success] = data[1,1]
88
- response[:code] = data[2,6].strip
89
- response[:message] = data[8,32].strip
90
- response[:risk] = data[40, 2]
91
- response[:reference] = data[42, 10]
92
-
93
- extra_data = data[53...-1].split("\034")
94
- response[:order_number] = extra_data[0]
95
- response[:authentication_indicator] = extra_data[1]
96
- response[:authentication_disclosure] = extra_data[2]
97
- response
98
- end
99
- end
100
- end
101
- end
102
-
@@ -1,118 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- class SamuraiGateway < Gateway
4
-
5
- self.homepage_url = 'https://samurai.feefighters.com'
6
- self.display_name = 'Samurai'
7
- self.supported_countries = ['US']
8
- self.supported_cardtypes = [:visa, :master, :american_express, :discover, :jcb, :diners_club]
9
- self.default_currency = 'USD'
10
- self.money_format = :dollars
11
-
12
- def initialize(options = {})
13
- begin
14
- require 'samurai'
15
- rescue LoadError
16
- raise "Could not load the samurai gem (>= 0.2.25). Use `gem install samurai` to install it."
17
- end
18
-
19
- requires!(options, :login, :password, :processor_token)
20
- Samurai.options = {
21
- :merchant_key => options[:login],
22
- :merchant_password => options[:password],
23
- :processor_token => options[:processor_token]
24
- }
25
-
26
- super
27
- end
28
-
29
- def authorize(money, credit_card_or_vault_id, options = {})
30
- token = payment_method_token(credit_card_or_vault_id, options)
31
- return token if token.is_a?(Response)
32
-
33
- authorize = Samurai::Processor.authorize(token, amount(money), processor_options(options))
34
- handle_result(authorize)
35
- end
36
-
37
- def purchase(money, credit_card_or_vault_id, options = {})
38
- token = payment_method_token(credit_card_or_vault_id, options)
39
- return token if token.is_a?(Response)
40
-
41
- purchase = Samurai::Processor.purchase(token, amount(money), processor_options(options))
42
- handle_result(purchase)
43
- end
44
-
45
- def capture(money, authorization_id, options = {})
46
- transaction = Samurai::Transaction.find(authorization_id)
47
- handle_result(transaction.capture(amount(money)))
48
- end
49
-
50
- def refund(money, transaction_id, options = {})
51
- transaction = Samurai::Transaction.find(transaction_id)
52
- handle_result(transaction.credit(amount(money)))
53
- end
54
-
55
- def void(transaction_id, options = {})
56
- transaction = Samurai::Transaction.find(transaction_id)
57
- handle_result(transaction.void)
58
- end
59
-
60
- def store(creditcard, options = {})
61
- address = options[:billing_address] || options[:address] || {}
62
-
63
- result = Samurai::PaymentMethod.create({
64
- :card_number => creditcard.number,
65
- :expiry_month => creditcard.month.to_s.rjust(2, "0"),
66
- :expiry_year => creditcard.year.to_s,
67
- :cvv => creditcard.verification_value,
68
- :first_name => creditcard.first_name,
69
- :last_name => creditcard.last_name,
70
- :address_1 => address[:address1],
71
- :address_2 => address[:address2],
72
- :city => address[:city],
73
- :zip => address[:zip],
74
- :sandbox => test?
75
- })
76
- result.retain if options[:retain] && result.is_sensitive_data_valid && result.payment_method_token
77
-
78
- Response.new(result.is_sensitive_data_valid,
79
- message_from_result(result),
80
- { :payment_method_token => result.is_sensitive_data_valid && result.payment_method_token })
81
- end
82
-
83
- private
84
-
85
- def payment_method_token(credit_card_or_vault_id, options)
86
- return credit_card_or_vault_id if credit_card_or_vault_id.is_a?(String)
87
- store_result = store(credit_card_or_vault_id, options)
88
- store_result.success? ? store_result.params["payment_method_token"] : store_result
89
- end
90
-
91
- def handle_result(result)
92
- response_params, response_options = {}, {}
93
- if result.success?
94
- response_options[:test] = test?
95
- response_options[:authorization] = result.reference_id
96
- response_params[:reference_id] = result.reference_id
97
- response_params[:transaction_token] = result.transaction_token
98
- response_params[:payment_method_token] = result.payment_method.payment_method_token
99
- end
100
-
101
- response_options[:avs_result] = { :code => result.processor_response && result.processor_response.avs_result_code }
102
- response_options[:cvv_result] = result.processor_response && result.processor_response.cvv_result_code
103
-
104
- message = message_from_result(result)
105
- Response.new(result.success?, message, response_params, response_options)
106
- end
107
-
108
- def message_from_result(result)
109
- return "OK" if result.success?
110
- result.errors.map {|_, messages| messages }.join(" ")
111
- end
112
-
113
- def processor_options(options)
114
- options.slice(:billing_reference, :customer_reference, :custom, :descriptor)
115
- end
116
- end
117
- end
118
- end