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.
- checksums.yaml +5 -13
- data/CHANGELOG +1420 -2
- data/CONTRIBUTORS +106 -0
- data/README.md +107 -103
- data/lib/active_merchant/billing/apple_pay_payment_token.rb +22 -0
- data/lib/active_merchant/billing/avs_result.rb +12 -13
- data/lib/active_merchant/billing/base.rb +13 -16
- data/lib/active_merchant/billing/check.rb +35 -24
- data/lib/active_merchant/billing/compatibility.rb +117 -0
- data/lib/active_merchant/billing/credit_card.rb +196 -81
- data/lib/active_merchant/billing/credit_card_formatting.rb +6 -4
- data/lib/active_merchant/billing/credit_card_methods.rb +199 -75
- data/lib/active_merchant/billing/cvv_result.rb +15 -15
- data/lib/active_merchant/billing/gateway.rb +171 -39
- data/lib/active_merchant/billing/gateways/adyen.rb +380 -0
- data/lib/active_merchant/billing/gateways/allied_wallet.rb +205 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +933 -604
- data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +417 -0
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +74 -54
- data/lib/active_merchant/billing/gateways/axcessms.rb +181 -0
- data/lib/active_merchant/billing/gateways/balanced.rb +130 -370
- data/lib/active_merchant/billing/gateways/bank_frick.rb +225 -0
- data/lib/active_merchant/billing/gateways/banwire.rb +23 -12
- data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +351 -0
- data/lib/active_merchant/billing/gateways/barclays_epdq_extra_plus.rb +6 -6
- data/lib/active_merchant/billing/gateways/be2bill.rb +2 -2
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +109 -32
- data/lib/active_merchant/billing/gateways/beanstream.rb +59 -13
- data/lib/active_merchant/billing/gateways/beanstream_interac.rb +12 -9
- data/lib/active_merchant/billing/gateways/blue_pay.rb +520 -498
- data/lib/active_merchant/billing/gateways/blue_snap.rb +347 -0
- data/lib/active_merchant/billing/gateways/bogus.rb +80 -46
- data/lib/active_merchant/billing/gateways/borgun.rb +220 -0
- data/lib/active_merchant/billing/gateways/bpoint.rb +277 -0
- data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +15 -2
- data/lib/active_merchant/billing/gateways/braintree.rb +2 -2
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +311 -121
- data/lib/active_merchant/billing/gateways/braintree_orange.rb +4 -4
- data/lib/active_merchant/billing/gateways/bridge_pay.rb +244 -0
- data/lib/active_merchant/billing/gateways/cams.rb +230 -0
- data/lib/active_merchant/billing/gateways/card_connect.rb +311 -0
- data/lib/active_merchant/billing/gateways/card_save.rb +6 -7
- data/lib/active_merchant/billing/gateways/card_stream.rb +235 -89
- data/lib/active_merchant/billing/gateways/cardknox.rb +327 -0
- data/lib/active_merchant/billing/gateways/cardprocess.rb +254 -0
- data/lib/active_merchant/billing/gateways/cashnet.rb +219 -0
- data/lib/active_merchant/billing/gateways/cc5.rb +50 -8
- data/lib/active_merchant/billing/gateways/cecabank.rb +27 -14
- data/lib/active_merchant/billing/gateways/cenpos.rb +327 -0
- data/lib/active_merchant/billing/gateways/checkout.rb +214 -0
- data/lib/active_merchant/billing/gateways/checkout_v2.rb +233 -0
- data/lib/active_merchant/billing/gateways/citrus_pay.rb +22 -0
- data/lib/active_merchant/billing/gateways/clearhaus.rb +220 -0
- data/lib/active_merchant/billing/gateways/commercegate.rb +142 -0
- data/lib/active_merchant/billing/gateways/conekta.rb +91 -97
- data/lib/active_merchant/billing/gateways/creditcall.rb +271 -0
- data/lib/active_merchant/billing/gateways/credorax.rb +356 -0
- data/lib/active_merchant/billing/gateways/ct_payment.rb +268 -0
- data/lib/active_merchant/billing/gateways/culqi.rb +277 -0
- data/lib/active_merchant/billing/gateways/cyber_source.rb +294 -158
- data/lib/active_merchant/billing/gateways/d_local.rb +226 -0
- data/lib/active_merchant/billing/gateways/data_cash.rb +59 -347
- data/lib/active_merchant/billing/gateways/dibs.rb +199 -0
- data/lib/active_merchant/billing/gateways/digitzs.rb +292 -0
- data/lib/active_merchant/billing/gateways/ebanx.rb +296 -0
- data/lib/active_merchant/billing/gateways/efsnet.rb +24 -39
- data/lib/active_merchant/billing/gateways/elavon.rb +146 -147
- data/lib/active_merchant/billing/gateways/element.rb +356 -0
- data/lib/active_merchant/billing/gateways/epay.rb +41 -31
- data/lib/active_merchant/billing/gateways/evo_ca.rb +1 -1
- data/lib/active_merchant/billing/gateways/eway.rb +79 -78
- data/lib/active_merchant/billing/gateways/eway_managed.rb +35 -36
- data/lib/active_merchant/billing/gateways/eway_rapid.rb +369 -228
- data/lib/active_merchant/billing/gateways/exact.rb +32 -26
- data/lib/active_merchant/billing/gateways/ezic.rb +195 -0
- data/lib/active_merchant/billing/gateways/fat_zebra.rb +90 -64
- data/lib/active_merchant/billing/gateways/federated_canada.rb +6 -14
- data/lib/active_merchant/billing/gateways/finansbank.rb +3 -3
- data/lib/active_merchant/billing/gateways/first_giving.rb +142 -0
- data/lib/active_merchant/billing/gateways/first_pay.rb +128 -122
- data/lib/active_merchant/billing/gateways/firstdata_e4.rb +190 -64
- data/lib/active_merchant/billing/gateways/firstdata_e4_v27.rb +446 -0
- data/lib/active_merchant/billing/gateways/flo2cash.rb +215 -0
- data/lib/active_merchant/billing/gateways/flo2cash_simple.rb +20 -0
- data/lib/active_merchant/billing/gateways/forte.rb +270 -0
- data/lib/active_merchant/billing/gateways/garanti.rb +29 -27
- data/lib/active_merchant/billing/gateways/global_collect.rb +340 -0
- data/lib/active_merchant/billing/gateways/global_transport.rb +194 -0
- data/lib/active_merchant/billing/gateways/hdfc.rb +35 -36
- data/lib/active_merchant/billing/gateways/hps.rb +305 -0
- data/lib/active_merchant/billing/gateways/iats_payments.rb +271 -16
- data/lib/active_merchant/billing/gateways/in_context_paypal_express.rb +15 -0
- data/lib/active_merchant/billing/gateways/inspire.rb +29 -32
- data/lib/active_merchant/billing/gateways/instapay.rb +5 -6
- data/lib/active_merchant/billing/gateways/ipp.rb +175 -0
- data/lib/active_merchant/billing/gateways/iridium.rb +247 -41
- data/lib/active_merchant/billing/gateways/itransact.rb +4 -5
- data/lib/active_merchant/billing/gateways/iveri.rb +251 -0
- data/lib/active_merchant/billing/gateways/jetpay.rb +198 -71
- data/lib/active_merchant/billing/gateways/jetpay_v2.rb +437 -0
- data/lib/active_merchant/billing/gateways/komoju.rb +115 -0
- data/lib/active_merchant/billing/gateways/kushki.rb +219 -0
- data/lib/active_merchant/billing/gateways/latitude19.rb +411 -0
- data/lib/active_merchant/billing/gateways/linkpoint.rb +45 -43
- data/lib/active_merchant/billing/gateways/litle.rb +328 -444
- data/lib/active_merchant/billing/gateways/mastercard.rb +267 -0
- data/lib/active_merchant/billing/gateways/maxipago.rb +145 -115
- data/lib/active_merchant/billing/gateways/mercado_pago.rb +277 -0
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +37 -19
- data/lib/active_merchant/billing/gateways/merchant_one.rb +13 -15
- data/lib/active_merchant/billing/gateways/merchant_partners.rb +245 -0
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +57 -60
- data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +59 -48
- data/lib/active_merchant/billing/gateways/merchant_warrior.rb +38 -19
- data/lib/active_merchant/billing/gateways/mercury.rb +77 -54
- data/lib/active_merchant/billing/gateways/metrics_global.rb +11 -30
- data/lib/active_merchant/billing/gateways/micropayment.rb +183 -0
- data/lib/active_merchant/billing/gateways/migs.rb +81 -22
- data/lib/active_merchant/billing/gateways/modern_payments.rb +3 -3
- data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +23 -25
- data/lib/active_merchant/billing/gateways/monei.rb +307 -0
- data/lib/active_merchant/billing/gateways/moneris.rb +146 -64
- data/lib/active_merchant/billing/gateways/moneris_us.rb +197 -53
- data/lib/active_merchant/billing/gateways/money_movers.rb +6 -15
- data/lib/active_merchant/billing/gateways/mundipagg.rb +292 -0
- data/lib/active_merchant/billing/gateways/nab_transact.rb +86 -64
- data/lib/active_merchant/billing/gateways/ncr_secure_pay.rb +165 -0
- data/lib/active_merchant/billing/gateways/net_registry.rb +11 -5
- data/lib/active_merchant/billing/gateways/netaxept.rb +21 -22
- data/lib/active_merchant/billing/gateways/netbanx.rb +290 -0
- data/lib/active_merchant/billing/gateways/netbilling.rb +70 -35
- data/lib/active_merchant/billing/gateways/netpay.rb +5 -6
- data/lib/active_merchant/billing/gateways/network_merchants.rb +241 -0
- data/lib/active_merchant/billing/gateways/nmi.rb +274 -10
- data/lib/active_merchant/billing/gateways/ogone.rb +90 -47
- data/lib/active_merchant/billing/gateways/omise.rb +324 -0
- data/lib/active_merchant/billing/gateways/openpay.rb +48 -20
- data/lib/active_merchant/billing/gateways/opp.rb +369 -0
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +79 -44
- data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +22 -21
- data/lib/active_merchant/billing/gateways/orbital.rb +346 -102
- data/lib/active_merchant/billing/gateways/pac_net_raven.rb +48 -29
- data/lib/active_merchant/billing/gateways/pagarme.rb +246 -0
- data/lib/active_merchant/billing/gateways/pago_facil.rb +122 -0
- data/lib/active_merchant/billing/gateways/pay_conex.rb +245 -0
- data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +67 -48
- data/lib/active_merchant/billing/gateways/pay_hub.rb +213 -0
- data/lib/active_merchant/billing/gateways/pay_junction.rb +20 -26
- data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +188 -0
- data/lib/active_merchant/billing/gateways/pay_secure.rb +7 -15
- data/lib/active_merchant/billing/gateways/paybox_direct.rb +40 -36
- data/lib/active_merchant/billing/gateways/payeezy.rb +410 -0
- data/lib/active_merchant/billing/gateways/payex.rb +38 -30
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +62 -36
- data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +11 -7
- data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +3 -3
- data/lib/active_merchant/billing/gateways/payflow.rb +74 -27
- data/lib/active_merchant/billing/gateways/payflow_express.rb +77 -81
- data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +2 -3
- data/lib/active_merchant/billing/gateways/payflow_uk.rb +5 -6
- data/lib/active_merchant/billing/gateways/payment_express.rb +54 -45
- data/lib/active_merchant/billing/gateways/paymentez.rb +304 -0
- data/lib/active_merchant/billing/gateways/paymill.rb +160 -66
- data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +54 -7
- data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +4 -0
- data/lib/active_merchant/billing/gateways/paypal/paypal_recurring_api.rb +17 -3
- data/lib/active_merchant/billing/gateways/paypal.rb +36 -27
- data/lib/active_merchant/billing/gateways/paypal_ca.rb +1 -1
- data/lib/active_merchant/billing/gateways/paypal_digital_goods.rb +7 -6
- data/lib/active_merchant/billing/gateways/paypal_express.rb +32 -4
- data/lib/active_merchant/billing/gateways/paypal_express_common.rb +3 -3
- data/lib/active_merchant/billing/gateways/payscout.rb +2 -13
- data/lib/active_merchant/billing/gateways/paystation.rb +96 -88
- data/lib/active_merchant/billing/gateways/payu_in.rb +248 -0
- data/lib/active_merchant/billing/gateways/payu_latam.rb +445 -0
- data/lib/active_merchant/billing/gateways/payway.rb +8 -8
- data/lib/active_merchant/billing/gateways/pin.rb +74 -18
- data/lib/active_merchant/billing/gateways/plugnpay.rb +66 -76
- data/lib/active_merchant/billing/gateways/pro_pay.rb +326 -0
- data/lib/active_merchant/billing/gateways/psigate.rb +30 -30
- data/lib/active_merchant/billing/gateways/psl_card.rb +27 -34
- data/lib/active_merchant/billing/gateways/qbms.rb +65 -54
- data/lib/active_merchant/billing/gateways/quantum.rb +18 -18
- data/lib/active_merchant/billing/gateways/quickbooks.rb +290 -0
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_common.rb +184 -0
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +295 -0
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_v4to7.rb +226 -0
- data/lib/active_merchant/billing/gateways/quickpay.rb +10 -350
- data/lib/active_merchant/billing/gateways/qvalent.rb +236 -0
- data/lib/active_merchant/billing/gateways/realex.rb +78 -48
- data/lib/active_merchant/billing/gateways/redsys.rb +310 -170
- data/lib/active_merchant/billing/gateways/s5.rb +246 -0
- data/lib/active_merchant/billing/gateways/safe_charge.rb +262 -0
- data/lib/active_merchant/billing/gateways/sage.rb +415 -119
- data/lib/active_merchant/billing/gateways/sage_pay.rb +195 -90
- data/lib/active_merchant/billing/gateways/sallie_mae.rb +11 -12
- data/lib/active_merchant/billing/gateways/secure_net.rb +51 -43
- data/lib/active_merchant/billing/gateways/secure_pay.rb +182 -10
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +25 -14
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +10 -18
- data/lib/active_merchant/billing/gateways/securion_pay.rb +264 -0
- data/lib/active_merchant/billing/gateways/skip_jack.rb +35 -38
- data/lib/active_merchant/billing/gateways/smart_ps.rb +50 -42
- data/lib/active_merchant/billing/gateways/so_easy_pay.rb +9 -9
- data/lib/active_merchant/billing/gateways/spreedly_core.rb +62 -12
- data/lib/active_merchant/billing/gateways/stripe.rb +536 -103
- data/lib/active_merchant/billing/gateways/swipe_checkout.rb +12 -18
- data/lib/active_merchant/billing/gateways/telr.rb +274 -0
- data/lib/active_merchant/billing/gateways/tns.rb +22 -0
- data/lib/active_merchant/billing/gateways/trans_first.rb +143 -30
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +608 -0
- data/lib/active_merchant/billing/gateways/transact_pro.rb +224 -0
- data/lib/active_merchant/billing/gateways/transax.rb +5 -6
- data/lib/active_merchant/billing/gateways/transnational.rb +2 -232
- data/lib/active_merchant/billing/gateways/trexle.rb +218 -0
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +86 -57
- data/lib/active_merchant/billing/gateways/usa_epay.rb +4 -4
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +196 -89
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +157 -32
- data/lib/active_merchant/billing/gateways/vanco.rb +294 -0
- data/lib/active_merchant/billing/gateways/verifi.rb +42 -49
- data/lib/active_merchant/billing/gateways/viaklix.rb +11 -24
- data/lib/active_merchant/billing/gateways/visanet_peru.rb +233 -0
- data/lib/active_merchant/billing/gateways/webpay.rb +26 -28
- data/lib/active_merchant/billing/gateways/wepay.rb +237 -0
- data/lib/active_merchant/billing/gateways/wirecard.rb +153 -31
- data/lib/active_merchant/billing/gateways/world_net.rb +344 -0
- data/lib/active_merchant/billing/gateways/worldpay.rb +207 -63
- data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +215 -0
- data/lib/active_merchant/billing/gateways/worldpay_us.rb +221 -0
- data/lib/active_merchant/billing/gateways.rb +8 -11
- data/lib/active_merchant/billing/model.rb +30 -0
- data/lib/active_merchant/billing/network_tokenization_credit_card.rb +39 -0
- data/lib/active_merchant/billing/payment_token.rb +21 -0
- data/lib/active_merchant/billing/rails.rb +3 -0
- data/lib/active_merchant/billing/response.rb +31 -24
- data/lib/active_merchant/billing.rb +7 -1
- data/lib/active_merchant/connection.rb +195 -0
- data/lib/active_merchant/country.rb +335 -0
- data/lib/active_merchant/empty.rb +20 -0
- data/lib/active_merchant/errors.rb +35 -0
- data/lib/active_merchant/net_http_ssl_connection.rb +10 -0
- data/lib/active_merchant/network_connection_retries.rb +80 -0
- data/lib/active_merchant/post_data.rb +25 -0
- data/lib/active_merchant/posts_data.rb +92 -0
- data/lib/active_merchant/version.rb +1 -1
- data/lib/active_merchant.rb +23 -27
- data/lib/activemerchant.rb +1 -1
- data/lib/certs/cacert.pem +3988 -0
- data/lib/support/gateway_support.rb +7 -9
- data/lib/support/outbound_hosts.rb +13 -10
- data/lib/support/ssl_verify.rb +6 -7
- data/lib/support/ssl_version.rb +87 -0
- metadata +148 -323
- checksums.yaml.gz.sig +0 -0
- data/gem-public_cert.pem +0 -21
- data/lib/active_merchant/billing/expiry_date.rb +0 -34
- data/lib/active_merchant/billing/gateways/app55.rb +0 -185
- data/lib/active_merchant/billing/gateways/barclays_epdq.rb +0 -314
- data/lib/active_merchant/billing/gateways/certo_direct.rb +0 -277
- data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +0 -249
- data/lib/active_merchant/billing/gateways/ideal/ideal_rabobank.pem +0 -13
- data/lib/active_merchant/billing/gateways/ideal/ideal_response.rb +0 -29
- data/lib/active_merchant/billing/gateways/ideal_rabobank.rb +0 -66
- data/lib/active_merchant/billing/gateways/orbital/avs_result.rb +0 -93
- data/lib/active_merchant/billing/gateways/orbital/cvv_result.rb +0 -34
- data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +0 -93
- data/lib/active_merchant/billing/gateways/sage/sage_core.rb +0 -114
- data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +0 -102
- data/lib/active_merchant/billing/gateways/samurai.rb +0 -118
- data/lib/active_merchant/billing/gateways/vindicia.rb +0 -361
- data/lib/active_merchant/billing/integrations/a1agregator/helper.rb +0 -31
- data/lib/active_merchant/billing/integrations/a1agregator/notification.rb +0 -186
- data/lib/active_merchant/billing/integrations/a1agregator/status.rb +0 -38
- data/lib/active_merchant/billing/integrations/a1agregator.rb +0 -26
- data/lib/active_merchant/billing/integrations/action_view_helper.rb +0 -74
- data/lib/active_merchant/billing/integrations/alipay/helper.rb +0 -34
- data/lib/active_merchant/billing/integrations/alipay/notification.rb +0 -101
- data/lib/active_merchant/billing/integrations/alipay.rb +0 -18
- data/lib/active_merchant/billing/integrations/authorize_net_sim/helper.rb +0 -229
- data/lib/active_merchant/billing/integrations/authorize_net_sim/notification.rb +0 -340
- data/lib/active_merchant/billing/integrations/authorize_net_sim.rb +0 -38
- data/lib/active_merchant/billing/integrations/bit_pay/helper.rb +0 -64
- data/lib/active_merchant/billing/integrations/bit_pay/notification.rb +0 -74
- data/lib/active_merchant/billing/integrations/bit_pay/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/bit_pay.rb +0 -30
- data/lib/active_merchant/billing/integrations/bogus/helper.rb +0 -17
- data/lib/active_merchant/billing/integrations/bogus/notification.rb +0 -11
- data/lib/active_merchant/billing/integrations/bogus/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/bogus.rb +0 -23
- data/lib/active_merchant/billing/integrations/chronopay/helper.rb +0 -120
- data/lib/active_merchant/billing/integrations/chronopay/notification.rb +0 -158
- data/lib/active_merchant/billing/integrations/chronopay/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/chronopay.rb +0 -23
- data/lib/active_merchant/billing/integrations/citrus/helper.rb +0 -40
- data/lib/active_merchant/billing/integrations/citrus/notification.rb +0 -133
- data/lib/active_merchant/billing/integrations/citrus/return.rb +0 -40
- data/lib/active_merchant/billing/integrations/citrus.rb +0 -51
- data/lib/active_merchant/billing/integrations/direc_pay/helper.rb +0 -200
- data/lib/active_merchant/billing/integrations/direc_pay/notification.rb +0 -76
- data/lib/active_merchant/billing/integrations/direc_pay/return.rb +0 -32
- data/lib/active_merchant/billing/integrations/direc_pay/status.rb +0 -37
- data/lib/active_merchant/billing/integrations/direc_pay.rb +0 -41
- data/lib/active_merchant/billing/integrations/directebanking/helper.rb +0 -90
- data/lib/active_merchant/billing/integrations/directebanking/notification.rb +0 -120
- data/lib/active_merchant/billing/integrations/directebanking/return.rb +0 -11
- data/lib/active_merchant/billing/integrations/directebanking.rb +0 -47
- data/lib/active_merchant/billing/integrations/doku/helper.rb +0 -102
- data/lib/active_merchant/billing/integrations/doku/notification.rb +0 -69
- data/lib/active_merchant/billing/integrations/doku/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/doku.rb +0 -24
- data/lib/active_merchant/billing/integrations/dotpay/helper.rb +0 -77
- data/lib/active_merchant/billing/integrations/dotpay/notification.rb +0 -86
- data/lib/active_merchant/billing/integrations/dotpay/return.rb +0 -11
- data/lib/active_merchant/billing/integrations/dotpay.rb +0 -22
- data/lib/active_merchant/billing/integrations/dwolla/common.rb +0 -23
- data/lib/active_merchant/billing/integrations/dwolla/helper.rb +0 -43
- data/lib/active_merchant/billing/integrations/dwolla/notification.rb +0 -64
- data/lib/active_merchant/billing/integrations/dwolla/return.rb +0 -49
- data/lib/active_merchant/billing/integrations/dwolla.rb +0 -23
- data/lib/active_merchant/billing/integrations/e_payment_plans/helper.rb +0 -34
- data/lib/active_merchant/billing/integrations/e_payment_plans/notification.rb +0 -84
- data/lib/active_merchant/billing/integrations/e_payment_plans.rb +0 -48
- data/lib/active_merchant/billing/integrations/easy_pay/common.rb +0 -40
- data/lib/active_merchant/billing/integrations/easy_pay/helper.rb +0 -36
- data/lib/active_merchant/billing/integrations/easy_pay/notification.rb +0 -59
- data/lib/active_merchant/billing/integrations/easy_pay.rb +0 -30
- data/lib/active_merchant/billing/integrations/epay/helper.rb +0 -55
- data/lib/active_merchant/billing/integrations/epay/notification.rb +0 -110
- data/lib/active_merchant/billing/integrations/epay.rb +0 -21
- data/lib/active_merchant/billing/integrations/first_data/helper.rb +0 -61
- data/lib/active_merchant/billing/integrations/first_data/notification.rb +0 -56
- data/lib/active_merchant/billing/integrations/first_data.rb +0 -38
- data/lib/active_merchant/billing/integrations/gestpay/common.rb +0 -42
- data/lib/active_merchant/billing/integrations/gestpay/helper.rb +0 -70
- data/lib/active_merchant/billing/integrations/gestpay/notification.rb +0 -85
- data/lib/active_merchant/billing/integrations/gestpay/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/gestpay.rb +0 -25
- data/lib/active_merchant/billing/integrations/helper.rb +0 -117
- data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +0 -58
- data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +0 -59
- data/lib/active_merchant/billing/integrations/hi_trust/return.rb +0 -68
- data/lib/active_merchant/billing/integrations/hi_trust.rb +0 -27
- data/lib/active_merchant/billing/integrations/ipay88/helper.rb +0 -118
- data/lib/active_merchant/billing/integrations/ipay88/notification.rb +0 -103
- data/lib/active_merchant/billing/integrations/ipay88/return.rb +0 -29
- data/lib/active_merchant/billing/integrations/ipay88.rb +0 -23
- data/lib/active_merchant/billing/integrations/liqpay/helper.rb +0 -43
- data/lib/active_merchant/billing/integrations/liqpay/notification.rb +0 -89
- data/lib/active_merchant/billing/integrations/liqpay/return.rb +0 -83
- data/lib/active_merchant/billing/integrations/liqpay.rb +0 -30
- data/lib/active_merchant/billing/integrations/maksuturva/helper.rb +0 -119
- data/lib/active_merchant/billing/integrations/maksuturva/notification.rb +0 -48
- data/lib/active_merchant/billing/integrations/maksuturva.rb +0 -86
- data/lib/active_merchant/billing/integrations/moneybookers/helper.rb +0 -75
- data/lib/active_merchant/billing/integrations/moneybookers/notification.rb +0 -123
- data/lib/active_merchant/billing/integrations/moneybookers.rb +0 -26
- data/lib/active_merchant/billing/integrations/nochex/helper.rb +0 -68
- data/lib/active_merchant/billing/integrations/nochex/notification.rb +0 -94
- data/lib/active_merchant/billing/integrations/nochex/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/nochex.rb +0 -88
- data/lib/active_merchant/billing/integrations/notification.rb +0 -71
- data/lib/active_merchant/billing/integrations/paxum/common.rb +0 -24
- data/lib/active_merchant/billing/integrations/paxum/helper.rb +0 -42
- data/lib/active_merchant/billing/integrations/paxum/notification.rb +0 -33
- data/lib/active_merchant/billing/integrations/paxum.rb +0 -44
- data/lib/active_merchant/billing/integrations/pay_fast/common.rb +0 -42
- data/lib/active_merchant/billing/integrations/pay_fast/helper.rb +0 -50
- data/lib/active_merchant/billing/integrations/pay_fast/notification.rb +0 -134
- data/lib/active_merchant/billing/integrations/pay_fast/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/pay_fast.rb +0 -70
- data/lib/active_merchant/billing/integrations/paydollar/helper.rb +0 -41
- data/lib/active_merchant/billing/integrations/paydollar/notification.rb +0 -60
- data/lib/active_merchant/billing/integrations/paydollar/return.rb +0 -15
- data/lib/active_merchant/billing/integrations/paydollar.rb +0 -59
- data/lib/active_merchant/billing/integrations/payflow_link/helper.rb +0 -116
- data/lib/active_merchant/billing/integrations/payflow_link/notification.rb +0 -78
- data/lib/active_merchant/billing/integrations/payflow_link.rb +0 -21
- data/lib/active_merchant/billing/integrations/paypal/helper.rb +0 -119
- data/lib/active_merchant/billing/integrations/paypal/notification.rb +0 -227
- data/lib/active_merchant/billing/integrations/paypal/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/paypal.rb +0 -39
- data/lib/active_merchant/billing/integrations/paypal_payments_advanced/helper.rb +0 -15
- data/lib/active_merchant/billing/integrations/paypal_payments_advanced.rb +0 -20
- data/lib/active_merchant/billing/integrations/paysbuy/helper.rb +0 -15
- data/lib/active_merchant/billing/integrations/paysbuy/notification.rb +0 -39
- data/lib/active_merchant/billing/integrations/paysbuy.rb +0 -36
- data/lib/active_merchant/billing/integrations/payu_in/helper.rb +0 -76
- data/lib/active_merchant/billing/integrations/payu_in/notification.rb +0 -154
- data/lib/active_merchant/billing/integrations/payu_in/return.rb +0 -36
- data/lib/active_merchant/billing/integrations/payu_in.rb +0 -36
- data/lib/active_merchant/billing/integrations/payu_in_paisa/helper.rb +0 -19
- data/lib/active_merchant/billing/integrations/payu_in_paisa/notification.rb +0 -13
- data/lib/active_merchant/billing/integrations/payu_in_paisa/return.rb +0 -16
- data/lib/active_merchant/billing/integrations/payu_in_paisa.rb +0 -30
- data/lib/active_merchant/billing/integrations/platron/helper.rb +0 -32
- data/lib/active_merchant/billing/integrations/platron/notification.rb +0 -113
- data/lib/active_merchant/billing/integrations/platron.rb +0 -28
- data/lib/active_merchant/billing/integrations/pxpay/helper.rb +0 -112
- data/lib/active_merchant/billing/integrations/pxpay/notification.rb +0 -157
- data/lib/active_merchant/billing/integrations/pxpay/return.rb +0 -25
- data/lib/active_merchant/billing/integrations/pxpay.rb +0 -31
- data/lib/active_merchant/billing/integrations/quickpay/helper.rb +0 -96
- data/lib/active_merchant/billing/integrations/quickpay/notification.rb +0 -137
- data/lib/active_merchant/billing/integrations/quickpay.rb +0 -21
- data/lib/active_merchant/billing/integrations/rbkmoney/helper.rb +0 -23
- data/lib/active_merchant/billing/integrations/rbkmoney/notification.rb +0 -91
- data/lib/active_merchant/billing/integrations/rbkmoney.rb +0 -17
- data/lib/active_merchant/billing/integrations/return.rb +0 -42
- data/lib/active_merchant/billing/integrations/robokassa/common.rb +0 -19
- data/lib/active_merchant/billing/integrations/robokassa/helper.rb +0 -50
- data/lib/active_merchant/billing/integrations/robokassa/notification.rb +0 -55
- data/lib/active_merchant/billing/integrations/robokassa/return.rb +0 -17
- data/lib/active_merchant/billing/integrations/robokassa.rb +0 -49
- data/lib/active_merchant/billing/integrations/sage_pay_form/encryption.rb +0 -33
- data/lib/active_merchant/billing/integrations/sage_pay_form/helper.rb +0 -136
- data/lib/active_merchant/billing/integrations/sage_pay_form/notification.rb +0 -210
- data/lib/active_merchant/billing/integrations/sage_pay_form/return.rb +0 -31
- data/lib/active_merchant/billing/integrations/sage_pay_form.rb +0 -37
- data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +0 -107
- data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +0 -171
- data/lib/active_merchant/billing/integrations/two_checkout/return.rb +0 -58
- data/lib/active_merchant/billing/integrations/two_checkout.rb +0 -44
- data/lib/active_merchant/billing/integrations/valitor/helper.rb +0 -86
- data/lib/active_merchant/billing/integrations/valitor/notification.rb +0 -13
- data/lib/active_merchant/billing/integrations/valitor/response_fields.rb +0 -97
- data/lib/active_merchant/billing/integrations/valitor/return.rb +0 -13
- data/lib/active_merchant/billing/integrations/valitor.rb +0 -33
- data/lib/active_merchant/billing/integrations/verkkomaksut/helper.rb +0 -88
- data/lib/active_merchant/billing/integrations/verkkomaksut/notification.rb +0 -59
- data/lib/active_merchant/billing/integrations/verkkomaksut.rb +0 -20
- data/lib/active_merchant/billing/integrations/web_pay/common.rb +0 -50
- data/lib/active_merchant/billing/integrations/web_pay/helper.rb +0 -68
- data/lib/active_merchant/billing/integrations/web_pay/notification.rb +0 -51
- data/lib/active_merchant/billing/integrations/web_pay.rb +0 -45
- data/lib/active_merchant/billing/integrations/webmoney/common.rb +0 -17
- data/lib/active_merchant/billing/integrations/webmoney/helper.rb +0 -40
- data/lib/active_merchant/billing/integrations/webmoney/notification.rb +0 -47
- data/lib/active_merchant/billing/integrations/webmoney.rb +0 -43
- data/lib/active_merchant/billing/integrations/wirecard_checkout_page/common.rb +0 -104
- data/lib/active_merchant/billing/integrations/wirecard_checkout_page/helper.rb +0 -145
- data/lib/active_merchant/billing/integrations/wirecard_checkout_page/notification.rb +0 -101
- data/lib/active_merchant/billing/integrations/wirecard_checkout_page/return.rb +0 -35
- data/lib/active_merchant/billing/integrations/wirecard_checkout_page.rb +0 -39
- data/lib/active_merchant/billing/integrations/world_pay/helper.rb +0 -101
- data/lib/active_merchant/billing/integrations/world_pay/notification.rb +0 -160
- data/lib/active_merchant/billing/integrations/world_pay.rb +0 -34
- data/lib/active_merchant/billing/integrations.rb +0 -17
- data.tar.gz.sig +0 -0
- 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,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
|