activemerchant 1.38.0 → 1.79.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (400) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +1402 -3
  3. data/CONTRIBUTORS +154 -0
  4. data/README.md +157 -144
  5. data/lib/active_merchant/billing/apple_pay_payment_token.rb +22 -0
  6. data/lib/active_merchant/billing/base.rb +21 -17
  7. data/lib/active_merchant/billing/check.rb +32 -22
  8. data/lib/active_merchant/billing/compatibility.rb +120 -0
  9. data/lib/active_merchant/billing/credit_card.rb +215 -67
  10. data/lib/active_merchant/billing/credit_card_formatting.rb +4 -1
  11. data/lib/active_merchant/billing/credit_card_methods.rb +152 -53
  12. data/lib/active_merchant/billing/cvv_result.rb +15 -15
  13. data/lib/active_merchant/billing/gateway.rb +170 -24
  14. data/lib/active_merchant/billing/gateways/adyen.rb +299 -0
  15. data/lib/active_merchant/billing/gateways/allied_wallet.rb +206 -0
  16. data/lib/active_merchant/billing/gateways/authorize_net.rb +904 -606
  17. data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +417 -0
  18. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +43 -18
  19. data/lib/active_merchant/billing/gateways/axcessms.rb +181 -0
  20. data/lib/active_merchant/billing/gateways/balanced.rb +134 -346
  21. data/lib/active_merchant/billing/gateways/bank_frick.rb +225 -0
  22. data/lib/active_merchant/billing/gateways/banwire.rb +13 -2
  23. data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +326 -0
  24. data/lib/active_merchant/billing/gateways/be2bill.rb +131 -0
  25. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +96 -15
  26. data/lib/active_merchant/billing/gateways/beanstream.rb +52 -9
  27. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +12 -8
  28. data/lib/active_merchant/billing/gateways/blue_pay.rb +520 -501
  29. data/lib/active_merchant/billing/gateways/blue_snap.rb +343 -0
  30. data/lib/active_merchant/billing/gateways/bogus.rb +94 -50
  31. data/lib/active_merchant/billing/gateways/borgun.rb +221 -0
  32. data/lib/active_merchant/billing/gateways/bpoint.rb +277 -0
  33. data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +15 -2
  34. data/lib/active_merchant/billing/gateways/braintree.rb +2 -2
  35. data/lib/active_merchant/billing/gateways/braintree_blue.rb +387 -139
  36. data/lib/active_merchant/billing/gateways/braintree_orange.rb +4 -4
  37. data/lib/active_merchant/billing/gateways/bridge_pay.rb +245 -0
  38. data/lib/active_merchant/billing/gateways/cams.rb +230 -0
  39. data/lib/active_merchant/billing/gateways/card_connect.rb +286 -0
  40. data/lib/active_merchant/billing/gateways/card_stream.rb +269 -118
  41. data/lib/active_merchant/billing/gateways/cardknox.rb +328 -0
  42. data/lib/active_merchant/billing/gateways/cardprocess.rb +254 -0
  43. data/lib/active_merchant/billing/gateways/cashnet.rb +219 -0
  44. data/lib/active_merchant/billing/gateways/cc5.rb +45 -0
  45. data/lib/active_merchant/billing/gateways/cecabank.rb +239 -0
  46. data/lib/active_merchant/billing/gateways/cenpos.rb +327 -0
  47. data/lib/active_merchant/billing/gateways/checkout.rb +214 -0
  48. data/lib/active_merchant/billing/gateways/checkout_v2.rb +233 -0
  49. data/lib/active_merchant/billing/gateways/citrus_pay.rb +23 -0
  50. data/lib/active_merchant/billing/gateways/clearhaus.rb +220 -0
  51. data/lib/active_merchant/billing/gateways/commercegate.rb +143 -0
  52. data/lib/active_merchant/billing/gateways/conekta.rb +225 -0
  53. data/lib/active_merchant/billing/gateways/creditcall.rb +272 -0
  54. data/lib/active_merchant/billing/gateways/credorax.rb +345 -0
  55. data/lib/active_merchant/billing/gateways/culqi.rb +279 -0
  56. data/lib/active_merchant/billing/gateways/cyber_source.rb +237 -98
  57. data/lib/active_merchant/billing/gateways/data_cash.rb +41 -314
  58. data/lib/active_merchant/billing/gateways/dibs.rb +205 -0
  59. data/lib/active_merchant/billing/gateways/digitzs.rb +292 -0
  60. data/lib/active_merchant/billing/gateways/ebanx.rb +296 -0
  61. data/lib/active_merchant/billing/gateways/efsnet.rb +3 -14
  62. data/lib/active_merchant/billing/gateways/elavon.rb +143 -142
  63. data/lib/active_merchant/billing/gateways/element.rb +356 -0
  64. data/lib/active_merchant/billing/gateways/epay.rb +23 -12
  65. data/lib/active_merchant/billing/gateways/eway.rb +12 -12
  66. data/lib/active_merchant/billing/gateways/eway_managed.rb +1 -1
  67. data/lib/active_merchant/billing/gateways/eway_rapid.rb +417 -204
  68. data/lib/active_merchant/billing/gateways/exact.rb +10 -1
  69. data/lib/active_merchant/billing/gateways/ezic.rb +196 -0
  70. data/lib/active_merchant/billing/gateways/fat_zebra.rb +65 -37
  71. data/lib/active_merchant/billing/gateways/federated_canada.rb +1 -8
  72. data/lib/active_merchant/billing/gateways/finansbank.rb +3 -2
  73. data/lib/active_merchant/billing/gateways/first_giving.rb +143 -0
  74. data/lib/active_merchant/billing/gateways/first_pay.rb +110 -124
  75. data/lib/active_merchant/billing/gateways/firstdata_e4.rb +155 -29
  76. data/lib/active_merchant/billing/gateways/flo2cash.rb +215 -0
  77. data/lib/active_merchant/billing/gateways/flo2cash_simple.rb +20 -0
  78. data/lib/active_merchant/billing/gateways/forte.rb +256 -0
  79. data/lib/active_merchant/billing/gateways/garanti.rb +11 -5
  80. data/lib/active_merchant/billing/gateways/global_collect.rb +334 -0
  81. data/lib/active_merchant/billing/gateways/global_transport.rb +194 -0
  82. data/lib/active_merchant/billing/gateways/hps.rb +305 -0
  83. data/lib/active_merchant/billing/gateways/iats_payments.rb +271 -16
  84. data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +2 -5
  85. data/lib/active_merchant/billing/gateways/ideal/ideal_rabobank.pem +0 -0
  86. data/lib/active_merchant/billing/gateways/ideal_rabobank.rb +1 -1
  87. data/lib/active_merchant/billing/gateways/in_context_paypal_express.rb +15 -0
  88. data/lib/active_merchant/billing/gateways/inspire.rb +8 -10
  89. data/lib/active_merchant/billing/gateways/instapay.rb +0 -0
  90. data/lib/active_merchant/billing/gateways/ipp.rb +175 -0
  91. data/lib/active_merchant/billing/gateways/iridium.rb +210 -4
  92. data/lib/active_merchant/billing/gateways/iveri.rb +251 -0
  93. data/lib/active_merchant/billing/gateways/jetpay.rb +176 -49
  94. data/lib/active_merchant/billing/gateways/jetpay_v2.rb +437 -0
  95. data/lib/active_merchant/billing/gateways/komoju.rb +115 -0
  96. data/lib/active_merchant/billing/gateways/kushki.rb +227 -0
  97. data/lib/active_merchant/billing/gateways/latitude19.rb +416 -0
  98. data/lib/active_merchant/billing/gateways/linkpoint.rb +17 -13
  99. data/lib/active_merchant/billing/gateways/litle.rb +329 -439
  100. data/lib/active_merchant/billing/gateways/mastercard.rb +268 -0
  101. data/lib/active_merchant/billing/gateways/maxipago.rb +220 -0
  102. data/lib/active_merchant/billing/gateways/mercado_pago.rb +262 -0
  103. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +26 -7
  104. data/lib/active_merchant/billing/gateways/merchant_one.rb +0 -1
  105. data/lib/active_merchant/billing/gateways/merchant_partners.rb +245 -0
  106. data/lib/active_merchant/billing/gateways/merchant_ware.rb +12 -15
  107. data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +24 -13
  108. data/lib/active_merchant/billing/gateways/merchant_warrior.rb +33 -14
  109. data/lib/active_merchant/billing/gateways/mercury.rb +74 -29
  110. data/lib/active_merchant/billing/gateways/metrics_global.rb +2 -21
  111. data/lib/active_merchant/billing/gateways/micropayment.rb +185 -0
  112. data/lib/active_merchant/billing/gateways/migs.rb +73 -14
  113. data/lib/active_merchant/billing/gateways/modern_payments.rb +1 -1
  114. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +1 -3
  115. data/lib/active_merchant/billing/gateways/monei.rb +307 -0
  116. data/lib/active_merchant/billing/gateways/moneris.rb +119 -36
  117. data/lib/active_merchant/billing/gateways/moneris_us.rb +146 -45
  118. data/lib/active_merchant/billing/gateways/money_movers.rb +152 -0
  119. data/lib/active_merchant/billing/gateways/mundipagg.rb +292 -0
  120. data/lib/active_merchant/billing/gateways/nab_transact.rb +81 -56
  121. data/lib/active_merchant/billing/gateways/ncr_secure_pay.rb +165 -0
  122. data/lib/active_merchant/billing/gateways/net_registry.rb +8 -3
  123. data/lib/active_merchant/billing/gateways/netbanx.rb +289 -0
  124. data/lib/active_merchant/billing/gateways/netbilling.rb +61 -26
  125. data/lib/active_merchant/billing/gateways/netpay.rb +1 -1
  126. data/lib/active_merchant/billing/gateways/network_merchants.rb +242 -0
  127. data/lib/active_merchant/billing/gateways/nmi.rb +265 -10
  128. data/lib/active_merchant/billing/gateways/ogone.rb +85 -27
  129. data/lib/active_merchant/billing/gateways/omise.rb +324 -0
  130. data/lib/active_merchant/billing/gateways/openpay.rb +227 -0
  131. data/lib/active_merchant/billing/gateways/opp.rb +372 -0
  132. data/lib/active_merchant/billing/gateways/optimal_payment.rb +59 -28
  133. data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +22 -21
  134. data/lib/active_merchant/billing/gateways/orbital.rb +346 -56
  135. data/lib/active_merchant/billing/gateways/pac_net_raven.rb +207 -0
  136. data/lib/active_merchant/billing/gateways/pagarme.rb +248 -0
  137. data/lib/active_merchant/billing/gateways/pago_facil.rb +122 -0
  138. data/lib/active_merchant/billing/gateways/pay_conex.rb +246 -0
  139. data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +30 -14
  140. data/lib/active_merchant/billing/gateways/pay_hub.rb +213 -0
  141. data/lib/active_merchant/billing/gateways/pay_junction.rb +19 -25
  142. data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +190 -0
  143. data/lib/active_merchant/billing/gateways/pay_secure.rb +0 -7
  144. data/lib/active_merchant/billing/gateways/paybox_direct.rb +16 -12
  145. data/lib/active_merchant/billing/gateways/payeezy.rb +386 -0
  146. data/lib/active_merchant/billing/gateways/payex.rb +412 -0
  147. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +38 -17
  148. data/lib/active_merchant/billing/gateways/payflow.rb +100 -19
  149. data/lib/active_merchant/billing/gateways/payflow_express.rb +22 -22
  150. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +2 -2
  151. data/lib/active_merchant/billing/gateways/payflow_uk.rb +6 -6
  152. data/lib/active_merchant/billing/gateways/payment_express.rb +15 -3
  153. data/lib/active_merchant/billing/gateways/paymentez.rb +276 -0
  154. data/lib/active_merchant/billing/gateways/paymill.rb +237 -48
  155. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +55 -8
  156. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +4 -0
  157. data/lib/active_merchant/billing/gateways/paypal/paypal_recurring_api.rb +18 -4
  158. data/lib/active_merchant/billing/gateways/paypal.rb +37 -20
  159. data/lib/active_merchant/billing/gateways/paypal_ca.rb +1 -1
  160. data/lib/active_merchant/billing/gateways/paypal_digital_goods.rb +6 -5
  161. data/lib/active_merchant/billing/gateways/paypal_express.rb +32 -4
  162. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +3 -3
  163. data/lib/active_merchant/billing/gateways/payscout.rb +162 -0
  164. data/lib/active_merchant/billing/gateways/paystation.rb +32 -24
  165. data/lib/active_merchant/billing/gateways/payu_in.rb +248 -0
  166. data/lib/active_merchant/billing/gateways/payu_latam.rb +440 -0
  167. data/lib/active_merchant/billing/gateways/pin.rb +68 -13
  168. data/lib/active_merchant/billing/gateways/plugnpay.rb +1 -12
  169. data/lib/active_merchant/billing/gateways/pro_pay.rb +326 -0
  170. data/lib/active_merchant/billing/gateways/psigate.rb +14 -14
  171. data/lib/active_merchant/billing/gateways/psl_card.rb +3 -3
  172. data/lib/active_merchant/billing/gateways/qbms.rb +12 -1
  173. data/lib/active_merchant/billing/gateways/quantum.rb +2 -2
  174. data/lib/active_merchant/billing/gateways/quickbooks.rb +290 -0
  175. data/lib/active_merchant/billing/gateways/quickpay/quickpay_common.rb +188 -0
  176. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +299 -0
  177. data/lib/active_merchant/billing/gateways/quickpay/quickpay_v4to7.rb +227 -0
  178. data/lib/active_merchant/billing/gateways/quickpay.rb +10 -319
  179. data/lib/active_merchant/billing/gateways/qvalent.rb +236 -0
  180. data/lib/active_merchant/billing/gateways/realex.rb +40 -25
  181. data/lib/active_merchant/billing/gateways/redsys.rb +212 -80
  182. data/lib/active_merchant/billing/gateways/s5.rb +247 -0
  183. data/lib/active_merchant/billing/gateways/safe_charge.rb +262 -0
  184. data/lib/active_merchant/billing/gateways/sage.rb +412 -119
  185. data/lib/active_merchant/billing/gateways/sage_pay.rb +176 -59
  186. data/lib/active_merchant/billing/gateways/secure_net.rb +35 -29
  187. data/lib/active_merchant/billing/gateways/secure_pay.rb +182 -9
  188. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +21 -7
  189. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +0 -7
  190. data/lib/active_merchant/billing/gateways/securion_pay.rb +267 -0
  191. data/lib/active_merchant/billing/gateways/skip_jack.rb +1 -3
  192. data/lib/active_merchant/billing/gateways/smart_ps.rb +14 -3
  193. data/lib/active_merchant/billing/gateways/so_easy_pay.rb +194 -0
  194. data/lib/active_merchant/billing/gateways/spreedly_core.rb +74 -14
  195. data/lib/active_merchant/billing/gateways/stripe.rb +472 -83
  196. data/lib/active_merchant/billing/gateways/swipe_checkout.rb +156 -0
  197. data/lib/active_merchant/billing/gateways/telr.rb +275 -0
  198. data/lib/active_merchant/billing/gateways/tns.rb +22 -0
  199. data/lib/active_merchant/billing/gateways/trans_first.rb +142 -28
  200. data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +608 -0
  201. data/lib/active_merchant/billing/gateways/transact_pro.rb +224 -0
  202. data/lib/active_merchant/billing/gateways/transnational.rb +2 -231
  203. data/lib/active_merchant/billing/gateways/trexle.rb +217 -0
  204. data/lib/active_merchant/billing/gateways/trust_commerce.rb +17 -11
  205. data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +193 -75
  206. data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +156 -64
  207. data/lib/active_merchant/billing/gateways/vanco.rb +294 -0
  208. data/lib/active_merchant/billing/gateways/verifi.rb +1 -8
  209. data/lib/active_merchant/billing/gateways/viaklix.rb +1 -15
  210. data/lib/active_merchant/billing/gateways/visanet_peru.rb +209 -0
  211. data/lib/active_merchant/billing/gateways/webpay.rb +45 -28
  212. data/lib/active_merchant/billing/gateways/wepay.rb +238 -0
  213. data/lib/active_merchant/billing/gateways/wirecard.rb +167 -49
  214. data/lib/active_merchant/billing/gateways/world_net.rb +344 -0
  215. data/lib/active_merchant/billing/gateways/worldpay.rb +171 -45
  216. data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +218 -0
  217. data/lib/active_merchant/billing/gateways/worldpay_us.rb +221 -0
  218. data/lib/active_merchant/billing/gateways.rb +8 -11
  219. data/lib/active_merchant/billing/model.rb +30 -0
  220. data/lib/active_merchant/billing/network_tokenization_credit_card.rb +39 -0
  221. data/lib/active_merchant/billing/payment_token.rb +21 -0
  222. data/lib/active_merchant/billing/rails.rb +3 -0
  223. data/lib/active_merchant/billing/response.rb +24 -17
  224. data/lib/active_merchant/billing.rb +7 -1
  225. data/lib/active_merchant/connection.rb +208 -0
  226. data/lib/active_merchant/country.rb +334 -0
  227. data/lib/active_merchant/empty.rb +20 -0
  228. data/lib/active_merchant/errors.rb +35 -0
  229. data/lib/active_merchant/net_http_ssl_connection.rb +9 -0
  230. data/lib/active_merchant/network_connection_retries.rb +81 -0
  231. data/lib/active_merchant/post_data.rb +24 -0
  232. data/lib/active_merchant/posts_data.rb +94 -0
  233. data/lib/active_merchant/version.rb +1 -1
  234. data/lib/active_merchant.rb +22 -22
  235. data/lib/certs/cacert.pem +3951 -0
  236. data/lib/support/gateway_support.rb +16 -10
  237. data/lib/support/outbound_hosts.rb +13 -10
  238. data/lib/support/ssl_version.rb +87 -0
  239. metadata +164 -306
  240. data/gem-public_cert.pem +0 -20
  241. data/lib/active_merchant/billing/expiry_date.rb +0 -34
  242. data/lib/active_merchant/billing/gateways/barclays_epdq.rb +0 -314
  243. data/lib/active_merchant/billing/gateways/card_stream_modern.rb +0 -155
  244. data/lib/active_merchant/billing/gateways/certo_direct.rb +0 -277
  245. data/lib/active_merchant/billing/gateways/orbital/avs_result.rb +0 -93
  246. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +0 -93
  247. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +0 -114
  248. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +0 -102
  249. data/lib/active_merchant/billing/gateways/samurai.rb +0 -118
  250. data/lib/active_merchant/billing/gateways/vindicia.rb +0 -361
  251. data/lib/active_merchant/billing/integrations/a1agregator/helper.rb +0 -31
  252. data/lib/active_merchant/billing/integrations/a1agregator/notification.rb +0 -186
  253. data/lib/active_merchant/billing/integrations/a1agregator/status.rb +0 -38
  254. data/lib/active_merchant/billing/integrations/a1agregator.rb +0 -26
  255. data/lib/active_merchant/billing/integrations/action_view_helper.rb +0 -73
  256. data/lib/active_merchant/billing/integrations/authorize_net_sim/helper.rb +0 -229
  257. data/lib/active_merchant/billing/integrations/authorize_net_sim/notification.rb +0 -340
  258. data/lib/active_merchant/billing/integrations/authorize_net_sim.rb +0 -38
  259. data/lib/active_merchant/billing/integrations/bogus/helper.rb +0 -17
  260. data/lib/active_merchant/billing/integrations/bogus/notification.rb +0 -11
  261. data/lib/active_merchant/billing/integrations/bogus/return.rb +0 -10
  262. data/lib/active_merchant/billing/integrations/bogus.rb +0 -23
  263. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +0 -120
  264. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +0 -158
  265. data/lib/active_merchant/billing/integrations/chronopay/return.rb +0 -10
  266. data/lib/active_merchant/billing/integrations/chronopay.rb +0 -23
  267. data/lib/active_merchant/billing/integrations/direc_pay/helper.rb +0 -200
  268. data/lib/active_merchant/billing/integrations/direc_pay/notification.rb +0 -76
  269. data/lib/active_merchant/billing/integrations/direc_pay/return.rb +0 -32
  270. data/lib/active_merchant/billing/integrations/direc_pay/status.rb +0 -37
  271. data/lib/active_merchant/billing/integrations/direc_pay.rb +0 -41
  272. data/lib/active_merchant/billing/integrations/directebanking/helper.rb +0 -90
  273. data/lib/active_merchant/billing/integrations/directebanking/notification.rb +0 -120
  274. data/lib/active_merchant/billing/integrations/directebanking/return.rb +0 -11
  275. data/lib/active_merchant/billing/integrations/directebanking.rb +0 -47
  276. data/lib/active_merchant/billing/integrations/dotpay/helper.rb +0 -77
  277. data/lib/active_merchant/billing/integrations/dotpay/notification.rb +0 -86
  278. data/lib/active_merchant/billing/integrations/dotpay/return.rb +0 -11
  279. data/lib/active_merchant/billing/integrations/dotpay.rb +0 -22
  280. data/lib/active_merchant/billing/integrations/dwolla/common.rb +0 -23
  281. data/lib/active_merchant/billing/integrations/dwolla/helper.rb +0 -43
  282. data/lib/active_merchant/billing/integrations/dwolla/notification.rb +0 -64
  283. data/lib/active_merchant/billing/integrations/dwolla/return.rb +0 -49
  284. data/lib/active_merchant/billing/integrations/dwolla.rb +0 -23
  285. data/lib/active_merchant/billing/integrations/e_payment_plans/helper.rb +0 -34
  286. data/lib/active_merchant/billing/integrations/e_payment_plans/notification.rb +0 -84
  287. data/lib/active_merchant/billing/integrations/e_payment_plans.rb +0 -48
  288. data/lib/active_merchant/billing/integrations/easy_pay/common.rb +0 -40
  289. data/lib/active_merchant/billing/integrations/easy_pay/helper.rb +0 -36
  290. data/lib/active_merchant/billing/integrations/easy_pay/notification.rb +0 -59
  291. data/lib/active_merchant/billing/integrations/easy_pay.rb +0 -30
  292. data/lib/active_merchant/billing/integrations/epay/helper.rb +0 -55
  293. data/lib/active_merchant/billing/integrations/epay/notification.rb +0 -110
  294. data/lib/active_merchant/billing/integrations/epay.rb +0 -21
  295. data/lib/active_merchant/billing/integrations/first_data/helper.rb +0 -61
  296. data/lib/active_merchant/billing/integrations/first_data/notification.rb +0 -56
  297. data/lib/active_merchant/billing/integrations/first_data.rb +0 -38
  298. data/lib/active_merchant/billing/integrations/gestpay/common.rb +0 -42
  299. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +0 -70
  300. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +0 -85
  301. data/lib/active_merchant/billing/integrations/gestpay/return.rb +0 -10
  302. data/lib/active_merchant/billing/integrations/gestpay.rb +0 -25
  303. data/lib/active_merchant/billing/integrations/helper.rb +0 -117
  304. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +0 -58
  305. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +0 -59
  306. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +0 -68
  307. data/lib/active_merchant/billing/integrations/hi_trust.rb +0 -27
  308. data/lib/active_merchant/billing/integrations/ipay88/helper.rb +0 -114
  309. data/lib/active_merchant/billing/integrations/ipay88/return.rb +0 -95
  310. data/lib/active_merchant/billing/integrations/ipay88.rb +0 -19
  311. data/lib/active_merchant/billing/integrations/liqpay/helper.rb +0 -43
  312. data/lib/active_merchant/billing/integrations/liqpay/notification.rb +0 -89
  313. data/lib/active_merchant/billing/integrations/liqpay/return.rb +0 -83
  314. data/lib/active_merchant/billing/integrations/liqpay.rb +0 -30
  315. data/lib/active_merchant/billing/integrations/maksuturva/helper.rb +0 -119
  316. data/lib/active_merchant/billing/integrations/maksuturva/notification.rb +0 -48
  317. data/lib/active_merchant/billing/integrations/maksuturva.rb +0 -86
  318. data/lib/active_merchant/billing/integrations/moneybookers/helper.rb +0 -75
  319. data/lib/active_merchant/billing/integrations/moneybookers/notification.rb +0 -129
  320. data/lib/active_merchant/billing/integrations/moneybookers.rb +0 -26
  321. data/lib/active_merchant/billing/integrations/nochex/helper.rb +0 -68
  322. data/lib/active_merchant/billing/integrations/nochex/notification.rb +0 -94
  323. data/lib/active_merchant/billing/integrations/nochex/return.rb +0 -10
  324. data/lib/active_merchant/billing/integrations/nochex.rb +0 -88
  325. data/lib/active_merchant/billing/integrations/notification.rb +0 -71
  326. data/lib/active_merchant/billing/integrations/paxum/common.rb +0 -24
  327. data/lib/active_merchant/billing/integrations/paxum/helper.rb +0 -42
  328. data/lib/active_merchant/billing/integrations/paxum/notification.rb +0 -33
  329. data/lib/active_merchant/billing/integrations/paxum.rb +0 -44
  330. data/lib/active_merchant/billing/integrations/pay_fast/common.rb +0 -42
  331. data/lib/active_merchant/billing/integrations/pay_fast/helper.rb +0 -50
  332. data/lib/active_merchant/billing/integrations/pay_fast/notification.rb +0 -134
  333. data/lib/active_merchant/billing/integrations/pay_fast/return.rb +0 -10
  334. data/lib/active_merchant/billing/integrations/pay_fast.rb +0 -70
  335. data/lib/active_merchant/billing/integrations/payflow_link/helper.rb +0 -116
  336. data/lib/active_merchant/billing/integrations/payflow_link/notification.rb +0 -78
  337. data/lib/active_merchant/billing/integrations/payflow_link.rb +0 -21
  338. data/lib/active_merchant/billing/integrations/paypal/helper.rb +0 -119
  339. data/lib/active_merchant/billing/integrations/paypal/notification.rb +0 -227
  340. data/lib/active_merchant/billing/integrations/paypal/return.rb +0 -10
  341. data/lib/active_merchant/billing/integrations/paypal.rb +0 -39
  342. data/lib/active_merchant/billing/integrations/paypal_payments_advanced/helper.rb +0 -15
  343. data/lib/active_merchant/billing/integrations/paypal_payments_advanced.rb +0 -20
  344. data/lib/active_merchant/billing/integrations/paysbuy/helper.rb +0 -15
  345. data/lib/active_merchant/billing/integrations/paysbuy/notification.rb +0 -28
  346. data/lib/active_merchant/billing/integrations/paysbuy.rb +0 -36
  347. data/lib/active_merchant/billing/integrations/payu_in/helper.rb +0 -74
  348. data/lib/active_merchant/billing/integrations/payu_in/notification.rb +0 -165
  349. data/lib/active_merchant/billing/integrations/payu_in/return.rb +0 -36
  350. data/lib/active_merchant/billing/integrations/payu_in.rb +0 -43
  351. data/lib/active_merchant/billing/integrations/platron/helper.rb +0 -32
  352. data/lib/active_merchant/billing/integrations/platron/notification.rb +0 -113
  353. data/lib/active_merchant/billing/integrations/platron.rb +0 -28
  354. data/lib/active_merchant/billing/integrations/pxpay/helper.rb +0 -112
  355. data/lib/active_merchant/billing/integrations/pxpay/notification.rb +0 -157
  356. data/lib/active_merchant/billing/integrations/pxpay/return.rb +0 -25
  357. data/lib/active_merchant/billing/integrations/pxpay.rb +0 -31
  358. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +0 -74
  359. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +0 -137
  360. data/lib/active_merchant/billing/integrations/quickpay.rb +0 -21
  361. data/lib/active_merchant/billing/integrations/rbkmoney/helper.rb +0 -23
  362. data/lib/active_merchant/billing/integrations/rbkmoney/notification.rb +0 -91
  363. data/lib/active_merchant/billing/integrations/rbkmoney.rb +0 -17
  364. data/lib/active_merchant/billing/integrations/return.rb +0 -42
  365. data/lib/active_merchant/billing/integrations/robokassa/common.rb +0 -19
  366. data/lib/active_merchant/billing/integrations/robokassa/helper.rb +0 -50
  367. data/lib/active_merchant/billing/integrations/robokassa/notification.rb +0 -55
  368. data/lib/active_merchant/billing/integrations/robokassa/return.rb +0 -17
  369. data/lib/active_merchant/billing/integrations/robokassa.rb +0 -49
  370. data/lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb +0 -33
  371. data/lib/active_merchant/billing/integrations/sage_pay_form/helper.rb +0 -136
  372. data/lib/active_merchant/billing/integrations/sage_pay_form/notification.rb +0 -210
  373. data/lib/active_merchant/billing/integrations/sage_pay_form/return.rb +0 -31
  374. data/lib/active_merchant/billing/integrations/sage_pay_form.rb +0 -37
  375. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +0 -91
  376. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +0 -139
  377. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +0 -17
  378. data/lib/active_merchant/billing/integrations/two_checkout.rb +0 -44
  379. data/lib/active_merchant/billing/integrations/valitor/helper.rb +0 -86
  380. data/lib/active_merchant/billing/integrations/valitor/notification.rb +0 -13
  381. data/lib/active_merchant/billing/integrations/valitor/response_fields.rb +0 -97
  382. data/lib/active_merchant/billing/integrations/valitor/return.rb +0 -13
  383. data/lib/active_merchant/billing/integrations/valitor.rb +0 -33
  384. data/lib/active_merchant/billing/integrations/verkkomaksut/helper.rb +0 -88
  385. data/lib/active_merchant/billing/integrations/verkkomaksut/notification.rb +0 -59
  386. data/lib/active_merchant/billing/integrations/verkkomaksut.rb +0 -20
  387. data/lib/active_merchant/billing/integrations/web_pay/common.rb +0 -50
  388. data/lib/active_merchant/billing/integrations/web_pay/helper.rb +0 -68
  389. data/lib/active_merchant/billing/integrations/web_pay/notification.rb +0 -51
  390. data/lib/active_merchant/billing/integrations/web_pay.rb +0 -45
  391. data/lib/active_merchant/billing/integrations/webmoney/common.rb +0 -17
  392. data/lib/active_merchant/billing/integrations/webmoney/helper.rb +0 -40
  393. data/lib/active_merchant/billing/integrations/webmoney/notification.rb +0 -47
  394. data/lib/active_merchant/billing/integrations/webmoney.rb +0 -43
  395. data/lib/active_merchant/billing/integrations/world_pay/helper.rb +0 -101
  396. data/lib/active_merchant/billing/integrations/world_pay/notification.rb +0 -160
  397. data/lib/active_merchant/billing/integrations/world_pay.rb +0 -34
  398. data/lib/active_merchant/billing/integrations.rb +0 -17
  399. data.tar.gz.sig +0 -0
  400. metadata.gz.sig +0 -0
