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,75 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Moneybookers
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- mapping :account, 'pay_to_email'
7
- mapping :order, 'transaction_id'
8
- mapping :amount, 'amount'
9
- mapping :currency, 'currency'
10
-
11
- mapping :customer,
12
- :first_name => 'firstname',
13
- :last_name => 'lastname',
14
- :email => 'pay_from_email',
15
- :phone => 'phone_number'
16
-
17
- mapping :billing_address,
18
- :city => 'city',
19
- :address1 => 'address',
20
- :address2 => 'address2',
21
- :state => 'state',
22
- :zip => 'postal_code',
23
- :country => 'country'
24
-
25
- mapping :notify_url, 'status_url'
26
- mapping :return_url, 'return_url'
27
- mapping :cancel_return_url, 'cancel_url'
28
- mapping :description, 'detail1_text'
29
-
30
- MAPPED_COUNTRY_CODES = {
31
- 'SE' => 'SV',
32
- 'DK' => 'DA'
33
- }
34
-
35
- SUPPORTED_COUNTRY_CODES = [
36
- 'FI', 'DE', 'ES', 'FR',
37
- 'IT','PL', 'GR', 'RO',
38
- 'RU', 'TR', 'CN', 'CZ', 'NL'
39
- ]
40
-
41
- def initialize(order, account, options = {})
42
- super
43
- add_tracking_token
44
- add_default_parameters
45
- add_seller_details(options)
46
- end
47
-
48
- private
49
-
50
- def add_tracking_token
51
- return if application_id.blank? || application_id == 'ActiveMerchant'
52
-
53
- add_field('merchant_fields', 'platform')
54
- add_field('platform', application_id)
55
- end
56
-
57
- def add_default_parameters
58
- add_field('hide_login', 1)
59
- end
60
-
61
- def add_seller_details(options)
62
- add_field('recipient_description', options[:account_name]) if options[:account_name]
63
- add_field('country', lookup_country_code(options[:country], :alpha3)) if options[:country]
64
- add_field('language', locale_code(options[:country])) if options[:country]
65
- end
66
-
67
- def locale_code(country_code)
68
- return country_code if SUPPORTED_COUNTRY_CODES.include?(country_code)
69
- MAPPED_COUNTRY_CODES[country_code] || 'EN'
70
- end
71
- end
72
- end
73
- end
74
- end
75
- end
@@ -1,123 +0,0 @@
1
- require 'net/http'
2
- require 'digest/md5'
3
-
4
- module ActiveMerchant #:nodoc:
5
- module Billing #:nodoc:
6
- module Integrations #:nodoc:
7
- module Moneybookers
8
- class Notification < ActiveMerchant::Billing::Integrations::Notification
9
-
10
-
11
- def complete?
12
- status == 'Completed'
13
- end
14
-
15
- # ‘2’ Processed – This status is sent when the transaction is processed and the funds have been received on your Moneybookers account.
16
- # ‘0’ Pending – This status is sent when the customers pays via the pending bank transfer option. Such transactions will auto-process IF the bank transfer is received by Moneybookers. We strongly recommend that you do NOT process the order/transaction in your system upon receipt of a pending status from Moneybookers.
17
- # ‘-1’ Cancelled – Pending transactions can either be cancelled manually by the sender in their online account history or they will auto-cancel after 14 days if still pending.
18
- # ‘-2’ Failed – This status is sent when the customer tries to pay via Credit Card or Direct Debit but our provider declines the transaction. If you do not accept Credit Card or Direct Debit payments via Moneybookers (see page 17) then you will never receive the failed status.
19
- # ‘-3’ Chargeback – This status could be received only if your account is configured to receive chargebacks. If this is the case, whenever a chargeback is received by Moneybookers, a -3 status will be posted on the status_url for the reversed transaction.
20
- def status
21
- case status_code
22
- when '2'
23
- 'Completed'
24
- when '0'
25
- 'Pending'
26
- when '-1'
27
- 'Cancelled'
28
- when '-2'
29
- 'Failed'
30
- when '-3'
31
- 'Reversed'
32
- else
33
- 'Error'
34
- end
35
- end
36
-
37
- def status_code
38
- params['status']
39
- end
40
-
41
- def item_id
42
- params['transaction_id']
43
- end
44
-
45
- def transaction_id
46
- params['mb_transaction_id']
47
- end
48
-
49
- # When was this payment received by the client.
50
- def received_at
51
- nil
52
- end
53
-
54
- def payer_email
55
- params['pay_from_email']
56
- end
57
-
58
- def receiver_email
59
- params['pay_to_email']
60
- end
61
-
62
- def md5sig
63
- params['md5sig']
64
- end
65
-
66
- #Unique ID from the merchant's Moneybookers.com account, needed for calculatinon of md5 sig
67
- def merchant_id
68
- params['merchant_id']
69
- end
70
-
71
- # currency of the payment as posted by the merchant on the entry form
72
- def currency
73
- params['currency']
74
- end
75
-
76
- # amount of the payment as posted by the merchant on the entry form (ex. 39.60/39.6/39)
77
- def gross
78
- params['amount']
79
- end
80
-
81
- # currency of mb_amount, will always be the same as the currency of the beneficiary's account at Moneybookers.com
82
- def merchant_currency
83
- params['mb_currency']
84
- end
85
-
86
- # total amount of the payment in Merchants currency (ex 25.46/25.4/25)
87
- def merchant_amount
88
- params['mb_amount']
89
- end
90
-
91
- # Was this a test transaction?
92
- def test?
93
- false
94
- end
95
-
96
- def secret
97
- @options[:credential2]
98
- end
99
-
100
- # Acknowledge the transaction to MoneyBooker. This method has to be called after a new
101
- # apc arrives. It will verify that all the information we received is correct and will return a
102
- # ok or a fail. The secret (second credential) has to be provided in the parameter :credential2
103
- # when instantiating the Notification object.
104
- #
105
- # Example:
106
- #
107
- # def ipn
108
- # notify = Moneybookers.notification(request.raw_post, :credential2 => 'secret')
109
- #
110
- # if notify.acknowledge
111
- # ... process order ... if notify.complete?
112
- # else
113
- # ... log possible hacking attempt ...
114
- # end
115
- def acknowledge(authcode = nil)
116
- fields = [merchant_id, item_id, Digest::MD5.hexdigest(secret.to_s).upcase, merchant_amount, merchant_currency, status_code].join
117
- md5sig == Digest::MD5.hexdigest(fields).upcase
118
- end
119
- end
120
- end
121
- end
122
- end
123
- end
@@ -1,26 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Moneybookers
5
-
6
- autoload :Notification, File.dirname(__FILE__) + '/moneybookers/notification.rb'
7
- autoload :Helper, File.dirname(__FILE__) + '/moneybookers/helper.rb'
8
-
9
- mattr_accessor :production_url
10
- self.production_url = 'https://www.moneybookers.com/app/payment.pl'
11
-
12
- def self.service_url
13
- self.production_url
14
- end
15
-
16
- def self.notification(post, options)
17
- Notification.new(post, options)
18
- end
19
-
20
- def self.return(post, options = {})
21
- Return.new(post, options)
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,68 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Nochex
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- # Required Parameters
7
- # email
8
- # amount
9
- mapping :account, 'email'
10
- mapping :amount, 'amount'
11
-
12
- # Set the field status = test for testing with accounts:
13
- # Account Password
14
- # test1@nochex.com 123456
15
- # test2@nochex.com 123456
16
- # def initialize(order, account, options = {})
17
- # super
18
- # add_field('status', 'test')
19
- # end
20
-
21
- # Need to format the amount to have 2 decimal places
22
- def amount=(money)
23
- cents = money.respond_to?(:cents) ? money.cents : money
24
- if money.is_a?(String) or cents.to_i <= 0
25
- raise ArgumentError, 'money amount must be either a Money object or a positive integer in cents.'
26
- end
27
- add_field mappings[:amount], sprintf("%.2f", cents.to_f/100)
28
- end
29
-
30
- # Optional Parameters
31
- # ordernumber
32
- mapping :order, 'ordernumber'
33
-
34
- # firstname
35
- # lastname
36
- # email_address_sender
37
- mapping :customer, :first_name => 'firstname',
38
- :last_name => 'lastname',
39
- :email => 'email_address_sender'
40
-
41
- # town
42
- # firstline
43
- # county
44
- # postcode
45
- mapping :billing_address, :city => 'town',
46
- :address1 => 'firstline',
47
- :state => 'county',
48
- :zip => 'postcode'
49
-
50
- # responderurl
51
- mapping :notify_url, 'responderurl'
52
-
53
- # returnurl
54
- mapping :return_url, 'returnurl'
55
-
56
- # cancelurl
57
- mapping :cancel_return_url, 'cancelurl'
58
-
59
- # description
60
- mapping :description, 'description'
61
-
62
- # Currently unmapped
63
- # logo
64
- end
65
- end
66
- end
67
- end
68
- end
@@ -1,94 +0,0 @@
1
- require 'net/http'
2
- require 'date'
3
-
4
- module ActiveMerchant #:nodoc:
5
- module Billing #:nodoc:
6
- module Integrations #:nodoc:
7
- module Nochex
8
- # Parser and handler for incoming Automatic Payment Confirmations from Nochex.
9
- class Notification < ActiveMerchant::Billing::Integrations::Notification
10
- include ActiveMerchant::PostsData
11
-
12
- def complete?
13
- status == 'Completed'
14
- end
15
-
16
- # Id of the order we passed to Nochex
17
- def item_id
18
- params['order_id']
19
- end
20
-
21
- def transaction_id
22
- params['transaction_id']
23
- end
24
-
25
- def currency
26
- 'GBP'
27
- end
28
-
29
- # When was this payment received by the client.
30
- def received_at
31
- # U.K. Format: 27/09/2006 22:30:54
32
- return if params['transaction_date'].blank?
33
- time = params['transaction_date'].scan(/\d+/)
34
- Time.utc(time[2], time[1], time[0], time[3], time[4], time[5])
35
- end
36
-
37
- def payer_email
38
- params['from_email']
39
- end
40
-
41
- def receiver_email
42
- params['to_email']
43
- end
44
-
45
- def security_key
46
- params['security_key']
47
- end
48
-
49
- # the money amount we received in X.2 decimal.
50
- def gross
51
- sprintf("%.2f", params['amount'].to_f)
52
- end
53
-
54
- # Was this a test transaction?
55
- def test?
56
- params['status'] == 'test'
57
- end
58
-
59
- def status
60
- 'Completed'
61
- end
62
-
63
- # Acknowledge the transaction to Nochex. This method has to be called after a new
64
- # apc arrives. Nochex will verify that all the information we received are correct and will return a
65
- # ok or a fail. This is very similar to the PayPal IPN scheme.
66
- #
67
- # Example:
68
- #
69
- # def nochex_ipn
70
- # notify = NochexNotification.new(request.raw_post)
71
- #
72
- # if notify.acknowledge
73
- # ... process order ... if notify.complete?
74
- # else
75
- # ... log possible hacking attempt ...
76
- # end
77
- def acknowledge(authcode = nil)
78
- payload = raw
79
-
80
- response = ssl_post(Nochex.notification_confirmation_url, payload,
81
- 'Content-Length' => "#{payload.size}",
82
- 'User-Agent' => "Active Merchant -- http://activemerchant.org",
83
- 'Content-Type' => "application/x-www-form-urlencoded"
84
- )
85
-
86
- raise StandardError.new("Faulty Nochex result: #{response}") unless ["AUTHORISED", "DECLINED"].include?(response)
87
-
88
- response == "AUTHORISED"
89
- end
90
- end
91
- end
92
- end
93
- end
94
- end
@@ -1,10 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Nochex
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- end
7
- end
8
- end
9
- end
10
- end
@@ -1,88 +0,0 @@
1
-
2
- module ActiveMerchant #:nodoc:
3
- module Billing #:nodoc:
4
- module Integrations #:nodoc:
5
- # To start with Nochex, follow the instructions for installing
6
- # ActiveMerchant as a plugin, as described on
7
- # http://www.activemerchant.org/.
8
- #
9
- # The plugin will automatically add the ActionView helper for
10
- # ActiveMerchant, which will allow you to make the Nochex payments.
11
- # The idea behind the helper is that it generates an invisible
12
- # forwarding screen that will automatically redirect the user.
13
- # So you would collect all the information about the order and then
14
- # simply render the hidden form, which redirects the user to Nochex.
15
- #
16
- # The syntax of the helper is as follows:
17
- #
18
- # <% payment_service_for 'order id', 'nochex_user_id',
19
- # :amount => 50.00,
20
- # :service => :nochex,
21
- # :html => { :id => 'nochex-form' } do |service| %>
22
- #
23
- # <% service.customer :first_name => 'Cody',
24
- # :last_name => 'Fauser',
25
- # :phone => '(555)555-5555',
26
- # :email => 'cody@example.com' %>
27
- #
28
- # <% service.billing_address :city => 'Ottawa',
29
- # :address1 => '21 Snowy Brook Lane',
30
- # :address2 => 'Apt. 36',
31
- # :state => 'ON',
32
- # :country => 'CA',
33
- # :zip => 'K1J1E5' %>
34
- #
35
- # <% service.invoice '#1000' %>
36
- # <% service.shipping '0.00' %>
37
- # <% service.tax '0.00' %>
38
- #
39
- # <% service.notify_url url_for(:action => 'notify', :only_path => false) %>
40
- # <% service.return_url url_for(:action => 'done', :only_path => false) %>
41
- # <% service.cancel_return_url 'http://mystore.com' %>
42
- # <% end %>
43
- #
44
- # The notify_url is the URL that the Nochex IPN will be sent. You can
45
- # handle the notification in your controller action as follows:
46
- #
47
- # class NotificationController < ApplicationController
48
- # include ActiveMerchant::Billing::Integrations
49
- #
50
- # def notify
51
- # notification = Nochex::Notification.new(request.raw_post)
52
- #
53
- # begin
54
- # # Acknowledge notification with Nochex
55
- # raise StandardError, 'Illegal Notification' unless notification.acknowledge
56
- # # Process the payment
57
- # rescue => e
58
- # logger.warn("Illegal notification received: #{e.message}")
59
- # ensure
60
- # head(:ok)
61
- # end
62
- # end
63
- # end
64
- module Nochex
65
- autoload :Return, File.dirname(__FILE__) + '/nochex/return.rb'
66
- autoload :Helper, File.dirname(__FILE__) + '/nochex/helper.rb'
67
- autoload :Notification, File.dirname(__FILE__) + '/nochex/notification.rb'
68
-
69
-
70
- mattr_accessor :service_url
71
- self.service_url = 'https://secure.nochex.com'
72
-
73
- mattr_accessor :notification_confirmation_url
74
- self.notification_confirmation_url = 'https://www.nochex.com/nochex.dll/apc/apc'
75
-
76
- # Simply a convenience method that returns a new
77
- # ActiveMerchant::Billing::Integrations::Nochex::Notification
78
- def self.notification(post, options = {})
79
- Notification.new(post)
80
- end
81
-
82
- def self.return(query_string, options = {})
83
- Return.new(query_string)
84
- end
85
- end
86
- end
87
- end
88
- end
@@ -1,71 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- class Notification
5
- attr_accessor :params
6
- attr_accessor :raw
7
-
8
- # set this to an array in the subclass, to specify which IPs are allowed
9
- # to send requests
10
- class_attribute :production_ips
11
-
12
- # * *Args* :
13
- # - +doc+ -> raw post string
14
- # - +options+ -> custom options which individual implementations can
15
- # utilize
16
- def initialize(post, options = {})
17
- @options = options
18
- empty!
19
- parse(post)
20
- end
21
-
22
- def status
23
- raise NotImplementedError, "Must implement this method in the subclass"
24
- end
25
-
26
- # the money amount we received in X.2 decimal.
27
- def gross
28
- raise NotImplementedError, "Must implement this method in the subclass"
29
- end
30
-
31
- def gross_cents
32
- (gross.to_f * 100.0).round
33
- end
34
-
35
- # This combines the gross and currency and returns a proper Money object.
36
- # this requires the money library located at http://dist.leetsoft.com/api/money
37
- def amount
38
- return Money.new(gross_cents, currency) rescue ArgumentError
39
- return Money.new(gross_cents) # maybe you have an own money object which doesn't take a currency?
40
- end
41
-
42
- # reset the notification.
43
- def empty!
44
- @params = Hash.new
45
- @raw = ""
46
- end
47
-
48
- # Check if the request comes from an official IP
49
- def valid_sender?(ip)
50
- return true if ActiveMerchant::Billing::Base.integration_mode == :test || production_ips.blank?
51
- production_ips.include?(ip)
52
- end
53
-
54
- def test?
55
- false
56
- end
57
-
58
- private
59
-
60
- # Take the posted data and move the relevant data into a hash
61
- def parse(post)
62
- @raw = post.to_s
63
- for line in @raw.split('&')
64
- key, value = *line.scan( %r{^([A-Za-z0-9_.-]+)\=(.*)$} ).flatten
65
- params[key] = CGI.unescape(value.to_s) if key.present?
66
- end
67
- end
68
- end
69
- end
70
- end
71
- end
@@ -1,24 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Paxum
5
- module Common
6
- def generate_signature_string
7
- @raw_post.slice!(0) if @raw_post.starts_with?("&")
8
- @raw_post = CGI.unescape(@raw_post)
9
- @raw_post = "&#{@raw_post}" unless @raw_post.starts_with?("&")
10
- arr = @raw_post.split('&')
11
- arr.delete(arr.last)
12
- data = arr.join('&')
13
-
14
- (data + secret)
15
- end
16
-
17
- def generate_signature
18
- Digest::MD5.hexdigest(generate_signature_string)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,42 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Paxum
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- include Common
7
-
8
- def initialize(order, account, options = {})
9
- @paxum_options = options.dup
10
- options.delete(:description)
11
- options.delete(:fail_url)
12
- options.delete(:success_url)
13
- options.delete(:result_url)
14
- super
15
- add_field "button_type_id", "1"
16
- add_field "variables", "notify_url=#{@paxum_options[:result_url]}"
17
- @paxum_options.each do |key, value|
18
- add_field mappings[key], value
19
- end
20
- end
21
-
22
- def form_fields
23
- @fields
24
- end
25
-
26
- def params
27
- @fields
28
- end
29
-
30
- mapping :account, 'business_email'
31
- mapping :amount, 'amount'
32
- mapping :currency, 'currency'
33
- mapping :order, 'item_id'
34
- mapping :description, 'item_name'
35
- mapping :fail_url, 'cancel_url'
36
- mapping :success_url, 'finish_url'
37
- mapping :result_url, 'notify_url'
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,33 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Paxum
5
- class Notification < ActiveMerchant::Billing::Integrations::Notification
6
- include Common
7
-
8
- def initialize(post, options = {})
9
- @raw_post = post.dup
10
- post.slice!(0)
11
- super
12
- end
13
-
14
- def self.recognizes?(params)
15
- (params.has_key?('transaction_item_id') && params.has_key?('transaction_amount'))
16
- end
17
-
18
- def security_key
19
- params["key"]
20
- end
21
-
22
- def secret
23
- @options[:secret]
24
- end
25
-
26
- def acknowledge(authcode = nil)
27
- (security_key == generate_signature)
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end