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,70 +1,67 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
3
|
-
require
|
|
1
|
+
require 'active_merchant/billing/gateways/payflow/payflow_common_api'
|
|
2
|
+
require 'active_merchant/billing/gateways/payflow/payflow_express_response'
|
|
3
|
+
require 'active_merchant/billing/gateways/paypal_express_common'
|
|
4
4
|
|
|
5
5
|
module ActiveMerchant #:nodoc:
|
|
6
6
|
module Billing #:nodoc:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
# [<tt>:header_background_color</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
61
|
-
# [<tt>:header_border_color</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
62
|
-
|
|
7
|
+
# ==General Parameters
|
|
8
|
+
# The following parameters are supported for #setup_authorization, #setup_purchase, #authorize and #purchase transactions. I've read
|
|
9
|
+
# in the docs that they recommend you pass the exact same parameters to both setup and authorize/purchase.
|
|
10
|
+
#
|
|
11
|
+
# This information was gleaned from a mix of:
|
|
12
|
+
# * {PayFlow documentation}[https://developer.paypal.com/docs/classic/payflow/integration-guide/]
|
|
13
|
+
# * previous ActiveMerchant code
|
|
14
|
+
# * trial & error
|
|
15
|
+
#
|
|
16
|
+
# The following parameters are currently supported.
|
|
17
|
+
# [<tt>:ip</tt>] (opt) Customer IP Address
|
|
18
|
+
# [<tt>:order_id</tt>] (opt) An order or invoice number. This will be passed through to the Payflow backend at manager.paypal.com, and show up as "Supplier Reference #"
|
|
19
|
+
# [<tt>:description</tt>] (opt) Order description, shown to buyer (after redirected to PayPal). If Order Line Items are used (see below), then the description is suppressed. This will not be passed through to the Payflow backend.
|
|
20
|
+
# [<tt>:billing_address</tt>] (opt) See ActiveMerchant::Billing::Gateway for details
|
|
21
|
+
# [<tt>:shipping_address</tt>] (opt) See ActiveMerchant::Billing::Gateway for details
|
|
22
|
+
# [<tt>:currency</tt>] (req) Currency of transaction, will be set to USD by default for PayFlow Express if not specified
|
|
23
|
+
# [<tt>:email</tt>] (opt) Email of buyer; used to pre-fill PayPal login screen
|
|
24
|
+
# [<tt>:payer_id</tt>] (opt) Unique PayPal buyer account identification number, as returned by details_for request
|
|
25
|
+
# [<tt>:token</tt>] (req for #authorize & #purchase) Token returned by setup transaction
|
|
26
|
+
# [<tt>:no_shipping</tt>] (opt) Boolean for whether or not to display shipping address to buyer
|
|
27
|
+
# [<tt>:address_override</tt>] (opt) Boolean. If true, display shipping address passed by parameters, rather than shipping address on file with PayPal
|
|
28
|
+
# [<tt>:allow_note</tt>] (opt) Boolean for permitting buyer to add note during checkout. Note contents can be retrieved with details_for transaction
|
|
29
|
+
# [<tt>:return_url</tt>] (req) URL to which the buyer’s browser is returned after choosing to pay.
|
|
30
|
+
# [<tt>:cancel_return_url</tt>] (req) URL to which the buyer is returned if the buyer cancels the order.
|
|
31
|
+
# [<tt>:notify_url</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
32
|
+
# [<tt>:comment</tt>] (opt) Comment field which will be reported to Payflow backend (at manager.paypal.com) as Comment1
|
|
33
|
+
# [<tt>:comment2</tt>] (opt) Comment field which will be reported to Payflow backend (at manager.paypal.com) as Comment2
|
|
34
|
+
# [<tt>:discount</tt>] (opt) Total discounts in cents
|
|
35
|
+
#
|
|
36
|
+
# ==Line Items
|
|
37
|
+
# Support for order line items is available, but has to be enabled on the PayFlow backend. This is what I was told by Todd Sieber at Technical Support:
|
|
38
|
+
#
|
|
39
|
+
# <em>You will need to call Payflow Support at 1-888-883-9770, choose option #2. Request that they update your account in "Pandora" under Product Settings >> PayPal Mark and update the Features Bitmap to 1111111111111112. This is 15 ones and a two.</em>
|
|
40
|
+
#
|
|
41
|
+
# See here[https://www.x.com/message/206214#206214] for the forum discussion (requires login to {x.com}[https://x.com]
|
|
42
|
+
#
|
|
43
|
+
# [<tt>:items</tt>] (opt) Array of Order Line Items hashes. These are shown to the buyer after redirect to PayPal.
|
|
44
|
+
#
|
|
45
|
+
#
|
|
46
|
+
#
|
|
47
|
+
# The following keys are supported for line items:
|
|
48
|
+
# [<tt>:name</tt>] Name of line item
|
|
49
|
+
# [<tt>:description</tt>] Description of line item
|
|
50
|
+
# [<tt>:amount</tt>] Line Item Amount in Cents (as Integer)
|
|
51
|
+
# [<tt>:quantity</tt>] Line Item Quantity (default to 1 if left blank)
|
|
52
|
+
#
|
|
53
|
+
# ====Customization of Payment Page
|
|
54
|
+
# [<tt>:page_style</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
55
|
+
# [<tt>:header_image</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
56
|
+
# [<tt>:background_color</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
57
|
+
# ====Additional options for old Checkout Experience, being phased out in 2010 and 2011
|
|
58
|
+
# [<tt>:header_background_color</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
59
|
+
# [<tt>:header_border_color</tt>] (opt) Your URL for receiving Instant Payment Notification (IPN) about this transaction.
|
|
63
60
|
|
|
64
61
|
class PayflowExpressGateway < Gateway
|
|
65
62
|
include PayflowCommonAPI
|
|
66
63
|
include PaypalExpressCommon
|
|
67
|
-
|
|
64
|
+
|
|
68
65
|
self.test_redirect_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'
|
|
69
66
|
self.homepage_url = 'https://www.paypal.com/cgi-bin/webscr?cmd=xpt/merchant/ExpressCheckoutIntro-outside'
|
|
70
67
|
self.display_name = 'PayPal Express Checkout'
|
|
@@ -74,48 +71,49 @@ module ActiveMerchant #:nodoc:
|
|
|
74
71
|
request = build_sale_or_authorization_request('Authorization', money, options)
|
|
75
72
|
commit(request, options)
|
|
76
73
|
end
|
|
77
|
-
|
|
78
|
-
def purchase(money, options = {})
|
|
74
|
+
|
|
75
|
+
def purchase(money, options = {})
|
|
79
76
|
requires!(options, :token, :payer_id)
|
|
80
77
|
request = build_sale_or_authorization_request('Sale', money, options)
|
|
81
78
|
commit(request, options)
|
|
82
79
|
end
|
|
83
|
-
|
|
80
|
+
|
|
84
81
|
def refund(money, identification, options = {})
|
|
85
82
|
request = build_reference_request(:credit, money, identification, options)
|
|
86
83
|
commit(request, options)
|
|
87
|
-
end
|
|
84
|
+
end
|
|
88
85
|
|
|
89
86
|
def credit(money, identification, options = {})
|
|
90
|
-
deprecated CREDIT_DEPRECATION_MESSAGE
|
|
87
|
+
ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
|
|
91
88
|
refund(money, identification, options)
|
|
92
89
|
end
|
|
93
90
|
|
|
94
91
|
def setup_authorization(money, options = {})
|
|
95
92
|
requires!(options, :return_url, :cancel_return_url)
|
|
96
|
-
|
|
93
|
+
|
|
97
94
|
request = build_setup_express_sale_or_authorization_request('Authorization', money, options)
|
|
98
95
|
commit(request, options)
|
|
99
96
|
end
|
|
100
|
-
|
|
97
|
+
|
|
101
98
|
def setup_purchase(money, options = {})
|
|
102
99
|
requires!(options, :return_url, :cancel_return_url)
|
|
103
|
-
|
|
100
|
+
|
|
104
101
|
request = build_setup_express_sale_or_authorization_request('Sale', money, options)
|
|
105
102
|
commit(request, options)
|
|
106
103
|
end
|
|
107
|
-
|
|
104
|
+
|
|
108
105
|
def details_for(token)
|
|
109
106
|
request = build_get_express_details_request(token)
|
|
110
107
|
commit(request, options)
|
|
111
108
|
end
|
|
112
|
-
|
|
109
|
+
|
|
113
110
|
private
|
|
111
|
+
|
|
114
112
|
def build_get_express_details_request(token)
|
|
115
|
-
xml = Builder::XmlMarkup.new :indent => 2
|
|
113
|
+
xml = Builder::XmlMarkup.new :indent => 2
|
|
116
114
|
xml.tag! 'GetExpressCheckout' do
|
|
117
115
|
xml.tag! 'Authorization' do
|
|
118
|
-
xml.tag! 'PayData' do
|
|
116
|
+
xml.tag! 'PayData' do
|
|
119
117
|
xml.tag! 'Tender' do
|
|
120
118
|
xml.tag! 'PayPal' do
|
|
121
119
|
xml.tag! 'Token', token
|
|
@@ -136,8 +134,8 @@ module ActiveMerchant #:nodoc:
|
|
|
136
134
|
end
|
|
137
135
|
xml.target!
|
|
138
136
|
end
|
|
139
|
-
|
|
140
|
-
def build_sale_or_authorization_request(action, money, options)
|
|
137
|
+
|
|
138
|
+
def build_sale_or_authorization_request(action, money, options)
|
|
141
139
|
xml = Builder::XmlMarkup.new :indent => 2
|
|
142
140
|
xml.tag! 'DoExpressCheckout' do
|
|
143
141
|
xml.tag! action do
|
|
@@ -178,11 +176,10 @@ module ActiveMerchant #:nodoc:
|
|
|
178
176
|
end
|
|
179
177
|
if items.any?
|
|
180
178
|
xml.tag! 'ExtData', 'Name' => 'CURRENCY', 'Value' => options[:currency] || currency(money)
|
|
181
|
-
xml.tag! 'ExtData', 'Name' =>
|
|
179
|
+
xml.tag! 'ExtData', 'Name' => 'ITEMAMT', 'Value' => amount(options[:subtotal] || money)
|
|
182
180
|
end
|
|
183
181
|
xml.tag! 'DiscountAmt', amount(options[:discount]) if options[:discount]
|
|
184
182
|
xml.tag! 'TotalAmt', amount(money), 'Currency' => options[:currency] || currency(money)
|
|
185
|
-
|
|
186
183
|
end
|
|
187
184
|
|
|
188
185
|
xml.tag! 'Tender' do
|
|
@@ -192,7 +189,7 @@ module ActiveMerchant #:nodoc:
|
|
|
192
189
|
end
|
|
193
190
|
|
|
194
191
|
def add_paypal_details(xml, options)
|
|
195
|
-
|
|
192
|
+
xml.tag! 'PayPal' do
|
|
196
193
|
xml.tag! 'EMail', options[:email] unless options[:email].blank?
|
|
197
194
|
xml.tag! 'ReturnURL', options[:return_url] unless options[:return_url].blank?
|
|
198
195
|
xml.tag! 'CancelURL', options[:cancel_return_url] unless options[:cancel_return_url].blank?
|
|
@@ -201,8 +198,8 @@ module ActiveMerchant #:nodoc:
|
|
|
201
198
|
xml.tag! 'Token', options[:token] unless options[:token].blank?
|
|
202
199
|
xml.tag! 'NoShipping', options[:no_shipping] ? '1' : '0'
|
|
203
200
|
xml.tag! 'AddressOverride', options[:address_override] ? '1' : '0'
|
|
204
|
-
xml.tag! 'ButtonSource', application_id.to_s.slice(0,32) unless application_id.blank?
|
|
205
|
-
|
|
201
|
+
xml.tag! 'ButtonSource', application_id.to_s.slice(0, 32) unless application_id.blank?
|
|
202
|
+
|
|
206
203
|
# Customization of the payment page
|
|
207
204
|
xml.tag! 'PageStyle', options[:page_style] unless options[:page_style].blank?
|
|
208
205
|
xml.tag! 'HeaderImage', options[:header_image] unless options[:header_image].blank?
|
|
@@ -214,11 +211,10 @@ module ActiveMerchant #:nodoc:
|
|
|
214
211
|
xml.tag! 'ExtData', 'Name' => 'ALLOWNOTE', 'Value' => options[:allow_note]
|
|
215
212
|
end
|
|
216
213
|
end
|
|
217
|
-
|
|
214
|
+
|
|
218
215
|
def build_response(success, message, response, options = {})
|
|
219
216
|
PayflowExpressResponse.new(success, message, response, options)
|
|
220
217
|
end
|
|
221
218
|
end
|
|
222
219
|
end
|
|
223
220
|
end
|
|
224
|
-
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
require
|
|
1
|
+
require 'active_merchant/billing/gateways/payflow_express'
|
|
2
2
|
|
|
3
3
|
module ActiveMerchant #:nodoc:
|
|
4
4
|
module Billing #:nodoc:
|
|
5
5
|
class PayflowExpressUkGateway < PayflowExpressGateway
|
|
6
6
|
self.default_currency = 'GBP'
|
|
7
7
|
self.partner = 'PayPalUk'
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
self.supported_countries = ['GB']
|
|
10
10
|
self.homepage_url = 'https://www.paypal.com/uk/cgi-bin/webscr?cmd=_additional-payment-overview-outside'
|
|
11
11
|
self.display_name = 'PayPal Express Checkout (UK)'
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
|
-
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require 'active_merchant/billing/gateways/payflow'
|
|
2
|
+
require 'active_merchant/billing/gateways/payflow_express_uk'
|
|
3
3
|
|
|
4
4
|
module ActiveMerchant #:nodoc:
|
|
5
5
|
module Billing #:nodoc:
|
|
6
6
|
class PayflowUkGateway < PayflowGateway
|
|
7
7
|
self.default_currency = 'GBP'
|
|
8
8
|
self.partner = 'PayPalUk'
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
def express
|
|
11
11
|
@express ||= PayflowExpressUkGateway.new(@options)
|
|
12
12
|
end
|
|
13
|
-
|
|
14
|
-
self.supported_cardtypes = [:visa, :master, :american_express, :discover
|
|
13
|
+
|
|
14
|
+
self.supported_cardtypes = [:visa, :master, :american_express, :discover]
|
|
15
15
|
self.supported_countries = ['GB']
|
|
16
16
|
self.homepage_url = 'https://www.paypal.com/uk/webapps/mpp/pro'
|
|
17
17
|
self.display_name = 'PayPal Payments Pro (UK)'
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
|
-
|
|
@@ -2,7 +2,6 @@ require 'rexml/document'
|
|
|
2
2
|
|
|
3
3
|
module ActiveMerchant #:nodoc:
|
|
4
4
|
module Billing #:nodoc:
|
|
5
|
-
|
|
6
5
|
# In NZ DPS supports ANZ, Westpac, National Bank, ASB and BNZ.
|
|
7
6
|
# In Australia DPS supports ANZ, NAB, Westpac, CBA, St George and Bank of South Australia.
|
|
8
7
|
# The Maybank in Malaysia is supported and the Citibank for Singapore.
|
|
@@ -16,12 +15,13 @@ module ActiveMerchant #:nodoc:
|
|
|
16
15
|
# However, regular accounts with DPS only support VISA and Mastercard
|
|
17
16
|
self.supported_cardtypes = [ :visa, :master, :american_express, :diners_club, :jcb ]
|
|
18
17
|
|
|
19
|
-
self.supported_countries = %w[ AU
|
|
18
|
+
self.supported_countries = %w[ AU FJ GB HK IE MY NZ PG SG US ]
|
|
20
19
|
|
|
21
20
|
self.homepage_url = 'http://www.paymentexpress.com/'
|
|
22
21
|
self.display_name = 'PaymentExpress'
|
|
23
22
|
|
|
24
|
-
self.live_url =
|
|
23
|
+
self.live_url = 'https://sec.paymentexpress.com/pxpost.aspx'
|
|
24
|
+
self.test_url = 'https://uat.paymentexpress.com/pxpost.aspx'
|
|
25
25
|
|
|
26
26
|
APPROVED = '1'
|
|
27
27
|
|
|
@@ -82,7 +82,7 @@ module ActiveMerchant #:nodoc:
|
|
|
82
82
|
end
|
|
83
83
|
|
|
84
84
|
def credit(money, identification, options = {})
|
|
85
|
-
deprecated CREDIT_DEPRECATION_MESSAGE
|
|
85
|
+
ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
|
|
86
86
|
refund(money, identification, options)
|
|
87
87
|
end
|
|
88
88
|
|
|
@@ -122,6 +122,18 @@ module ActiveMerchant #:nodoc:
|
|
|
122
122
|
commit(:validate, request)
|
|
123
123
|
end
|
|
124
124
|
|
|
125
|
+
def supports_scrubbing
|
|
126
|
+
true
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def scrub(transcript)
|
|
130
|
+
transcript.
|
|
131
|
+
gsub(%r((<PostPassword>).+(</PostPassword>)), '\1[FILTERED]\2').
|
|
132
|
+
gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]\2').
|
|
133
|
+
gsub(%r((<CardNumber>)\d+(</CardNumber>)), '\1[FILTERED]\2').
|
|
134
|
+
gsub(%r((<Cvc2>)\d+(</Cvc2>)), '\1[FILTERED]\2')
|
|
135
|
+
end
|
|
136
|
+
|
|
125
137
|
private
|
|
126
138
|
|
|
127
139
|
def use_custom_payment_token?
|
|
@@ -157,73 +169,68 @@ module ActiveMerchant #:nodoc:
|
|
|
157
169
|
def build_token_request(credit_card, options)
|
|
158
170
|
result = new_transaction
|
|
159
171
|
add_credit_card(result, credit_card)
|
|
160
|
-
add_amount(result, 100, options) #need to make an auth request for $1
|
|
172
|
+
add_amount(result, 100, options) # need to make an auth request for $1
|
|
161
173
|
add_token_request(result, options)
|
|
162
174
|
add_optional_elements(result, options)
|
|
163
175
|
result
|
|
164
176
|
end
|
|
165
177
|
|
|
166
178
|
def add_credentials(xml)
|
|
167
|
-
xml.add_element(
|
|
168
|
-
xml.add_element(
|
|
179
|
+
xml.add_element('PostUsername').text = @options[:login]
|
|
180
|
+
xml.add_element('PostPassword').text = @options[:password]
|
|
169
181
|
end
|
|
170
182
|
|
|
171
183
|
def add_reference(xml, identification)
|
|
172
|
-
xml.add_element(
|
|
184
|
+
xml.add_element('DpsTxnRef').text = identification
|
|
173
185
|
end
|
|
174
186
|
|
|
175
187
|
def add_credit_card(xml, credit_card)
|
|
176
|
-
xml.add_element(
|
|
177
|
-
xml.add_element(
|
|
178
|
-
xml.add_element(
|
|
188
|
+
xml.add_element('CardHolderName').text = credit_card.name
|
|
189
|
+
xml.add_element('CardNumber').text = credit_card.number
|
|
190
|
+
xml.add_element('DateExpiry').text = format_date(credit_card.month, credit_card.year)
|
|
179
191
|
|
|
180
192
|
if credit_card.verification_value?
|
|
181
|
-
xml.add_element(
|
|
182
|
-
xml.add_element(
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
if requires_start_date_or_issue_number?(credit_card)
|
|
186
|
-
xml.add_element("DateStart").text = format_date(credit_card.start_month, credit_card.start_year) unless credit_card.start_month.blank? || credit_card.start_year.blank?
|
|
187
|
-
xml.add_element("IssueNumber").text = credit_card.issue_number unless credit_card.issue_number.blank?
|
|
193
|
+
xml.add_element('Cvc2').text = credit_card.verification_value
|
|
194
|
+
xml.add_element('Cvc2Presence').text = '1'
|
|
188
195
|
end
|
|
189
196
|
end
|
|
190
197
|
|
|
191
198
|
def add_billing_token(xml, token)
|
|
192
199
|
if use_custom_payment_token?
|
|
193
|
-
xml.add_element(
|
|
200
|
+
xml.add_element('BillingId').text = token
|
|
194
201
|
else
|
|
195
|
-
xml.add_element(
|
|
202
|
+
xml.add_element('DpsBillingId').text = token
|
|
196
203
|
end
|
|
197
204
|
end
|
|
198
205
|
|
|
199
206
|
def add_token_request(xml, options)
|
|
200
|
-
xml.add_element(
|
|
201
|
-
xml.add_element(
|
|
207
|
+
xml.add_element('BillingId').text = options[:billing_id] if options[:billing_id]
|
|
208
|
+
xml.add_element('EnableAddBillCard').text = 1
|
|
202
209
|
end
|
|
203
210
|
|
|
204
211
|
def add_amount(xml, money, options)
|
|
205
|
-
xml.add_element(
|
|
206
|
-
xml.add_element(
|
|
212
|
+
xml.add_element('Amount').text = amount(money)
|
|
213
|
+
xml.add_element('InputCurrency').text = options[:currency] || currency(money)
|
|
207
214
|
end
|
|
208
215
|
|
|
209
216
|
def add_transaction_type(xml, action)
|
|
210
|
-
xml.add_element(
|
|
217
|
+
xml.add_element('TxnType').text = TRANSACTIONS[action]
|
|
211
218
|
end
|
|
212
219
|
|
|
213
220
|
def add_invoice(xml, options)
|
|
214
|
-
xml.add_element(
|
|
215
|
-
xml.add_element(
|
|
221
|
+
xml.add_element('TxnId').text = options[:order_id].to_s.slice(0, 16) unless options[:order_id].blank?
|
|
222
|
+
xml.add_element('MerchantReference').text = options[:description].to_s.slice(0, 50) unless options[:description].blank?
|
|
216
223
|
end
|
|
217
224
|
|
|
218
225
|
def add_address_verification_data(xml, options)
|
|
219
226
|
address = options[:billing_address] || options[:address]
|
|
220
227
|
return if address.nil?
|
|
221
228
|
|
|
222
|
-
xml.add_element(
|
|
223
|
-
xml.add_element(
|
|
229
|
+
xml.add_element('EnableAvsData').text = 1
|
|
230
|
+
xml.add_element('AvsAction').text = 1
|
|
224
231
|
|
|
225
|
-
xml.add_element(
|
|
226
|
-
xml.add_element(
|
|
232
|
+
xml.add_element('AvsStreetAddress').text = address[:address1]
|
|
233
|
+
xml.add_element('AvsPostCode').text = address[:zip]
|
|
227
234
|
end
|
|
228
235
|
|
|
229
236
|
# The options hash may contain optional data which will be passed
|
|
@@ -264,16 +271,16 @@ module ActiveMerchant #:nodoc:
|
|
|
264
271
|
# +purchase+, +authorize+, +capture+, +refund+, +store+
|
|
265
272
|
def add_optional_elements(xml, options)
|
|
266
273
|
if client_type = normalized_client_type(options[:client_type])
|
|
267
|
-
xml.add_element(
|
|
274
|
+
xml.add_element('ClientType').text = client_type
|
|
268
275
|
end
|
|
269
276
|
|
|
270
|
-
xml.add_element(
|
|
271
|
-
xml.add_element(
|
|
272
|
-
xml.add_element(
|
|
277
|
+
xml.add_element('TxnData1').text = options[:txn_data1].to_s.slice(0, 255) unless options[:txn_data1].blank?
|
|
278
|
+
xml.add_element('TxnData2').text = options[:txn_data2].to_s.slice(0, 255) unless options[:txn_data2].blank?
|
|
279
|
+
xml.add_element('TxnData3').text = options[:txn_data3].to_s.slice(0, 255) unless options[:txn_data3].blank?
|
|
273
280
|
end
|
|
274
281
|
|
|
275
282
|
def new_transaction
|
|
276
|
-
REXML::Document.new.add_element(
|
|
283
|
+
REXML::Document.new.add_element('Txn')
|
|
277
284
|
end
|
|
278
285
|
|
|
279
286
|
# Take in the request and post it to DPS
|
|
@@ -281,8 +288,10 @@ module ActiveMerchant #:nodoc:
|
|
|
281
288
|
add_credentials(request)
|
|
282
289
|
add_transaction_type(request, action)
|
|
283
290
|
|
|
291
|
+
url = test? ? self.test_url : self.live_url
|
|
292
|
+
|
|
284
293
|
# Parse the XML response
|
|
285
|
-
response = parse(
|
|
294
|
+
response = parse(ssl_post(url, request.to_s))
|
|
286
295
|
|
|
287
296
|
# Return a response
|
|
288
297
|
PaymentExpressResponse.new(response[:success] == APPROVED, message_from(response), response,
|
|
@@ -331,13 +340,13 @@ module ActiveMerchant #:nodoc:
|
|
|
331
340
|
|
|
332
341
|
def normalized_client_type(client_type_from_options)
|
|
333
342
|
case client_type_from_options.to_s.downcase
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
343
|
+
when 'web' then 'Web'
|
|
344
|
+
when 'ivr' then 'IVR'
|
|
345
|
+
when 'moto' then 'MOTO'
|
|
346
|
+
when 'unattended' then 'Unattended'
|
|
347
|
+
when 'internet' then 'Internet'
|
|
348
|
+
when 'recurring' then 'Recurring'
|
|
349
|
+
else nil
|
|
341
350
|
end
|
|
342
351
|
end
|
|
343
352
|
end
|
|
@@ -346,7 +355,7 @@ module ActiveMerchant #:nodoc:
|
|
|
346
355
|
# add a method to response so we can easily get the token
|
|
347
356
|
# for Validate transactions
|
|
348
357
|
def token
|
|
349
|
-
@params[
|
|
358
|
+
@params['billing_id'] || @params['dps_billing_id']
|
|
350
359
|
end
|
|
351
360
|
end
|
|
352
361
|
end
|