@@ -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,129 +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
- def initialize(data, options)
11
- if options[:credential2].nil?
12
- raise ArgumentError, "You need to provide the md5 secret as the option :credential2 to verify that the notification originated from Moneybookers"
13
- end
14
- super
15
- end
16
-
17
- def complete?
18
- status == 'Completed'
19
- end
20
-
21
- # ‘2’ Processed – This status is sent when the transaction is processed and the funds have been received on your Moneybookers account.
22
- # ‘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.
23
- # ‘-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.
24
- # ‘-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.
25
- # ‘-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.
26
- def status
27
- case status_code
28
- when '2'
29
- 'Completed'
30
- when '0'
31
- 'Pending'
32
- when '-1'
33
- 'Cancelled'
34
- when '-2'
35
- 'Failed'
36
- when '-3'
37
- 'Reversed'
38
- else
39
- 'Error'
40
- end
41
- end
42
-
43
- def status_code
44
- params['status']
45
- end
46
-
47
- def item_id
48
- params['transaction_id']
49
- end
50
-
51
- def transaction_id
52
- params['mb_transaction_id']
53
- end
54
-
55
- # When was this payment received by the client.
56
- def received_at
57
- nil
58
- end
59
-
60
- def payer_email
61
- params['pay_from_email']
62
- end
63
-
64
- def receiver_email
65
- params['pay_to_email']
66
- end
67
-
68
- def md5sig
69
- params['md5sig']
70
- end
71
-
72
- #Unique ID from the merchant's Moneybookers.com account, needed for calculatinon of md5 sig
73
- def merchant_id
74
- params['merchant_id']
75
- end
76
-
77
- # currency of the payment as posted by the merchant on the entry form
78
- def currency
79
- params['currency']
80
- end
81
-
82
- # amount of the payment as posted by the merchant on the entry form (ex. 39.60/39.6/39)
83
- def gross
84
- params['amount']
85
- end
86
-
87
- # currency of mb_amount, will always be the same as the currency of the beneficiary's account at Moneybookers.com
88
- def merchant_currency
89
- params['mb_currency']
90
- end
91
-
92
- # total amount of the payment in Merchants currency (ex 25.46/25.4/25)
93
- def merchant_amount
94
- params['mb_amount']
95
- end
96
-
97
- # Was this a test transaction?
98
- def test?
99
- false
100
- end
101
-
102
- def secret
103
- @options[:credential2]
104
- end
105
-
106
- # Acknowledge the transaction to MoneyBooker. This method has to be called after a new
107
- # apc arrives. It will verify that all the information we received is correct and will return a
108
- # ok or a fail. The secret (second credential) has to be provided in the parameter :credential2
109
- # when instantiating the Notification object.
110
- #
111
- # Example:
112
- #
113
- # def ipn
114
- # notify = Moneybookers.notification(request.raw_post, :credential2 => 'secret')
115
- #
116
- # if notify.acknowledge
117
- # ... process order ... if notify.complete?
118
- # else
119
- # ... log possible hacking attempt ...
120
- # end
121
- def acknowledge
122
- fields = [merchant_id, item_id, Digest::MD5.hexdigest(secret).upcase, merchant_amount, merchant_currency, status_code].join
123
- md5sig == Digest::MD5.hexdigest(fields).upcase
124
- end
125
- end
126
- end
127
- end
128
- end
129
- 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
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)
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
27
- (security_key == generate_signature)
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end