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,84 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module EPaymentPlans
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- include ActiveMerchant::PostsData
9
- def complete?
10
- status == "Completed"
11
- end
12
-
13
- def transaction_id
14
- params['transaction_id']
15
- end
16
-
17
- def item_id
18
- params['item_id']
19
- end
20
-
21
- # When was this payment received by the client.
22
- def received_at
23
- Time.parse(params['received_at'].to_s).utc
24
- end
25
-
26
- def gross
27
- params['gross']
28
- end
29
-
30
- def currency
31
- params['currency']
32
- end
33
-
34
- def security_key
35
- params['security_key']
36
- end
37
-
38
- # Was this a test transaction?
39
- def test?
40
- params['test'] == 'test'
41
- end
42
-
43
- def status
44
- params['status'].capitalize
45
- end
46
-
47
- # Acknowledge the transaction to EPaymentPlans. This method has to be called after a new
48
- # apc arrives. EPaymentPlans will verify that all the information we received are correct
49
- # and will return ok or a fail.
50
- #
51
- # Example:
52
- #
53
- # def ipn
54
- # notify = EPaymentPlans.notification(request.raw_post)
55
- #
56
- # if notify.acknowledge
57
- # ... process order ... if notify.complete?
58
- # else
59
- # ... log possible hacking attempt ...
60
- # end
61
- def acknowledge(authcode = nil)
62
- payload = raw
63
-
64
- response = ssl_post(EPaymentPlans.notification_confirmation_url, payload)
65
-
66
- # Replace with the appropriate codes
67
- raise StandardError.new("Faulty EPaymentPlans result: #{response}") unless ["AUTHORISED", "DECLINED"].include?(response)
68
- response == "AUTHORISED"
69
- end
70
-
71
- private
72
- # Take the posted data and move the relevant data into a hash
73
- def parse(post)
74
- @raw = post
75
- for line in post.split('&')
76
- key, value = *line.scan( %r{^(\w+)\=(.*)$} ).flatten
77
- params[key] = value
78
- end
79
- end
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,48 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module EPaymentPlans
5
- autoload :Helper, File.dirname(__FILE__) + '/e_payment_plans/helper.rb'
6
- autoload :Notification, File.dirname(__FILE__) + '/e_payment_plans/notification.rb'
7
-
8
- mattr_accessor :production_url
9
- self.production_url = 'https://www.epaymentplans.com'
10
-
11
- mattr_accessor :test_url
12
- self.test_url = 'https://test.epaymentplans.com'
13
-
14
- def self.service_url
15
- mode = ActiveMerchant::Billing::Base.integration_mode
16
- case mode
17
- when :production
18
- "#{production_url}/order/purchase"
19
- when :test
20
- "#{test_url}/order/purchase"
21
- else
22
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
23
- end
24
- end
25
-
26
- def self.notification_confirmation_url
27
- mode = ActiveMerchant::Billing::Base.integration_mode
28
- case mode
29
- when :production
30
- "#{production_url}/order/confirmation"
31
- when :test
32
- "#{test_url}/order/confirmation"
33
- else
34
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
35
- end
36
- end
37
-
38
- def self.notification(post, options = {})
39
- Notification.new(post, options)
40
- end
41
-
42
- def self.return(query_string, options = {})
43
- Return.new(query_string, options)
44
- end
45
- end
46
- end
47
- end
48
- end
@@ -1,40 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module EasyPay
5
- module Common
6
- def generate_signature(type)
7
- string = case type
8
- when :request
9
- request_signature_string
10
- when :notify
11
- notify_signature_string
12
- end
13
-
14
- Digest::MD5.hexdigest(string)
15
- end
16
-
17
- def request_signature_string
18
- [
19
- @fields[mappings[:account]],
20
- @secret,
21
- @fields[mappings[:order]],
22
- @fields[mappings[:amount]]
23
- ].join
24
- end
25
-
26
- def notify_signature_string
27
- [
28
- params['order_mer_code'],
29
- params['sum'],
30
- params['mer_no'],
31
- params['card'],
32
- params['purch_date'],
33
- secret
34
- ].join
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,36 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module EasyPay
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- include Common
7
-
8
- def initialize(order, account, options = {})
9
- super
10
- @secret = options[:credential2]
11
- end
12
-
13
- def form_fields
14
- @fields.merge(ActiveMerchant::Billing::Integrations::EasyPay.signature_parameter_name => generate_signature(:request))
15
- end
16
-
17
- def params
18
- @fields
19
- end
20
-
21
- mapping :account, 'EP_MerNo'
22
- mapping :amount, 'EP_Sum'
23
- mapping :order, 'EP_OrderNo'
24
- mapping :comment, 'EP_Comment'
25
- mapping :order_info, 'EP_OrderInfo'
26
- mapping :expires, 'EP_Expires'
27
- mapping :success_url, 'EP_Success_URL'
28
- mapping :cancel_url, 'EP_Cancel_URL'
29
- mapping :debug, 'EP_Debug'
30
- mapping :url_type, 'EP_URL_Type'
31
- mapping :encoding, 'EP_Encoding'
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,59 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module EasyPay
5
- class Notification < ActiveMerchant::Billing::Integrations::Notification
6
- include Common
7
-
8
- def initialize(data, options)
9
- if options[:credential2].nil?
10
- raise ArgumentError, "You need to provide the md5 secret as the option :credential2 to verify that the notification originated from EasyPay"
11
- end
12
-
13
- super
14
- end
15
-
16
- def self.recognizes?(params)
17
- params.has_key?('order_mer_code') && params.has_key?('sum')
18
- end
19
-
20
- def complete?
21
- true
22
- end
23
-
24
- def amount
25
- BigDecimal.new(gross)
26
- end
27
-
28
- def item_id
29
- params['order_mer_code']
30
- end
31
-
32
- def security_key
33
- params[ActiveMerchant::Billing::Integrations::EasyPay.notify_signature_parameter_name]
34
- end
35
-
36
- def gross
37
- params['sum']
38
- end
39
-
40
- def status
41
- 'Completed'
42
- end
43
-
44
- def secret
45
- @options[:credential2]
46
- end
47
-
48
- def acknowledge(authcode = nil)
49
- security_key == generate_signature(:notify)
50
- end
51
-
52
- def success_response(*args)
53
- { :nothing => true }
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end
@@ -1,30 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
-
5
- # Documentation: https://ssl.easypay.by/light/
6
- module EasyPay
7
- autoload :Helper, File.dirname(__FILE__) + '/easy_pay/helper.rb'
8
- autoload :Notification, File.dirname(__FILE__) + '/easy_pay/notification.rb'
9
- autoload :Common, File.dirname(__FILE__) + '/easy_pay/common.rb'
10
-
11
- mattr_accessor :signature_parameter_name
12
- self.signature_parameter_name = 'EP_Hash'
13
-
14
- mattr_accessor :notify_signature_parameter_name
15
- self.notify_signature_parameter_name = 'notify_signature'
16
-
17
- mattr_accessor :service_url
18
- self.service_url = 'https://ssl.easypay.by/weborder/'
19
-
20
- def self.helper(order, account, options = {})
21
- Helper.new(order, account, options)
22
- end
23
-
24
- def self.notification(query_string, options = {})
25
- Notification.new(query_string, options)
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,55 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Epay
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
-
7
- def initialize(order, merchantnumber, options = {})
8
- super
9
- add_field('windowstate', 3)
10
- add_field('language', '0')
11
- add_field('orderid', format_order_number(order))
12
- @fields = Hash[@fields.sort]
13
- end
14
-
15
- def md5secret(value)
16
- @md5secret = value
17
- end
18
-
19
- def form_fields
20
- @fields.merge('hash' => generate_md5hash)
21
- end
22
-
23
- def generate_md5string
24
- @fields.sort.each.map { |key, value| key != 'hash' ? value.to_s : ''} * "" + @md5secret
25
- end
26
-
27
- def generate_md5hash
28
- Digest::MD5.hexdigest(generate_md5string)
29
- end
30
-
31
- # Limited to 20 digits max
32
- def format_order_number(number)
33
- number.to_s.gsub(/[^\w_]/, '').rjust(4, "0")[0...20]
34
- end
35
-
36
- mapping :account, 'merchantnumber'
37
- mapping :language, 'language'
38
- mapping :amount, 'amount'
39
- mapping :currency, 'currency'
40
- mapping :return_url, 'accepturl'
41
- mapping :cancel_return_url, 'cancelurl'
42
- mapping :notify_url, 'callbackurl'
43
- mapping :autocapture, 'instantcapture'
44
- mapping :description, 'description'
45
- mapping :credential3, 'md5secret'
46
- mapping :customer, ''
47
- mapping :billing_address, {}
48
- mapping :tax, ''
49
- mapping :shipping, ''
50
-
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,110 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Epay
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
-
9
- CURRENCY_CODES = {
10
- :ADP => '020', :AED => '784', :AFA => '004', :ALL => '008', :AMD => '051',
11
- :ANG => '532', :AOA => '973', :ARS => '032', :AUD => '036', :AWG => '533',
12
- :AZM => '031', :BAM => '977', :BBD => '052', :BDT => '050', :BGL => '100',
13
- :BGN => '975', :BHD => '048', :BIF => '108', :BMD => '060', :BND => '096',
14
- :BOB => '068', :BOV => '984', :BRL => '986', :BSD => '044', :BTN => '064',
15
- :BWP => '072', :BYR => '974', :BZD => '084', :CAD => '124', :CDF => '976',
16
- :CHF => '756', :CLF => '990', :CLP => '152', :CNY => '156', :COP => '170',
17
- :CRC => '188', :CUP => '192', :CVE => '132', :CYP => '196', :CZK => '203',
18
- :DJF => '262', :DKK => '208', :DOP => '214', :DZD => '012', :ECS => '218',
19
- :ECV => '983', :EEK => '233', :EGP => '818', :ERN => '232', :ETB => '230',
20
- :EUR => '978', :FJD => '242', :FKP => '238', :GBP => '826', :GEL => '981',
21
- :GHC => '288', :GIP => '292', :GMD => '270', :GNF => '324', :GTQ => '320',
22
- :GWP => '624', :GYD => '328', :HKD => '344', :HNL => '340', :HRK => '191',
23
- :HTG => '332', :HUF => '348', :IDR => '360', :ILS => '376', :INR => '356',
24
- :IQD => '368', :IRR => '364', :ISK => '352', :JMD => '388', :JOD => '400',
25
- :JPY => '392', :KES => '404', :KGS => '417', :KHR => '116', :KMF => '174',
26
- :KPW => '408', :KRW => '410', :KWD => '414', :KYD => '136', :KZT => '398',
27
- :LAK => '418', :LBP => '422', :LKR => '144', :LRD => '430', :LSL => '426',
28
- :LTL => '440', :LVL => '428', :LYD => '434', :MAD => '504', :MDL => '498',
29
- :MGF => '450', :MKD => '807', :MMK => '104', :MNT => '496', :MOP => '446',
30
- :MRO => '478', :MTL => '470', :MUR => '480', :MVR => '462', :MWK => '454',
31
- :MXN => '484', :MXV => '979', :MYR => '458', :MZM => '508', :NAD => '516',
32
- :NGN => '566', :NIO => '558', :NOK => '578', :NPR => '524', :NZD => '554',
33
- :OMR => '512', :PAB => '590', :PEN => '604', :PGK => '598', :PHP => '608',
34
- :PKR => '586', :PLN => '985', :PYG => '600', :QAR => '634', :ROL => '642',
35
- :RUB => '643', :RUR => '810', :RWF => '646', :SAR => '682', :SBD => '090',
36
- :SCR => '690', :SDD => '736', :SEK => '752', :SGD => '702', :SHP => '654',
37
- :SIT => '705', :SKK => '703', :SLL => '694', :SOS => '706', :SRG => '740',
38
- :STD => '678', :SVC => '222', :SYP => '760', :SZL => '748', :THB => '764',
39
- :TJS => '972', :TMM => '795', :TND => '788', :TOP => '776', :TPE => '626',
40
- :TRL => '792', :TRY => '949', :TTD => '780', :TWD => '901', :TZS => '834',
41
- :UAH => '980', :UGX => '800', :USD => '840', :UYU => '858', :UZS => '860',
42
- :VEB => '862', :VND => '704', :VUV => '548', :XAF => '950', :XCD => '951',
43
- :XOF => '952', :XPF => '953', :YER => '886', :YUM => '891', :ZAR => '710',
44
- :ZMK => '894', :ZWD => '716'
45
- }
46
-
47
- def complete?
48
- Integer(transaction_id) > 0
49
- end
50
-
51
- def item_id
52
- params['orderid']
53
- end
54
-
55
- def transaction_id
56
- params['txnid']
57
- end
58
-
59
- def received_at
60
- Time.mktime(params['date'][0..3], params['date'][4..5], params['date'][6..7], params['time'][0..1], params['time'][2..3])
61
- end
62
-
63
- def gross
64
- "%.2f" % (gross_cents / 100.0)
65
- end
66
-
67
- def gross_cents
68
- params['amount'].to_i
69
- end
70
-
71
- def test?
72
- return false
73
- end
74
-
75
- %w(txnid orderid amount currency date time hash fraud payercountry issuercountry txnfee subscriptionid paymenttype cardno).each do |attr|
76
- define_method(attr) do
77
- params[attr]
78
- end
79
- end
80
-
81
- def currency
82
- CURRENCY_CODES.invert[params['currency']].to_s
83
- end
84
-
85
- def amount
86
- Money.new(params['amount'].to_i, currency)
87
- end
88
-
89
- def generate_md5string
90
- md5string = String.new
91
- for line in @raw.split('&')
92
- key, value = *line.scan( %r{^([A-Za-z0-9_.]+)\=(.*)$} ).flatten
93
- md5string += params[key] if key != 'hash'
94
- end
95
- return md5string + @options[:credential3]
96
- end
97
-
98
- def generate_md5hash
99
- Digest::MD5.hexdigest(generate_md5string)
100
- end
101
-
102
- def acknowledge
103
- generate_md5hash == params['hash']
104
- end
105
-
106
- end
107
- end
108
- end
109
- end
110
- end
@@ -1,21 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Epay
5
- autoload :Helper, File.dirname(__FILE__) + '/epay/helper.rb'
6
- autoload :Notification, File.dirname(__FILE__) + '/epay/notification.rb'
7
-
8
- mattr_accessor :service_url
9
- self.service_url = 'https://ssl.ditonlinebetalingssystem.dk/integration/ewindow/Default.aspx'
10
-
11
- def self.notification(post, options = {})
12
- Notification.new(post)
13
- end
14
-
15
- def self.return(post, options = {})
16
- Return.new(post, options)
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,61 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module FirstData
5
- # First Data payment pages emulates the Authorize.Net SIM API. See
6
- # ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Helper for
7
- # more details.
8
- #
9
- # An example. Note the username as a parameter and transaction key you
10
- # will want to use later.
11
- #
12
- # payment_service_for('order_id', 'first_data_payment_page_id', :service => :first_data, :amount => 157.0) do |service|
13
- #
14
- # # You must call setup_hash and invoice
15
- #
16
- # service.setup_hash :transaction_key => '8CP6zJ7uD875J6tY',
17
- # :order_timestamp => 1206836763
18
- # service.customer_id 8
19
- # service.customer :first_name => 'g',
20
- # :last_name => 'g',
21
- # :email => 'g@g.com',
22
- # :phone => '3'
23
- # service.billing_address :zip => 'g',
24
- # :country => 'United States of America',
25
- # :address => 'g'
26
- #
27
- # service.ship_to_address :first_name => 'g',
28
- # :last_name => 'g',
29
- # :city => '',
30
- # :address => 'g',
31
- # :address2 => '',
32
- # :state => address.state,
33
- # :country => 'United States of America',
34
- # :zip => 'g'
35
- #
36
- # service.invoice "516428355" # your invoice number
37
- # # The end-user is presented with the HTML produced by the notify_url
38
- # # (using the First Data Receipt Link feature).
39
- # service.return_url "http://mysite/first_data_receipt_generator_page"
40
- # service.payment_header 'My store name'
41
- # service.add_line_item :name => 'item name', :quantity => 1, :unit_price => 0
42
- # service.test_request 'true' # only if it's just a test
43
- # service.shipping '25.0'
44
- # # Tell it to display a "0" line item for shipping, with the price in
45
- # # the name, otherwise it isn't shown at all, leaving the end user to
46
- # # wonder why the total is different than the sum of the line items.
47
- # service.add_shipping_as_line_item
48
- # server.add_tax_as_line_item # same with tax
49
- # # See the helper.rb file for various custom fields
50
- # end
51
- class Helper < ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Helper
52
- # Configure notify_url to use the "Relay Response" feature
53
- mapping :notify_url, 'x_relay_url'
54
-
55
- # Configure return_url to use the "Receipt Link" feature
56
- mapping :return_url, 'x_receipt_link_url'
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,56 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- # First Data payment pages emulates the Authorize.Net SIM API. See
7
- # ActiveMerchant::Billing::Integrations::FirstData::Notification for
8
- # more details.
9
- #
10
- # # Example:
11
- # parser = FirstData::Notification.new(request.raw_post)
12
- # passed = parser.complete?
13
- #
14
- # order = Order.find_by_order_number(parser.invoice_num)
15
- #
16
- # unless order
17
- # @message = 'Error--unable to find your transaction! Please contact us directly.'
18
- # return render :partial => 'first_data_payment_response'
19
- # end
20
- #
21
- # if order.total != parser.gross.to_f
22
- # logger.error "First Data said they paid for #{parser.gross} and it should have been #{order.total}!"
23
- # passed = false
24
- # end
25
- #
26
- # # Theoretically, First Data will *never* pass us the same transaction
27
- # # ID twice, but we can double check that... by using
28
- # # parser.transaction_id, and checking against previous orders' transaction
29
- # # id's (which you can save when the order is completed)....
30
- # unless parser.acknowledge FIRST_DATA_TRANSACTION_KEY, FIRST_DATA_RESPONSE_KEY
31
- # passed = false
32
- # logger.error "ALERT POSSIBLE FRAUD ATTEMPT"
33
- # end
34
- #
35
- # unless parser.cavv_matches? and parser.avs_code_matches?
36
- # logger.error 'Warning--non matching CC!' + params.inspect
37
- # # Could fail them here, as well (recommended)...
38
- # end
39
- #
40
- # if passed
41
- # # Set up your session, and render something that will redirect them to
42
- # # your site, most likely.
43
- # else
44
- # # Render failure or redirect them to your site where you will render failure
45
- # end
46
-
47
- module FirstData
48
- class Notification < ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Notification
49
- def acknowledge(response_key, payment_page_id)
50
- Digest::MD5.hexdigest(response_key + payment_page_id + params['x_trans_id'] + sprintf('%.2f', gross)) == params['x_MD5_Hash'].downcase
51
- end
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,38 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module FirstData
5
- autoload :Helper, 'active_merchant/billing/integrations/first_data/helper.rb'
6
- autoload :Notification, 'active_merchant/billing/integrations/first_data/notification.rb'
7
-
8
- # Overwrite this if you want to change the ANS test url
9
- mattr_accessor :test_url
10
- self.test_url = 'https://demo.globalgatewaye4.firstdata.com/payment'
11
-
12
- # Overwrite this if you want to change the ANS production url
13
- mattr_accessor :production_url
14
- self.production_url = 'https://checkout.globalgatewaye4.firstdata.com/payment'
15
-
16
- def self.service_url
17
- mode = ActiveMerchant::Billing::Base.integration_mode
18
- case mode
19
- when :production
20
- self.production_url
21
- when :test
22
- self.test_url
23
- else
24
- raise StandardError, "Integration mode set to an invalid value: #{mode}"
25
- end
26
- end
27
-
28
- def self.notification(post)
29
- Notification.new(post)
30
- end
31
-
32
- def self.return(query_string)
33
- Return.new(query_string)
34
- end
35
- end
36
- end
37
- end
38
- end