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,11 +1,14 @@
|
|
|
1
1
|
module ActiveMerchant #:nodoc:
|
|
2
2
|
module Billing #:nodoc:
|
|
3
3
|
class JetpayGateway < Gateway
|
|
4
|
+
class_attribute :live_us_url, :live_ca_url
|
|
5
|
+
|
|
4
6
|
self.test_url = 'https://test1.jetpay.com/jetpay'
|
|
5
|
-
self.
|
|
7
|
+
self.live_us_url = 'https://gateway17.jetpay.com/jetpay'
|
|
8
|
+
self.live_ca_url = 'https://gateway17.jetpay.com/canada-bb'
|
|
6
9
|
|
|
7
10
|
# The countries the gateway supports merchants from as 2 digit ISO country codes
|
|
8
|
-
self.supported_countries = ['US']
|
|
11
|
+
self.supported_countries = ['US', 'CA']
|
|
9
12
|
|
|
10
13
|
# The card types supported by the payment gateway
|
|
11
14
|
self.supported_cardtypes = [:visa, :master, :american_express, :discover]
|
|
@@ -20,46 +23,132 @@ module ActiveMerchant #:nodoc:
|
|
|
20
23
|
self.money_format = :cents
|
|
21
24
|
|
|
22
25
|
ACTION_CODE_MESSAGES = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
26
|
+
'000' => 'Approved.',
|
|
27
|
+
'001' => 'Refer to card issuer.',
|
|
28
|
+
'002' => 'Refer to card issuer, special condition.',
|
|
29
|
+
'003' => 'Invalid merchant or service provider.',
|
|
30
|
+
'004' => 'Pick up card.',
|
|
31
|
+
'005' => 'Do not honor.',
|
|
32
|
+
'006' => 'Error.',
|
|
33
|
+
'007' => 'Pick up card, special condition.',
|
|
34
|
+
'008' => 'Honor with ID (Show ID).',
|
|
35
|
+
'010' => 'Partial approval.',
|
|
36
|
+
'011' => 'VIP approval.',
|
|
37
|
+
'012' => 'Invalid transaction.',
|
|
38
|
+
'013' => 'Invalid amount or exceeds maximum for card program.',
|
|
39
|
+
'014' => 'Invalid account number (no such number).',
|
|
40
|
+
'015' => 'No such issuer.',
|
|
41
|
+
'019' => 'Re-enter Transaction.',
|
|
42
|
+
'021' => 'No action taken (unable to back out prior transaction).',
|
|
43
|
+
'025' => 'Transaction Not Found.',
|
|
44
|
+
'027' => 'File update field edit error.',
|
|
45
|
+
'028' => 'File is temporarily unavailable.',
|
|
46
|
+
'030' => 'Format error.',
|
|
47
|
+
'039' => 'No credit account.',
|
|
48
|
+
'041' => 'Pick up card (lost card).',
|
|
49
|
+
'043' => 'Pick up card (stolen card).',
|
|
50
|
+
'051' => 'Insufficient funds.',
|
|
51
|
+
'052' => 'No checking account.',
|
|
52
|
+
'053' => 'No savings account.',
|
|
53
|
+
'054' => 'Expired Card.',
|
|
54
|
+
'055' => 'Incorrect PIN.',
|
|
55
|
+
'057' => 'Transaction not permitted to cardholder.',
|
|
56
|
+
'058' => 'Transaction not allowed at terminal.',
|
|
57
|
+
'061' => 'Exceeds withdrawal limit.',
|
|
58
|
+
'062' => 'Restricted card (eg, Country Exclusion).',
|
|
59
|
+
'063' => 'Security violation.',
|
|
60
|
+
'065' => 'Activity count limit exceeded.',
|
|
61
|
+
'068' => 'Response late.',
|
|
62
|
+
'070' => 'Contact card issuer.',
|
|
63
|
+
'071' => 'PIN not changed.',
|
|
64
|
+
'075' => 'Allowable number of PIN-entry tries exceeded.',
|
|
65
|
+
'076' => 'Unable to locate previous message (no matching retrieval reference number).',
|
|
66
|
+
'077' => 'Repeat or reversal data are inconsistent with original message.',
|
|
67
|
+
'078' => 'Blocked (first use), or non-existent account.',
|
|
68
|
+
'079' => 'Key exchange validation failed.',
|
|
69
|
+
'080' => 'Credit issuer unavailable or invalid date.',
|
|
70
|
+
'081' => 'PIN cryptographic error found.',
|
|
71
|
+
'082' => 'Negative online CVV results.',
|
|
72
|
+
'084' => 'Invalid auth life cycle.',
|
|
73
|
+
'085' => 'No reason to decline - CVV or AVS approved.',
|
|
74
|
+
'086' => 'Cannot verify PIN.',
|
|
75
|
+
'087' => 'Cashback not allowed.',
|
|
76
|
+
'089' => 'Issuer Down.',
|
|
77
|
+
'091' => 'Issuer Down.',
|
|
78
|
+
'092' => 'Unable to route transaction.',
|
|
79
|
+
'093' => 'Transaction cannot be completed - violation of law.',
|
|
80
|
+
'094' => 'Duplicate transmission.',
|
|
81
|
+
'096' => 'System error.',
|
|
82
|
+
'100' => 'Deny.',
|
|
83
|
+
'101' => 'Expired Card.',
|
|
84
|
+
'103' => 'Deny - Invalid manual Entry 4DBC.',
|
|
85
|
+
'104' => 'Deny - New card issued.',
|
|
86
|
+
'105' => 'Deny - Account Cancelled.',
|
|
87
|
+
'106' => 'Exceeded PIN Attempts.',
|
|
88
|
+
'107' => 'Please Call Issuer.',
|
|
89
|
+
'109' => 'Invalid merchant.',
|
|
90
|
+
'110' => 'Invalid amount.',
|
|
91
|
+
'111' => 'Invalid account.',
|
|
92
|
+
'115' => 'Service not permitted.',
|
|
93
|
+
'122' => 'Invalid card (CID) security code.',
|
|
94
|
+
'125' => 'Invalid effective date.',
|
|
95
|
+
'181' => 'Format error.',
|
|
96
|
+
'182' => 'Please wait.',
|
|
97
|
+
'183' => 'Invalid currency code.',
|
|
98
|
+
'187' => 'Deny - new card issued.',
|
|
99
|
+
'188' => 'Deny - Expiration date required.',
|
|
100
|
+
'189' => 'Deny - Cancelled or Closed Merchant/SE.',
|
|
101
|
+
'200' => 'Deny - Pick up card.',
|
|
102
|
+
'400' => 'Reversal accepted.',
|
|
103
|
+
'601' => 'Reject - EMV Chip Declined Transaction.',
|
|
104
|
+
'602' => 'Reject - Suspected Fraud.',
|
|
105
|
+
'603' => 'Reject - Communications Error.',
|
|
106
|
+
'604' => 'Reject - Insufficient Approval.',
|
|
107
|
+
'750' => 'Velocity Check Fail.',
|
|
108
|
+
'899' => 'Misc Decline.',
|
|
109
|
+
'900' => 'Invalid Message Type.',
|
|
110
|
+
'901' => 'Invalid Merchant ID.',
|
|
111
|
+
'903' => 'Debit not supported.',
|
|
112
|
+
'904' => 'Private label not supported.',
|
|
113
|
+
'905' => 'Invalid card type.',
|
|
114
|
+
'906' => 'Unit not active.',
|
|
115
|
+
'908' => 'Manual card entry invalid.',
|
|
116
|
+
'909' => 'Invalid track information.',
|
|
117
|
+
'911' => 'Master merchant not found.',
|
|
118
|
+
'912' => 'Invalid card format.',
|
|
119
|
+
'913' => 'Invalid card type.',
|
|
120
|
+
'914' => 'Invalid card length.',
|
|
121
|
+
'917' => 'Expired card.',
|
|
122
|
+
'919' => 'Invalid entry type.',
|
|
123
|
+
'920' => 'Invalid amount.',
|
|
124
|
+
'921' => 'Invalid messge format.',
|
|
125
|
+
'923' => 'Invalid ABA.',
|
|
126
|
+
'924' => 'Invalid DDA.',
|
|
127
|
+
'925' => 'Invalid TID.',
|
|
128
|
+
'926' => 'Invalid Password.',
|
|
129
|
+
'930' => 'Invalid zipcode.',
|
|
130
|
+
'931' => 'Invalid Address.',
|
|
131
|
+
'932' => 'Invalid ZIP and Address.',
|
|
132
|
+
'933' => 'Invalid CVV2.',
|
|
133
|
+
'934' => 'Program Not Allowed.',
|
|
134
|
+
'940' => 'Record Not Found.',
|
|
135
|
+
'941' => 'Merchant ID error.',
|
|
136
|
+
'942' => 'Refund Not Allowed.',
|
|
137
|
+
'943' => 'Refund denied.',
|
|
138
|
+
'955' => 'Invalid PIN block.',
|
|
139
|
+
'956' => 'Invalid KSN.',
|
|
140
|
+
'958' => 'Bad Status.',
|
|
141
|
+
'959' => 'Seek Record limit exceeded.',
|
|
142
|
+
'962' => 'Invalid PIN key (Unknown KSN).',
|
|
143
|
+
'981' => 'Invalid AVS.',
|
|
144
|
+
'987' => 'Issuer Unavailable.',
|
|
145
|
+
'988' => 'System error SD.',
|
|
146
|
+
'989' => 'Database Error.',
|
|
147
|
+
'992' => 'Transaction Timeout.',
|
|
148
|
+
'996' => 'Bad Terminal ID.',
|
|
149
|
+
'997' => 'Message rejected by association.',
|
|
150
|
+
'999' => 'Communication failure',
|
|
151
|
+
nil => 'No response returned (missing credentials?).'
|
|
63
152
|
}
|
|
64
153
|
|
|
65
154
|
def initialize(options = {})
|
|
@@ -76,39 +165,57 @@ module ActiveMerchant #:nodoc:
|
|
|
76
165
|
end
|
|
77
166
|
|
|
78
167
|
def capture(money, reference, options = {})
|
|
79
|
-
|
|
168
|
+
split_authorization = reference.split(';')
|
|
169
|
+
transaction_id = split_authorization[0]
|
|
170
|
+
token = split_authorization[3]
|
|
171
|
+
commit(money, build_capture_request(transaction_id, money, options), token)
|
|
80
172
|
end
|
|
81
173
|
|
|
82
174
|
def void(reference, options = {})
|
|
83
|
-
transaction_id, approval, amount = reference.split(
|
|
84
|
-
commit(amount.to_i, build_void_request(amount.to_i, transaction_id, approval))
|
|
175
|
+
transaction_id, approval, amount, token = reference.split(';')
|
|
176
|
+
commit(amount.to_i, build_void_request(amount.to_i, transaction_id, approval, token, options), token)
|
|
85
177
|
end
|
|
86
178
|
|
|
87
179
|
def credit(money, transaction_id_or_card, options = {})
|
|
88
180
|
if transaction_id_or_card.is_a?(String)
|
|
89
|
-
deprecated CREDIT_DEPRECATION_MESSAGE
|
|
181
|
+
ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
|
|
90
182
|
refund(money, transaction_id_or_card, options)
|
|
91
183
|
else
|
|
92
|
-
commit(money, build_credit_request('CREDIT', money, nil, transaction_id_or_card))
|
|
184
|
+
commit(money, build_credit_request('CREDIT', money, nil, transaction_id_or_card, nil, options))
|
|
93
185
|
end
|
|
94
186
|
end
|
|
95
187
|
|
|
96
188
|
def refund(money, reference, options = {})
|
|
97
|
-
|
|
189
|
+
split_authorization = reference.split(';')
|
|
190
|
+
transaction_id = split_authorization[0]
|
|
191
|
+
token = split_authorization[3]
|
|
98
192
|
credit_card = options[:credit_card]
|
|
99
|
-
commit(money, build_credit_request('CREDIT', money, transaction_id, credit_card))
|
|
193
|
+
commit(money, build_credit_request('CREDIT', money, transaction_id, credit_card, token, options))
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def supports_scrubbing
|
|
197
|
+
true
|
|
100
198
|
end
|
|
101
199
|
|
|
200
|
+
def scrub(transcript)
|
|
201
|
+
transcript.
|
|
202
|
+
gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]').
|
|
203
|
+
gsub(%r((>)\d+(</CardNum>)), '\1[FILTERED]\2').
|
|
204
|
+
gsub(%r((<CVV2>)\d+(</CVV2>)), '\1[FILTERED]\2')
|
|
205
|
+
end
|
|
102
206
|
|
|
103
207
|
private
|
|
104
208
|
|
|
105
|
-
def build_xml_request(transaction_type, transaction_id = nil, &block)
|
|
209
|
+
def build_xml_request(transaction_type, options = {}, transaction_id = nil, &block)
|
|
106
210
|
xml = Builder::XmlMarkup.new
|
|
107
211
|
xml.tag! 'JetPay' do
|
|
108
212
|
# The basic values needed for any request
|
|
109
213
|
xml.tag! 'TerminalID', @options[:login]
|
|
110
214
|
xml.tag! 'TransactionType', transaction_type
|
|
111
215
|
xml.tag! 'TransactionID', transaction_id.nil? ? generate_unique_id.slice(0, 18) : transaction_id
|
|
216
|
+
if options && options[:origin]
|
|
217
|
+
xml.tag! 'Origin', options[:origin]
|
|
218
|
+
end
|
|
112
219
|
|
|
113
220
|
if block_given?
|
|
114
221
|
yield xml
|
|
@@ -119,11 +226,12 @@ module ActiveMerchant #:nodoc:
|
|
|
119
226
|
end
|
|
120
227
|
|
|
121
228
|
def build_sale_request(money, credit_card, options)
|
|
122
|
-
build_xml_request('SALE') do |xml|
|
|
229
|
+
build_xml_request('SALE', options) do |xml|
|
|
123
230
|
add_credit_card(xml, credit_card)
|
|
124
231
|
add_addresses(xml, options)
|
|
125
232
|
add_customer_data(xml, options)
|
|
126
233
|
add_invoice_data(xml, options)
|
|
234
|
+
add_user_defined_fields(xml, options)
|
|
127
235
|
xml.tag! 'TotalAmount', amount(money)
|
|
128
236
|
|
|
129
237
|
xml.target!
|
|
@@ -136,49 +244,63 @@ module ActiveMerchant #:nodoc:
|
|
|
136
244
|
add_addresses(xml, options)
|
|
137
245
|
add_customer_data(xml, options)
|
|
138
246
|
add_invoice_data(xml, options)
|
|
247
|
+
add_user_defined_fields(xml, options)
|
|
139
248
|
xml.tag! 'TotalAmount', amount(money)
|
|
140
249
|
|
|
141
250
|
xml.target!
|
|
142
251
|
end
|
|
143
252
|
end
|
|
144
253
|
|
|
145
|
-
def build_capture_request(
|
|
146
|
-
build_xml_request(
|
|
254
|
+
def build_capture_request(transaction_id, money, options)
|
|
255
|
+
build_xml_request('CAPT', options, transaction_id) do |xml|
|
|
256
|
+
xml.tag! 'TotalAmount', amount(money)
|
|
257
|
+
add_user_defined_fields(xml, options)
|
|
258
|
+
end
|
|
147
259
|
end
|
|
148
260
|
|
|
149
|
-
def build_void_request(money, transaction_id, approval)
|
|
150
|
-
build_xml_request('VOID', transaction_id) do |xml|
|
|
261
|
+
def build_void_request(money, transaction_id, approval, token, options)
|
|
262
|
+
build_xml_request('VOID', options, transaction_id) do |xml|
|
|
151
263
|
xml.tag! 'Approval', approval
|
|
152
264
|
xml.tag! 'TotalAmount', amount(money)
|
|
153
|
-
|
|
265
|
+
xml.tag! 'Token', token if token
|
|
154
266
|
xml.target!
|
|
155
267
|
end
|
|
156
268
|
end
|
|
157
269
|
|
|
158
270
|
# `transaction_id` may be nil for unlinked credit transactions.
|
|
159
|
-
def build_credit_request(transaction_type, money, transaction_id, card)
|
|
160
|
-
build_xml_request(transaction_type, transaction_id) do |xml|
|
|
271
|
+
def build_credit_request(transaction_type, money, transaction_id, card, token, options)
|
|
272
|
+
build_xml_request(transaction_type, options, transaction_id) do |xml|
|
|
161
273
|
add_credit_card(xml, card) if card
|
|
274
|
+
add_invoice_data(xml, options)
|
|
275
|
+
add_addresses(xml, options)
|
|
276
|
+
add_customer_data(xml, options)
|
|
277
|
+
add_user_defined_fields(xml, options)
|
|
162
278
|
xml.tag! 'TotalAmount', amount(money)
|
|
279
|
+
xml.tag! 'Token', token if token
|
|
163
280
|
|
|
164
281
|
xml.target!
|
|
165
282
|
end
|
|
166
283
|
end
|
|
167
284
|
|
|
168
|
-
def commit(money, request)
|
|
169
|
-
response = parse(ssl_post(
|
|
285
|
+
def commit(money, request, token = nil)
|
|
286
|
+
response = parse(ssl_post(url, request))
|
|
170
287
|
|
|
171
288
|
success = success?(response)
|
|
172
289
|
Response.new(success,
|
|
173
290
|
success ? 'APPROVED' : message_from(response),
|
|
174
291
|
response,
|
|
175
292
|
:test => test?,
|
|
176
|
-
:authorization => authorization_from(response, money),
|
|
293
|
+
:authorization => authorization_from(response, money, token),
|
|
177
294
|
:avs_result => { :code => response[:avs] },
|
|
178
295
|
:cvv_result => response[:cvv2]
|
|
179
296
|
)
|
|
180
297
|
end
|
|
181
298
|
|
|
299
|
+
def url
|
|
300
|
+
live_url = @options[:region] == 'CA' ? live_ca_url : live_us_url
|
|
301
|
+
test? ? test_url : live_url
|
|
302
|
+
end
|
|
303
|
+
|
|
182
304
|
def parse(body)
|
|
183
305
|
return {} if body.blank?
|
|
184
306
|
|
|
@@ -193,7 +315,7 @@ module ActiveMerchant #:nodoc:
|
|
|
193
315
|
|
|
194
316
|
def parse_element(response, node)
|
|
195
317
|
if node.has_elements?
|
|
196
|
-
node.elements.each{|element| parse_element(response, element) }
|
|
318
|
+
node.elements.each { |element| parse_element(response, element) }
|
|
197
319
|
else
|
|
198
320
|
response[node.name.underscore.to_sym] = node.text
|
|
199
321
|
end
|
|
@@ -204,25 +326,25 @@ module ActiveMerchant #:nodoc:
|
|
|
204
326
|
end
|
|
205
327
|
|
|
206
328
|
def success?(response)
|
|
207
|
-
response[:action_code] ==
|
|
329
|
+
response[:action_code] == '000'
|
|
208
330
|
end
|
|
209
331
|
|
|
210
332
|
def message_from(response)
|
|
211
333
|
ACTION_CODE_MESSAGES[response[:action_code]]
|
|
212
334
|
end
|
|
213
335
|
|
|
214
|
-
def authorization_from(response, money)
|
|
336
|
+
def authorization_from(response, money, previous_token)
|
|
215
337
|
original_amount = amount(money) if money
|
|
216
|
-
[ response[:transaction_id], response[:approval], original_amount ].join(
|
|
338
|
+
[ response[:transaction_id], response[:approval], original_amount, (response[:token] || previous_token)].join(';')
|
|
217
339
|
end
|
|
218
340
|
|
|
219
341
|
def add_credit_card(xml, credit_card)
|
|
220
|
-
xml.tag! 'CardNum', credit_card.number
|
|
342
|
+
xml.tag! 'CardNum', credit_card.number, 'Tokenize' => true
|
|
221
343
|
xml.tag! 'CardExpMonth', format_exp(credit_card.month)
|
|
222
344
|
xml.tag! 'CardExpYear', format_exp(credit_card.year)
|
|
223
345
|
|
|
224
346
|
if credit_card.first_name || credit_card.last_name
|
|
225
|
-
xml.tag! 'CardName', [credit_card.first_name,credit_card.last_name].compact.join(' ')
|
|
347
|
+
xml.tag! 'CardName', [credit_card.first_name, credit_card.last_name].compact.join(' ')
|
|
226
348
|
end
|
|
227
349
|
|
|
228
350
|
unless credit_card.verification_value.nil? || (credit_card.verification_value.length == 0)
|
|
@@ -232,7 +354,7 @@ module ActiveMerchant #:nodoc:
|
|
|
232
354
|
|
|
233
355
|
def add_addresses(xml, options)
|
|
234
356
|
if billing_address = options[:billing_address] || options[:address]
|
|
235
|
-
xml.tag! 'BillingAddress', [billing_address[:address1], billing_address[:address2]].compact.join(
|
|
357
|
+
xml.tag! 'BillingAddress', [billing_address[:address1], billing_address[:address2]].compact.join(' ')
|
|
236
358
|
xml.tag! 'BillingCity', billing_address[:city]
|
|
237
359
|
xml.tag! 'BillingStateProv', billing_address[:state]
|
|
238
360
|
xml.tag! 'BillingPostalCode', billing_address[:zip]
|
|
@@ -245,7 +367,7 @@ module ActiveMerchant #:nodoc:
|
|
|
245
367
|
xml.tag! 'ShippingName', shipping_address[:name]
|
|
246
368
|
|
|
247
369
|
xml.tag! 'ShippingAddr' do
|
|
248
|
-
xml.tag! 'Address', [shipping_address[:address1], shipping_address[:address2]].compact.join(
|
|
370
|
+
xml.tag! 'Address', [shipping_address[:address1], shipping_address[:address2]].compact.join(' ')
|
|
249
371
|
xml.tag! 'City', shipping_address[:city]
|
|
250
372
|
xml.tag! 'StateProv', shipping_address[:state]
|
|
251
373
|
xml.tag! 'PostalCode', shipping_address[:zip]
|
|
@@ -265,11 +387,16 @@ module ActiveMerchant #:nodoc:
|
|
|
265
387
|
xml.tag! 'TaxAmount', amount(options[:tax]) if options[:tax]
|
|
266
388
|
end
|
|
267
389
|
|
|
390
|
+
def add_user_defined_fields(xml, options)
|
|
391
|
+
xml.tag! 'UDField1', options[:ud_field_1] if options[:ud_field_1]
|
|
392
|
+
xml.tag! 'UDField2', options[:ud_field_2] if options[:ud_field_2]
|
|
393
|
+
xml.tag! 'UDField3', options[:ud_field_3] if options[:ud_field_3]
|
|
394
|
+
end
|
|
395
|
+
|
|
268
396
|
def lookup_country_code(code)
|
|
269
397
|
country = Country.find(code) rescue nil
|
|
270
|
-
country
|
|
398
|
+
country&.code(:alpha3)
|
|
271
399
|
end
|
|
272
400
|
end
|
|
273
401
|
end
|
|
274
402
|
end
|
|
275
|
-
|