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,42 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Gestpay
5
- module Common
6
- VERSION = "2.0"
7
- ENCRYPTION_PATH = "/CryptHTTPS/Encrypt.asp"
8
- DECRYPTION_PATH = "/CryptHTTPS/Decrypt.asp"
9
- DELIMITER = '*P1*'
10
-
11
- CURRENCY_MAPPING = {
12
- 'EUR' => '242',
13
- 'ITL' => '18',
14
- 'BRL' => '234',
15
- 'USD' => '1',
16
- 'JPY' => '71',
17
- 'HKD' => '103'
18
- }
19
-
20
- def parse_response(response)
21
- case response
22
- when /#cryptstring#(.*)#\/cryptstring#/, /#decryptstring#(.*)#\/decryptstring#/
23
- $1
24
- when /#error#(.*)#\/error#/
25
- raise StandardError, "An error occurred retrieving the encrypted string from GestPay: #{$1}"
26
- else
27
- raise StandardError, "No response was received by GestPay"
28
- end
29
- end
30
-
31
- def ssl_get(url, path)
32
- uri = URI.parse(url)
33
- site = Net::HTTP.new(uri.host, uri.port)
34
- site.use_ssl = true
35
- site.verify_mode = OpenSSL::SSL::VERIFY_NONE
36
- site.get(path).body
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,70 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Gestpay
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
- include Common
7
- # Valid language codes
8
- # Italian => 1
9
- # English => 2
10
- # Spanish => 3
11
- # French => 4
12
- # Tedesco => 5
13
- def initialize(order, account, options = {})
14
- super
15
- add_field('PAY1_IDLANGUAGE', 2)
16
- end
17
-
18
- mapping :account, 'ShopLogin'
19
-
20
- mapping :amount, 'PAY1_AMOUNT'
21
- mapping :currency, 'PAY1_UICCODE'
22
-
23
- mapping :order, 'PAY1_SHOPTRANSACTIONID'
24
-
25
- # Buyer name PAY1_CHNAME
26
- mapping :customer, :email => 'PAY1_CHEMAIL'
27
-
28
- mapping :credit_card, :number => 'PAY1_CARDNUMBER',
29
- :expiry_month => 'PAY1_EXPMONTH',
30
- :expiry_year => 'PAY1_EXPYEAR',
31
- :verification_value => 'PAY1_CVV'
32
-
33
- def customer(params = {})
34
- add_field(mappings[:customer][:email], params[:email])
35
- add_field('PAY1_CHNAME', "#{params[:first_name]} #{params[:last_name]}")
36
- end
37
-
38
- def currency=(currency_code)
39
- code = CURRENCY_MAPPING[currency_code]
40
- raise StandardError, "Invalid currency code #{currency_code} specified" if code.nil?
41
-
42
- add_field(mappings[:currency], code)
43
- end
44
-
45
- def form_fields
46
- @encrypted_data ||= get_encrypted_string
47
-
48
- {
49
- 'a' => @fields['ShopLogin'],
50
- 'b' => @encrypted_data
51
- }
52
- end
53
-
54
- def get_encrypted_string
55
- response = ssl_get(Gestpay.service_url, encryption_query_string)
56
- parse_response(response)
57
- end
58
-
59
- def encryption_query_string
60
- fields = ['PAY1_AMOUNT', 'PAY1_SHOPTRANSACTIONID', 'PAY1_UICCODE']
61
-
62
- encoded_params = fields.collect{ |field| "#{field}=#{CGI.escape(@fields[field])}" }.join(DELIMITER)
63
-
64
- "#{ENCRYPTION_PATH}?a=" + CGI.escape(@fields['ShopLogin']) + "&b=" + encoded_params + "&c=" + CGI.escape(VERSION)
65
- end
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,85 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Gestpay
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- include Common
9
-
10
- def complete?
11
- status == 'Completed'
12
- end
13
-
14
- # The important param
15
- def item_id
16
- params['PAY1_SHOPTRANSACTIONID']
17
- end
18
-
19
- def transaction_id
20
- params['PAY1_BANKTRANSACTIONID']
21
- end
22
-
23
- # the money amount we received in X.2 decimal.
24
- def gross
25
- params['PAY1_AMOUNT']
26
- end
27
-
28
- def currency
29
- # Ruby 1.9 compat
30
- method = CURRENCY_MAPPING.respond_to?(:key) ? :key : :index
31
- CURRENCY_MAPPING.send(method, params['PAY1_UICCODE'])
32
- end
33
-
34
- def test?
35
- false
36
- end
37
-
38
- def status
39
- case params['PAY1_TRANSACTIONRESULT']
40
- when 'OK'
41
- 'Completed'
42
- else
43
- 'Failed'
44
- end
45
- end
46
-
47
- def acknowledge(authcode = nil)
48
- true
49
- end
50
-
51
- private
52
- # Take the posted data and move the relevant data into a hash
53
- def parse(query_string)
54
- @raw = query_string
55
-
56
- return if query_string.blank?
57
- encrypted_params = parse_delimited_string(query_string)
58
-
59
- return if encrypted_params['a'].blank? || encrypted_params['b'].blank?
60
- @params = decrypt_data(encrypted_params['a'], encrypted_params['b'])
61
- end
62
-
63
- def parse_delimited_string(string, delimiter = '&', unencode_cgi = false)
64
- result = {}
65
- for line in string.split(delimiter)
66
- key, value = *line.scan( %r{^(\w+)\=(.*)$} ).flatten
67
- result[key] = unencode_cgi ? CGI.unescape(value) : value
68
- end
69
- result
70
- end
71
-
72
- def decrypt_data(shop_login, encrypted_string)
73
- response = ssl_get(Gestpay.service_url, decryption_query_string(shop_login, encrypted_string))
74
- encoded_response = parse_response(response)
75
- parse_delimited_string(encoded_response, DELIMITER, true)
76
- end
77
-
78
- def decryption_query_string(shop_login, encrypted_string)
79
- "#{DECRYPTION_PATH}?a=" + CGI.escape(shop_login) + "&b=" + encrypted_string + "&c=" + CGI.escape(VERSION)
80
- end
81
- end
82
- end
83
- end
84
- end
85
- end
@@ -1,10 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module Gestpay
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- end
7
- end
8
- end
9
- end
10
- end
@@ -1,25 +0,0 @@
1
- # With help from Giovanni Intini and his code for RGestPay - http://medlar.it/it/progetti/rgestpay
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Gestpay
7
- autoload :Return, File.dirname(__FILE__) + '/gestpay/return.rb'
8
- autoload :Common, File.dirname(__FILE__) + '/gestpay/common.rb'
9
- autoload :Helper, File.dirname(__FILE__) + '/gestpay/helper.rb'
10
- autoload :Notification, File.dirname(__FILE__) + '/gestpay/notification.rb'
11
-
12
- mattr_accessor :service_url
13
- self.service_url = 'https://ecomm.sella.it/gestpay/pagam.asp'
14
-
15
- def self.notification(post, options = {})
16
- Notification.new(post)
17
- end
18
-
19
- def self.return(query_string, options = {})
20
- Return.new(query_string)
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,117 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- class Helper #:nodoc:
5
- attr_reader :fields
6
- class_attribute :service_url
7
- class_attribute :mappings
8
- class_attribute :country_format
9
- self.country_format = :alpha2
10
-
11
- # The application making the calls to the gateway
12
- # Useful for things like the PayPal build notation (BN) id fields
13
- class_attribute :application_id
14
- self.application_id = 'ActiveMerchant'
15
-
16
- def initialize(order, account, options = {})
17
- options.assert_valid_keys([:amount, :currency, :test, :credential2, :credential3, :credential4, :country, :account_name, :transaction_type, :authcode])
18
- @fields = {}
19
- @raw_html_fields = []
20
- @test = options[:test]
21
- self.order = order
22
- self.account = account
23
- self.amount = options[:amount]
24
- self.currency = options[:currency]
25
- self.credential2 = options[:credential2]
26
- self.credential3 = options[:credential3]
27
- self.credential4 = options[:credential4]
28
- end
29
-
30
- def self.mapping(attribute, options = {})
31
- self.mappings ||= {}
32
- self.mappings[attribute] = options
33
- end
34
-
35
- def add_field(name, value)
36
- return if name.blank? || value.blank?
37
- @fields[name.to_s] = value.to_s
38
- end
39
-
40
- def add_fields(subkey, params = {})
41
- params.each do |k, v|
42
- field = mappings[subkey][k]
43
- add_field(field, v) unless field.blank?
44
- end
45
- end
46
-
47
- # Add a field that has characters that CGI::escape would mangle. Allows
48
- # for multiple fields with the same name (e.g., to support line items).
49
- def add_raw_html_field(name, value)
50
- return if name.blank? || value.blank?
51
- @raw_html_fields << [name, value]
52
- end
53
-
54
- def raw_html_fields
55
- @raw_html_fields
56
- end
57
-
58
- def billing_address(params = {})
59
- add_address(:billing_address, params)
60
- end
61
-
62
- def shipping_address(params = {})
63
- add_address(:shipping_address, params)
64
- end
65
-
66
- def form_fields
67
- @fields
68
- end
69
-
70
- def test?
71
- @test_mode ||= ActiveMerchant::Billing::Base.integration_mode == :test || @test
72
- end
73
-
74
- def form_method
75
- "POST"
76
- end
77
-
78
- private
79
-
80
- def add_address(key, params)
81
- return if mappings[key].nil?
82
-
83
- code = lookup_country_code(params.delete(:country))
84
- add_field(mappings[key][:country], code)
85
- add_fields(key, params)
86
- end
87
-
88
- def lookup_country_code(name_or_code, format = country_format)
89
- country = Country.find(name_or_code)
90
- country.code(format).to_s
91
- rescue InvalidCountryCodeError
92
- name_or_code
93
- end
94
-
95
- def method_missing(method_id, *args)
96
- method_id = method_id.to_s.gsub(/=$/, '').to_sym
97
- # Return and do nothing if the mapping was not found. This allows
98
- # For easy substitution of the different integrations
99
- return if mappings[method_id].nil?
100
-
101
- mapping = mappings[method_id]
102
-
103
- case mapping
104
- when Array
105
- mapping.each{ |field| add_field(field, args.last) }
106
- when Hash
107
- options = args.last.is_a?(Hash) ? args.pop : {}
108
-
109
- mapping.each{ |key, field| add_field(field, options[key]) }
110
- else
111
- add_field(mapping, args.last)
112
- end
113
- end
114
- end
115
- end
116
- end
117
- end
@@ -1,58 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module HiTrust
5
- class Helper < ActiveMerchant::Billing::Integrations::Helper
6
-
7
- # Transaction types
8
- # * Auth
9
- # * AuthRe
10
- # * Capture
11
- # * CaptureRe
12
- # * Refund
13
- # * RefundRe
14
- # * Query
15
- def initialize(order, account, options = {})
16
- super
17
- # Perform an authorization by default
18
- add_field('Type', 'Auth')
19
-
20
- # Capture the payment right away
21
- add_field('depositflag', '1')
22
-
23
- # Disable auto query - who knows what it does?
24
- add_field('queryflag', '1')
25
-
26
- add_field('orderdesc', 'Store purchase')
27
- end
28
-
29
- mapping :account, 'storeid'
30
- mapping :amount, 'amount'
31
-
32
- def amount=(money)
33
- cents = money.respond_to?(:cents) ? money.cents : money
34
-
35
- if money.is_a?(String) or cents.to_i < 0
36
- raise ArgumentError, 'money amount must be either a Money object or a positive integer in cents.'
37
- end
38
-
39
- add_field(mappings[:amount], cents)
40
- end
41
- # Supported currencies include:
42
- # * CNY:Chinese Yuan (Renminbi)
43
- # * TWD:New Taiwan Dollar
44
- # * HKD:Hong Kong Dollar
45
- # * USD:US Dollar
46
- # * AUD:Austrian Dollar
47
- mapping :currency, 'currency'
48
-
49
- mapping :order, 'ordernumber'
50
- mapping :description, 'orderdesc'
51
-
52
- mapping :notify_url, 'merUpdateURL'
53
- mapping :return_url, 'returnURL'
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,59 +0,0 @@
1
- require 'net/http'
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module HiTrust
7
- class Notification < ActiveMerchant::Billing::Integrations::Notification
8
- SUCCESS = '00'
9
-
10
- self.production_ips = [ '203.75.242.8' ]
11
-
12
- def complete?
13
- status == 'Completed'
14
- end
15
-
16
- def transaction_id
17
- params['authRRN']
18
- end
19
-
20
- def item_id
21
- params['ordernumber']
22
- end
23
-
24
- def received_at
25
- Time.parse(params['orderdate']) rescue nil
26
- end
27
-
28
- def currency
29
- params['currency']
30
- end
31
-
32
- def gross
33
- sprintf("%.2f", gross_cents.to_f / 100)
34
- end
35
-
36
- def gross_cents
37
- params['approveamount'].to_i
38
- end
39
-
40
- def account
41
- params['storeid']
42
- end
43
-
44
- def status
45
- params['retcode'] == SUCCESS ? 'Completed' : 'Failed'
46
- end
47
-
48
- def test?
49
- ActiveMerchant::Billing::Base.integration_mode == :test
50
- end
51
-
52
- def acknowledge
53
- true
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end
@@ -1,68 +0,0 @@
1
- module ActiveMerchant #:nodoc:
2
- module Billing #:nodoc:
3
- module Integrations #:nodoc:
4
- module HiTrust
5
- class Return < ActiveMerchant::Billing::Integrations::Return
6
- SUCCESS = "00"
7
- CODES = { "00" => "Operation completed successfully",
8
- "-1" => "Unable to initialize winsock dll.",
9
- "-2" => "Can't create stream socket.",
10
- "-3" => "No Request Message.",
11
- "-4" => "Can't connect to server.",
12
- "-5" => "Send socket error.",
13
- "-6" => "Couldn't receive data.",
14
- "-7" => "Receive Broken message.",
15
- "-8" => "Unable to initialize Envirnment.",
16
- "-9" => "Can't Read Server RSA File.",
17
- "-10" => "Can't Read Client RSA File.",
18
- "-11" => "Web Server error.",
19
- "-12" => "Receive Message type error.",
20
- "-13" => "No Request Message.",
21
- "-14" => "No Response Content.",
22
- "-18" => "Merchant Update URL not found.",
23
- "-19" => "Server URL not find Domain or IP.",
24
- "-20" => "Server URL only can fill http or https.",
25
- "-21" => "Server Config File open error.",
26
- "-22" => "Server RSA Key File open error.",
27
- "-23" => "Server RSA Key File read error.",
28
- "-24" => "Server Config File have some errors, Please to check it.",
29
- "-25" => "Merchant Config File open error.",
30
- "-26" => "Merchant RSA Key File open error.",
31
- "-27" => "Merchant RSA Key File read error.",
32
- "-28" => "Merchant Config File has some errors, Please to check it.",
33
- "-29" => "Server Type is unknown.",
34
- "-30" => "Comm Type is unknown.",
35
- "-31" => "Input Parameter [ORDERNO] is null or empty.",
36
- "-32" => "Input Parameter [STOREID] is null or empty.",
37
- "-33" => "Input Parameter [ORDERDESC] is null or empty.",
38
- "-34" => "Input Parameter [CURRENCY] is null or empty.",
39
- "-35" => "Input Parameter [AMOUNT] is null or empty.",
40
- "-36" => "Input Parameter [ORDERURL] is null or empty.",
41
- "-37" => "Input Parameter [RETURNURL] is null or empty.",
42
- "-38" => "Input Parameter [DEPOSIT] is null or empty.",
43
- "-39" => "Input Parameter [QUERYFLAG] is null or empty.",
44
- "-40" => "Input Parameter [UPDATEURL] is null or empty.",
45
- "-41" => "Input Parameter [MERUPDATEURL] is null or empty.",
46
- "-42" => "Input Parameter [KEY] is null or empty.",
47
- "-43" => "Input Parameter [MAC] is null or empty.",
48
- "-44" => "Input Parameter [CIPHER] is null or empty.",
49
- "-45" => "Input Parameter [TrxType] is wrong.",
50
- "-100" => "TrustLink Server is closed. Or Merchant Server IP is not consistent with TrustLink Server setting.",
51
- "-101" => "TrustLink Server receives NULL.",
52
- "-308" => "Order Number already exists.",
53
- "positive" => "Response from Bank. Please contact with Acquirer Bank Service or HiTRUST Call Center."
54
- }
55
-
56
- def success?
57
- params['retcode'] == SUCCESS
58
- end
59
-
60
- def message
61
- return CODES["positive"] if params['retcode'].to_i > 0
62
- CODES[ params['retcode'] ]
63
- end
64
- end
65
- end
66
- end
67
- end
68
- end
@@ -1,27 +0,0 @@
1
-
2
- module ActiveMerchant #:nodoc:
3
- module Billing #:nodoc:
4
- module Integrations #:nodoc:
5
- module HiTrust
6
- autoload :Helper, File.dirname(__FILE__) + '/hi_trust/helper.rb'
7
- autoload :Return, File.dirname(__FILE__) + '/hi_trust/return.rb'
8
- autoload :Notification, File.dirname(__FILE__) + '/hi_trust/notification.rb'
9
-
10
- TEST_URL = 'https://testtrustlink.hitrust.com.tw/TrustLink/TrxReqForJava'
11
- LIVE_URL = 'https://trustlink.hitrust.com.tw/TrustLink/TrxReqForJava'
12
-
13
- def self.service_url
14
- ActiveMerchant::Billing::Base.integration_mode == :test ? TEST_URL : LIVE_URL
15
- end
16
-
17
- def self.notification(post, options = {})
18
- Notification.new(post)
19
- end
20
-
21
- def self.return(query_string, options = {})
22
- Return.new(query_string)
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,118 +0,0 @@
1
- require "digest/sha1"
2
-
3
- module ActiveMerchant #:nodoc:
4
- module Billing #:nodoc:
5
- module Integrations #:nodoc:
6
- module Ipay88
7
- class Helper < ActiveMerchant::Billing::Integrations::Helper
8
- include RequiresParameters
9
-
10
- # Currencies supported
11
- # MYR (Malaysian Ringgit - for all payment methods except China Union Pay and PayPal)
12
- # USD (US Dollar - only for PayPal)
13
- # CNY (Yuan Renminbi - only for China Union Pay)
14
- SUPPORTED_CURRENCIES = %w[MYR USD CNY]
15
-
16
- # Languages supported
17
- # ISO-8859-1 (English)
18
- # UTF-8 (Unicode)
19
- # GB2312 (Chinese Simplified)
20
- # GD18030 (Chinese Simplified)
21
- # BIG5 (Chinese Traditional)
22
- SUPPORTED_LANGS = %w[ISO-8859-1 UTF-8 GB2312 GD18030 BIG5]
23
-
24
- # Payment methods supported
25
- # 8 (Alliance Online Transfer)
26
- # 10 (AmBank)
27
- # 21 (China Union Pay)
28
- # 20 (CIMB Click)
29
- # 2 (Credit Card MYR)
30
- # 16 (FPX)
31
- # 15 (Hong Leong Bank Transfer)
32
- # 6 (Maybank2u.com)
33
- # 23 (MEPS Cash)
34
- # 17 (Mobile Money)
35
- # 33 (PayPal)
36
- # 14 (RHB)
37
- PAYMENT_METHODS = %w[8 10 21 20 2 16 15 6 23 17 33 14]
38
-
39
- attr_reader :amount_in_cents, :merchant_key
40
-
41
- def initialize(order, account, options = {})
42
- requires!(options, :amount, :currency, :credential2)
43
- @merchant_key = options[:credential2]
44
- @amount_in_cents = options[:amount]
45
- super
46
- add_field mappings[:signature], signature
47
- end
48
-
49
- def amount_in_dollars
50
- sprintf("%.2f", @amount_in_cents.to_f/100)
51
- end
52
-
53
- def amount=(money)
54
- @amount_in_cents = money.respond_to?(:cents) ? money.cents : money
55
- if money.is_a?(String) or @amount_in_cents.to_i < 0
56
- raise ArgumentError, "money amount must be either a Money object or a positive integer in cents."
57
- end
58
- add_field mappings[:amount], amount_in_dollars
59
- end
60
-
61
- def currency(symbol)
62
- raise ArgumentError, "unsupported currency" unless SUPPORTED_CURRENCIES.include?(symbol)
63
- add_field mappings[:currency], symbol
64
- end
65
-
66
- def language(lang)
67
- raise ArgumentError, "unsupported language" unless SUPPORTED_LANGS.include?(lang)
68
- add_field mappings[:language], lang
69
- end
70
-
71
- def payment(pay_method)
72
- raise ArgumentError, "unsupported payment method" unless PAYMENT_METHODS.include?(pay_method.to_s)
73
- add_field mappings[:payment], pay_method
74
- end
75
-
76
- def customer(params = {})
77
- add_field(mappings[:customer][:name], "#{params[:first_name]} #{params[:last_name]}")
78
- add_field(mappings[:customer][:email], params[:email])
79
- add_field(mappings[:customer][:phone], params[:phone])
80
- end
81
-
82
- def self.sign(str)
83
- [Digest::SHA1.digest(str)].pack("m").chomp
84
- end
85
-
86
- def signature
87
- self.class.sign(self.sig_components)
88
- end
89
-
90
- mapping :account, "MerchantCode"
91
- mapping :amount, "Amount"
92
- mapping :currency, "Currency"
93
- mapping :order, "RefNo"
94
- mapping :description, "ProdDesc"
95
- mapping :customer, :name => "UserName",
96
- :email => "UserEmail",
97
- :phone => "UserContact"
98
- mapping :remark, "Remark"
99
- mapping :language, "Lang"
100
- mapping :payment, "PaymentId"
101
- mapping :return_url, "ResponseURL"
102
- mapping :signature, "Signature"
103
-
104
- protected
105
-
106
- def sig_components
107
- components = [merchant_key]
108
- components << fields[mappings[:account]]
109
- components << fields[mappings[:order]]
110
- components << amount_in_dollars.gsub(/[.,]/, '')
111
- components << fields[mappings[:currency]]
112
- components.join
113
- end
114
- end
115
- end
116
- end
117
- end
118
- end