activemerchant 1.43.3 → 1.44.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGELOG +133 -3
- data/CONTRIBUTORS +25 -0
- data/README.md +14 -39
- data/lib/active_merchant.rb +43 -2
- data/lib/active_merchant/billing.rb +3 -1
- data/lib/active_merchant/billing/base.rb +10 -2
- data/lib/active_merchant/billing/check.rb +29 -22
- data/lib/active_merchant/billing/compatibility.rb +120 -0
- data/lib/active_merchant/billing/credit_card.rb +129 -60
- data/lib/active_merchant/billing/credit_card_formatting.rb +4 -1
- data/lib/active_merchant/billing/credit_card_methods.rb +60 -43
- data/lib/active_merchant/billing/cvv_result.rb +15 -15
- data/lib/active_merchant/billing/gateway.rb +46 -11
- data/lib/active_merchant/billing/gateways/adyen.rb +205 -0
- data/lib/active_merchant/billing/gateways/app55.rb +1 -9
- data/lib/active_merchant/billing/gateways/authorize_net.rb +7 -391
- data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +417 -0
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +20 -4
- data/lib/active_merchant/billing/gateways/balanced.rb +127 -367
- data/lib/active_merchant/billing/gateways/barclays_epdq.rb +1 -1
- data/lib/active_merchant/billing/gateways/beanstream.rb +25 -6
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +3 -3
- data/lib/active_merchant/billing/gateways/blue_pay.rb +11 -3
- data/lib/active_merchant/billing/gateways/bogus.rb +1 -13
- data/lib/active_merchant/billing/gateways/borgun.rb +211 -0
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +31 -13
- data/lib/active_merchant/billing/gateways/bridge_pay.rb +7 -0
- data/lib/active_merchant/billing/gateways/cashnet.rb +184 -0
- data/lib/active_merchant/billing/gateways/cc5.rb +45 -0
- data/lib/active_merchant/billing/gateways/certo_direct.rb +3 -2
- data/lib/active_merchant/billing/gateways/commercegate.rb +143 -0
- data/lib/active_merchant/billing/gateways/conekta.rb +56 -81
- data/lib/active_merchant/billing/gateways/cyber_source.rb +1 -0
- data/lib/active_merchant/billing/gateways/data_cash.rb +3 -1
- data/lib/active_merchant/billing/gateways/efsnet.rb +3 -14
- data/lib/active_merchant/billing/gateways/elavon.rb +45 -9
- data/lib/active_merchant/billing/gateways/epay.rb +2 -2
- data/lib/active_merchant/billing/gateways/eway.rb +1 -12
- data/lib/active_merchant/billing/gateways/eway_managed.rb +1 -1
- data/lib/active_merchant/billing/gateways/eway_rapid.rb +233 -202
- data/lib/active_merchant/billing/gateways/exact.rb +1 -1
- data/lib/active_merchant/billing/gateways/fat_zebra.rb +1 -1
- data/lib/active_merchant/billing/gateways/federated_canada.rb +1 -8
- data/lib/active_merchant/billing/gateways/finansbank.rb +2 -1
- data/lib/active_merchant/billing/gateways/first_pay.rb +108 -124
- data/lib/active_merchant/billing/gateways/firstdata_e4.rb +43 -13
- data/lib/active_merchant/billing/gateways/garanti.rb +2 -2
- data/lib/active_merchant/billing/gateways/hps.rb +281 -0
- data/lib/active_merchant/billing/gateways/iats_payments.rb +2 -2
- data/lib/active_merchant/billing/gateways/ideal/ideal_base.rb +1 -4
- data/lib/active_merchant/billing/gateways/inspire.rb +0 -8
- data/lib/active_merchant/billing/gateways/iridium.rb +25 -3
- data/lib/active_merchant/billing/gateways/jetpay.rb +1 -1
- data/lib/active_merchant/billing/gateways/linkpoint.rb +4 -13
- data/lib/active_merchant/billing/gateways/litle.rb +10 -4
- data/lib/active_merchant/billing/gateways/maxipago.rb +7 -0
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +0 -6
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +4 -11
- data/lib/active_merchant/billing/gateways/merchant_ware_version_four.rb +3 -10
- data/lib/active_merchant/billing/gateways/mercury.rb +0 -7
- data/lib/active_merchant/billing/gateways/metrics_global.rb +1 -20
- data/lib/active_merchant/billing/gateways/migs.rb +1 -1
- data/lib/active_merchant/billing/gateways/moneris.rb +29 -21
- data/lib/active_merchant/billing/gateways/moneris_us.rb +1 -11
- data/lib/active_merchant/billing/gateways/money_movers.rb +1 -8
- data/lib/active_merchant/billing/gateways/nab_transact.rb +16 -15
- data/lib/active_merchant/billing/gateways/net_registry.rb +1 -1
- data/lib/active_merchant/billing/gateways/netbilling.rb +0 -7
- data/lib/active_merchant/billing/gateways/network_merchants.rb +21 -18
- data/lib/active_merchant/billing/gateways/ogone.rb +3 -3
- data/lib/active_merchant/billing/gateways/openpay.rb +1 -8
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +34 -23
- data/lib/active_merchant/billing/gateways/orbital.rb +121 -4
- data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +22 -21
- data/lib/active_merchant/billing/gateways/pac_net_raven.rb +2 -9
- data/lib/active_merchant/billing/gateways/pago_facil.rb +122 -0
- data/lib/active_merchant/billing/gateways/pay_junction.rb +3 -13
- data/lib/active_merchant/billing/gateways/pay_secure.rb +0 -7
- data/lib/active_merchant/billing/gateways/paybox_direct.rb +1 -9
- data/lib/active_merchant/billing/gateways/payex.rb +1 -1
- data/lib/active_merchant/billing/gateways/payflow.rb +7 -1
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +15 -15
- data/lib/active_merchant/billing/gateways/payflow_express.rb +19 -19
- data/lib/active_merchant/billing/gateways/payment_express.rb +1 -1
- data/lib/active_merchant/billing/gateways/paymill.rb +7 -2
- data/lib/active_merchant/billing/gateways/paypal.rb +25 -14
- data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +1 -1
- data/lib/active_merchant/billing/gateways/paypal/paypal_recurring_api.rb +16 -2
- data/lib/active_merchant/billing/gateways/paypal_digital_goods.rb +3 -2
- data/lib/active_merchant/billing/gateways/paypal_express.rb +25 -0
- data/lib/active_merchant/billing/gateways/payscout.rb +1 -8
- data/lib/active_merchant/billing/gateways/pin.rb +39 -7
- data/lib/active_merchant/billing/gateways/plugnpay.rb +1 -12
- data/lib/active_merchant/billing/gateways/psigate.rb +1 -12
- data/lib/active_merchant/billing/gateways/qbms.rb +1 -1
- data/lib/active_merchant/billing/gateways/quantum.rb +2 -2
- data/lib/active_merchant/billing/gateways/quickpay.rb +17 -15
- data/lib/active_merchant/billing/gateways/realex.rb +3 -12
- data/lib/active_merchant/billing/gateways/sage.rb +1 -1
- data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +2 -8
- data/lib/active_merchant/billing/gateways/sage/sage_core.rb +1 -1
- data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +1 -1
- data/lib/active_merchant/billing/gateways/sage_pay.rb +93 -28
- data/lib/active_merchant/billing/gateways/secure_net.rb +1 -8
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +3 -3
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +0 -7
- data/lib/active_merchant/billing/gateways/skip_jack.rb +1 -2
- data/lib/active_merchant/billing/gateways/smart_ps.rb +8 -2
- data/lib/active_merchant/billing/gateways/spreedly_core.rb +2 -1
- data/lib/active_merchant/billing/gateways/stripe.rb +14 -15
- data/lib/active_merchant/billing/gateways/swipe_checkout.rb +0 -1
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +4 -9
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +46 -43
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +7 -0
- data/lib/active_merchant/billing/gateways/verifi.rb +1 -8
- data/lib/active_merchant/billing/gateways/viaklix.rb +0 -6
- data/lib/active_merchant/billing/gateways/vindicia.rb +68 -44
- data/lib/active_merchant/billing/gateways/webpay.rb +1 -9
- data/lib/active_merchant/billing/gateways/wirecard.rb +117 -11
- data/lib/active_merchant/billing/gateways/worldpay.rb +50 -22
- data/lib/active_merchant/billing/gateways/worldpay_us.rb +181 -0
- data/lib/active_merchant/billing/model.rb +30 -0
- data/lib/active_merchant/billing/rails.rb +3 -0
- data/lib/active_merchant/billing/response.rb +20 -15
- data/lib/active_merchant/country.rb +327 -0
- data/lib/active_merchant/empty.rb +20 -0
- data/lib/active_merchant/errors.rb +29 -0
- data/lib/active_merchant/offsite_payments_shim.rb +19 -0
- data/lib/active_merchant/version.rb +1 -1
- metadata +60 -243
- metadata.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/orbital/avs_result.rb +0 -93
- data/lib/active_merchant/billing/gateways/orbital/cvv_result.rb +0 -34
- data/lib/active_merchant/billing/integrations.rb +0 -17
- data/lib/active_merchant/billing/integrations/a1agregator.rb +0 -26
- 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/action_view_helper.rb +0 -78
- data/lib/active_merchant/billing/integrations/authorize_net_sim.rb +0 -38
- 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/bit_pay.rb +0 -30
- data/lib/active_merchant/billing/integrations/bit_pay/helper.rb +0 -66
- 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/bogus.rb +0 -23
- 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/chronopay.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/citrus.rb +0 -28
- data/lib/active_merchant/billing/integrations/citrus/helper.rb +0 -57
- 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/direc_pay.rb +0 -41
- 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/directebanking.rb +0 -47
- 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/doku.rb +0 -24
- 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/dotpay.rb +0 -22
- 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/dwolla.rb +0 -23
- 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/e_payment_plans.rb +0 -48
- 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/easy_pay.rb +0 -30
- 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/epay.rb +0 -21
- 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/first_data.rb +0 -38
- 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/gestpay.rb +0 -25
- 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/helper.rb +0 -123
- data/lib/active_merchant/billing/integrations/hi_trust.rb +0 -27
- 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/ipay88.rb +0 -23
- 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/klarna.rb +0 -71
- data/lib/active_merchant/billing/integrations/klarna/helper.rb +0 -123
- data/lib/active_merchant/billing/integrations/klarna/notification.rb +0 -103
- data/lib/active_merchant/billing/integrations/liqpay.rb +0 -30
- 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/maksuturva.rb +0 -86
- 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/mollie_ideal.rb +0 -98
- data/lib/active_merchant/billing/integrations/mollie_ideal/helper.rb +0 -67
- data/lib/active_merchant/billing/integrations/mollie_ideal/notification.rb +0 -69
- data/lib/active_merchant/billing/integrations/mollie_ideal/return.rb +0 -10
- data/lib/active_merchant/billing/integrations/moneybookers.rb +0 -26
- 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/nochex.rb +0 -88
- 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/notification.rb +0 -71
- data/lib/active_merchant/billing/integrations/pag_seguro.rb +0 -53
- data/lib/active_merchant/billing/integrations/pag_seguro/helper.rb +0 -121
- data/lib/active_merchant/billing/integrations/pag_seguro/notification.rb +0 -104
- data/lib/active_merchant/billing/integrations/paxum.rb +0 -44
- 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/pay_fast.rb +0 -70
- 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/paydollar.rb +0 -59
- data/lib/active_merchant/billing/integrations/paydollar/helper.rb +0 -41
- data/lib/active_merchant/billing/integrations/paydollar/notification.rb +0 -64
- data/lib/active_merchant/billing/integrations/paydollar/return.rb +0 -15
- data/lib/active_merchant/billing/integrations/payflow_link.rb +0 -21
- 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/paypal.rb +0 -39
- 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_payments_advanced.rb +0 -20
- data/lib/active_merchant/billing/integrations/paypal_payments_advanced/helper.rb +0 -15
- data/lib/active_merchant/billing/integrations/paysbuy.rb +0 -36
- 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/payu_in.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_paisa.rb +0 -30
- 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/platron.rb +0 -28
- 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/pxpay.rb +0 -31
- data/lib/active_merchant/billing/integrations/pxpay/helper.rb +0 -113
- 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/quickpay.rb +0 -21
- 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/rbkmoney.rb +0 -17
- 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/return.rb +0 -42
- data/lib/active_merchant/billing/integrations/robokassa.rb +0 -49
- 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/sage_pay_form.rb +0 -37
- 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/two_checkout.rb +0 -44
- 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/universal.rb +0 -23
- data/lib/active_merchant/billing/integrations/universal/helper.rb +0 -76
- data/lib/active_merchant/billing/integrations/universal/notification.rb +0 -52
- data/lib/active_merchant/billing/integrations/universal/return.rb +0 -18
- data/lib/active_merchant/billing/integrations/valitor.rb +0 -33
- 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/verkkomaksut.rb +0 -20
- 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/web_pay.rb +0 -45
- 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/webmoney.rb +0 -43
- 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/wirecard_checkout_page.rb +0 -39
- 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/world_pay.rb +0 -34
- data/lib/active_merchant/billing/integrations/world_pay/helper.rb +0 -101
- data/lib/active_merchant/billing/integrations/world_pay/notification.rb +0 -160
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
module ActiveMerchant #:nodoc:
|
|
2
|
-
module Billing #:nodoc:
|
|
3
|
-
module Integrations #:nodoc:
|
|
4
|
-
module FirstData
|
|
5
|
-
autoload :Helper, 'active_merchant/billing/integrations/first_data/helper.rb'
|
|
6
|
-
autoload :Notification, 'active_merchant/billing/integrations/first_data/notification.rb'
|
|
7
|
-
|
|
8
|
-
# Overwrite this if you want to change the ANS test url
|
|
9
|
-
mattr_accessor :test_url
|
|
10
|
-
self.test_url = 'https://demo.globalgatewaye4.firstdata.com/payment'
|
|
11
|
-
|
|
12
|
-
# Overwrite this if you want to change the ANS production url
|
|
13
|
-
mattr_accessor :production_url
|
|
14
|
-
self.production_url = 'https://checkout.globalgatewaye4.firstdata.com/payment'
|
|
15
|
-
|
|
16
|
-
def self.service_url
|
|
17
|
-
mode = ActiveMerchant::Billing::Base.integration_mode
|
|
18
|
-
case mode
|
|
19
|
-
when :production
|
|
20
|
-
self.production_url
|
|
21
|
-
when :test
|
|
22
|
-
self.test_url
|
|
23
|
-
else
|
|
24
|
-
raise StandardError, "Integration mode set to an invalid value: #{mode}"
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def self.notification(post)
|
|
29
|
-
Notification.new(post)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def self.return(query_string)
|
|
33
|
-
Return.new(query_string)
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
module ActiveMerchant #:nodoc:
|
|
2
|
-
module Billing #:nodoc:
|
|
3
|
-
module Integrations #:nodoc:
|
|
4
|
-
module FirstData
|
|
5
|
-
# First Data payment pages emulates the Authorize.Net SIM API. See
|
|
6
|
-
# ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Helper for
|
|
7
|
-
# more details.
|
|
8
|
-
#
|
|
9
|
-
# An example. Note the username as a parameter and transaction key you
|
|
10
|
-
# will want to use later.
|
|
11
|
-
#
|
|
12
|
-
# payment_service_for('order_id', 'first_data_payment_page_id', :service => :first_data, :amount => 157.0) do |service|
|
|
13
|
-
#
|
|
14
|
-
# # You must call setup_hash and invoice
|
|
15
|
-
#
|
|
16
|
-
# service.setup_hash :transaction_key => '8CP6zJ7uD875J6tY',
|
|
17
|
-
# :order_timestamp => 1206836763
|
|
18
|
-
# service.customer_id 8
|
|
19
|
-
# service.customer :first_name => 'g',
|
|
20
|
-
# :last_name => 'g',
|
|
21
|
-
# :email => 'g@g.com',
|
|
22
|
-
# :phone => '3'
|
|
23
|
-
# service.billing_address :zip => 'g',
|
|
24
|
-
# :country => 'United States of America',
|
|
25
|
-
# :address => 'g'
|
|
26
|
-
#
|
|
27
|
-
# service.ship_to_address :first_name => 'g',
|
|
28
|
-
# :last_name => 'g',
|
|
29
|
-
# :city => '',
|
|
30
|
-
# :address => 'g',
|
|
31
|
-
# :address2 => '',
|
|
32
|
-
# :state => address.state,
|
|
33
|
-
# :country => 'United States of America',
|
|
34
|
-
# :zip => 'g'
|
|
35
|
-
#
|
|
36
|
-
# service.invoice "516428355" # your invoice number
|
|
37
|
-
# # The end-user is presented with the HTML produced by the notify_url
|
|
38
|
-
# # (using the First Data Receipt Link feature).
|
|
39
|
-
# service.return_url "http://mysite/first_data_receipt_generator_page"
|
|
40
|
-
# service.payment_header 'My store name'
|
|
41
|
-
# service.add_line_item :name => 'item name', :quantity => 1, :unit_price => 0
|
|
42
|
-
# service.test_request 'true' # only if it's just a test
|
|
43
|
-
# service.shipping '25.0'
|
|
44
|
-
# # Tell it to display a "0" line item for shipping, with the price in
|
|
45
|
-
# # the name, otherwise it isn't shown at all, leaving the end user to
|
|
46
|
-
# # wonder why the total is different than the sum of the line items.
|
|
47
|
-
# service.add_shipping_as_line_item
|
|
48
|
-
# server.add_tax_as_line_item # same with tax
|
|
49
|
-
# # See the helper.rb file for various custom fields
|
|
50
|
-
# end
|
|
51
|
-
class Helper < ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Helper
|
|
52
|
-
# Configure notify_url to use the "Relay Response" feature
|
|
53
|
-
mapping :notify_url, 'x_relay_url'
|
|
54
|
-
|
|
55
|
-
# Configure return_url to use the "Receipt Link" feature
|
|
56
|
-
mapping :return_url, 'x_receipt_link_url'
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
require 'net/http'
|
|
2
|
-
|
|
3
|
-
module ActiveMerchant #:nodoc:
|
|
4
|
-
module Billing #:nodoc:
|
|
5
|
-
module Integrations #:nodoc:
|
|
6
|
-
# First Data payment pages emulates the Authorize.Net SIM API. See
|
|
7
|
-
# ActiveMerchant::Billing::Integrations::FirstData::Notification for
|
|
8
|
-
# more details.
|
|
9
|
-
#
|
|
10
|
-
# # Example:
|
|
11
|
-
# parser = FirstData::Notification.new(request.raw_post)
|
|
12
|
-
# passed = parser.complete?
|
|
13
|
-
#
|
|
14
|
-
# order = Order.find_by_order_number(parser.invoice_num)
|
|
15
|
-
#
|
|
16
|
-
# unless order
|
|
17
|
-
# @message = 'Error--unable to find your transaction! Please contact us directly.'
|
|
18
|
-
# return render :partial => 'first_data_payment_response'
|
|
19
|
-
# end
|
|
20
|
-
#
|
|
21
|
-
# if order.total != parser.gross.to_f
|
|
22
|
-
# logger.error "First Data said they paid for #{parser.gross} and it should have been #{order.total}!"
|
|
23
|
-
# passed = false
|
|
24
|
-
# end
|
|
25
|
-
#
|
|
26
|
-
# # Theoretically, First Data will *never* pass us the same transaction
|
|
27
|
-
# # ID twice, but we can double check that... by using
|
|
28
|
-
# # parser.transaction_id, and checking against previous orders' transaction
|
|
29
|
-
# # id's (which you can save when the order is completed)....
|
|
30
|
-
# unless parser.acknowledge FIRST_DATA_TRANSACTION_KEY, FIRST_DATA_RESPONSE_KEY
|
|
31
|
-
# passed = false
|
|
32
|
-
# logger.error "ALERT POSSIBLE FRAUD ATTEMPT"
|
|
33
|
-
# end
|
|
34
|
-
#
|
|
35
|
-
# unless parser.cavv_matches? and parser.avs_code_matches?
|
|
36
|
-
# logger.error 'Warning--non matching CC!' + params.inspect
|
|
37
|
-
# # Could fail them here, as well (recommended)...
|
|
38
|
-
# end
|
|
39
|
-
#
|
|
40
|
-
# if passed
|
|
41
|
-
# # Set up your session, and render something that will redirect them to
|
|
42
|
-
# # your site, most likely.
|
|
43
|
-
# else
|
|
44
|
-
# # Render failure or redirect them to your site where you will render failure
|
|
45
|
-
# end
|
|
46
|
-
|
|
47
|
-
module FirstData
|
|
48
|
-
class Notification < ActiveMerchant::Billing::Integrations::AuthorizeNetSim::Notification
|
|
49
|
-
def acknowledge(response_key, payment_page_id)
|
|
50
|
-
Digest::MD5.hexdigest(response_key + payment_page_id + params['x_trans_id'] + sprintf('%.2f', gross)) == params['x_MD5_Hash'].downcase
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# With help from Giovanni Intini and his code for RGestPay - http://medlar.it/it/progetti/rgestpay
|
|
2
|
-
|
|
3
|
-
module ActiveMerchant #:nodoc:
|
|
4
|
-
module Billing #:nodoc:
|
|
5
|
-
module Integrations #:nodoc:
|
|
6
|
-
module Gestpay
|
|
7
|
-
autoload :Return, File.dirname(__FILE__) + '/gestpay/return.rb'
|
|
8
|
-
autoload :Common, File.dirname(__FILE__) + '/gestpay/common.rb'
|
|
9
|
-
autoload :Helper, File.dirname(__FILE__) + '/gestpay/helper.rb'
|
|
10
|
-
autoload :Notification, File.dirname(__FILE__) + '/gestpay/notification.rb'
|
|
11
|
-
|
|
12
|
-
mattr_accessor :service_url
|
|
13
|
-
self.service_url = 'https://ecomm.sella.it/gestpay/pagam.asp'
|
|
14
|
-
|
|
15
|
-
def self.notification(post, options = {})
|
|
16
|
-
Notification.new(post)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def self.return(query_string, options = {})
|
|
20
|
-
Return.new(query_string)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
module ActiveMerchant #:nodoc:
|
|
2
|
-
module Billing #:nodoc:
|
|
3
|
-
module Integrations #:nodoc:
|
|
4
|
-
module Gestpay
|
|
5
|
-
module Common
|
|
6
|
-
VERSION = "2.0"
|
|
7
|
-
ENCRYPTION_PATH = "/CryptHTTPS/Encrypt.asp"
|
|
8
|
-
DECRYPTION_PATH = "/CryptHTTPS/Decrypt.asp"
|
|
9
|
-
DELIMITER = '*P1*'
|
|
10
|
-
|
|
11
|
-
CURRENCY_MAPPING = {
|
|
12
|
-
'EUR' => '242',
|
|
13
|
-
'ITL' => '18',
|
|
14
|
-
'BRL' => '234',
|
|
15
|
-
'USD' => '1',
|
|
16
|
-
'JPY' => '71',
|
|
17
|
-
'HKD' => '103'
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
def parse_response(response)
|
|
21
|
-
case response
|
|
22
|
-
when /#cryptstring#(.*)#\/cryptstring#/, /#decryptstring#(.*)#\/decryptstring#/
|
|
23
|
-
$1
|
|
24
|
-
when /#error#(.*)#\/error#/
|
|
25
|
-
raise StandardError, "An error occurred retrieving the encrypted string from GestPay: #{$1}"
|
|
26
|
-
else
|
|
27
|
-
raise StandardError, "No response was received by GestPay"
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def ssl_get(url, path)
|
|
32
|
-
uri = URI.parse(url)
|
|
33
|
-
site = Net::HTTP.new(uri.host, uri.port)
|
|
34
|
-
site.use_ssl = true
|
|
35
|
-
site.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
|
36
|
-
site.get(path).body
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
module ActiveMerchant #:nodoc:
|
|
2
|
-
module Billing #:nodoc:
|
|
3
|
-
module Integrations #:nodoc:
|
|
4
|
-
module Gestpay
|
|
5
|
-
class Helper < ActiveMerchant::Billing::Integrations::Helper
|
|
6
|
-
include Common
|
|
7
|
-
# Valid language codes
|
|
8
|
-
# Italian => 1
|
|
9
|
-
# English => 2
|
|
10
|
-
# Spanish => 3
|
|
11
|
-
# French => 4
|
|
12
|
-
# Tedesco => 5
|
|
13
|
-
def initialize(order, account, options = {})
|
|
14
|
-
super
|
|
15
|
-
add_field('PAY1_IDLANGUAGE', 2)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
mapping :account, 'ShopLogin'
|
|
19
|
-
|
|
20
|
-
mapping :amount, 'PAY1_AMOUNT'
|
|
21
|
-
mapping :currency, 'PAY1_UICCODE'
|
|
22
|
-
|
|
23
|
-
mapping :order, 'PAY1_SHOPTRANSACTIONID'
|
|
24
|
-
|
|
25
|
-
# Buyer name PAY1_CHNAME
|
|
26
|
-
mapping :customer, :email => 'PAY1_CHEMAIL'
|
|
27
|
-
|
|
28
|
-
mapping :credit_card, :number => 'PAY1_CARDNUMBER',
|
|
29
|
-
:expiry_month => 'PAY1_EXPMONTH',
|
|
30
|
-
:expiry_year => 'PAY1_EXPYEAR',
|
|
31
|
-
:verification_value => 'PAY1_CVV'
|
|
32
|
-
|
|
33
|
-
def customer(params = {})
|
|
34
|
-
add_field(mappings[:customer][:email], params[:email])
|
|
35
|
-
add_field('PAY1_CHNAME', "#{params[:first_name]} #{params[:last_name]}")
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def currency=(currency_code)
|
|
39
|
-
code = CURRENCY_MAPPING[currency_code]
|
|
40
|
-
raise StandardError, "Invalid currency code #{currency_code} specified" if code.nil?
|
|
41
|
-
|
|
42
|
-
add_field(mappings[:currency], code)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def form_fields
|
|
46
|
-
@encrypted_data ||= get_encrypted_string
|
|
47
|
-
|
|
48
|
-
{
|
|
49
|
-
'a' => @fields['ShopLogin'],
|
|
50
|
-
'b' => @encrypted_data
|
|
51
|
-
}
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def get_encrypted_string
|
|
55
|
-
response = ssl_get(Gestpay.service_url, encryption_query_string)
|
|
56
|
-
parse_response(response)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def encryption_query_string
|
|
60
|
-
fields = ['PAY1_AMOUNT', 'PAY1_SHOPTRANSACTIONID', 'PAY1_UICCODE']
|
|
61
|
-
|
|
62
|
-
encoded_params = fields.collect{ |field| "#{field}=#{CGI.escape(@fields[field])}" }.join(DELIMITER)
|
|
63
|
-
|
|
64
|
-
"#{ENCRYPTION_PATH}?a=" + CGI.escape(@fields['ShopLogin']) + "&b=" + encoded_params + "&c=" + CGI.escape(VERSION)
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
require 'net/http'
|
|
2
|
-
|
|
3
|
-
module ActiveMerchant #:nodoc:
|
|
4
|
-
module Billing #:nodoc:
|
|
5
|
-
module Integrations #:nodoc:
|
|
6
|
-
module Gestpay
|
|
7
|
-
class Notification < ActiveMerchant::Billing::Integrations::Notification
|
|
8
|
-
include Common
|
|
9
|
-
|
|
10
|
-
def complete?
|
|
11
|
-
status == 'Completed'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# The important param
|
|
15
|
-
def item_id
|
|
16
|
-
params['PAY1_SHOPTRANSACTIONID']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def transaction_id
|
|
20
|
-
params['PAY1_BANKTRANSACTIONID']
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# the money amount we received in X.2 decimal.
|
|
24
|
-
def gross
|
|
25
|
-
params['PAY1_AMOUNT']
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def currency
|
|
29
|
-
# Ruby 1.9 compat
|
|
30
|
-
method = CURRENCY_MAPPING.respond_to?(:key) ? :key : :index
|
|
31
|
-
CURRENCY_MAPPING.send(method, params['PAY1_UICCODE'])
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def test?
|
|
35
|
-
false
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def status
|
|
39
|
-
case params['PAY1_TRANSACTIONRESULT']
|
|
40
|
-
when 'OK'
|
|
41
|
-
'Completed'
|
|
42
|
-
else
|
|
43
|
-
'Failed'
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def acknowledge(authcode = nil)
|
|
48
|
-
true
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
private
|
|
52
|
-
# Take the posted data and move the relevant data into a hash
|
|
53
|
-
def parse(query_string)
|
|
54
|
-
@raw = query_string
|
|
55
|
-
|
|
56
|
-
return if query_string.blank?
|
|
57
|
-
encrypted_params = parse_delimited_string(query_string)
|
|
58
|
-
|
|
59
|
-
return if encrypted_params['a'].blank? || encrypted_params['b'].blank?
|
|
60
|
-
@params = decrypt_data(encrypted_params['a'], encrypted_params['b'])
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def parse_delimited_string(string, delimiter = '&', unencode_cgi = false)
|
|
64
|
-
result = {}
|
|
65
|
-
for line in string.split(delimiter)
|
|
66
|
-
key, value = *line.scan( %r{^(\w+)\=(.*)$} ).flatten
|
|
67
|
-
result[key] = unencode_cgi ? CGI.unescape(value) : value
|
|
68
|
-
end
|
|
69
|
-
result
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def decrypt_data(shop_login, encrypted_string)
|
|
73
|
-
response = ssl_get(Gestpay.service_url, decryption_query_string(shop_login, encrypted_string))
|
|
74
|
-
encoded_response = parse_response(response)
|
|
75
|
-
parse_delimited_string(encoded_response, DELIMITER, true)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def decryption_query_string(shop_login, encrypted_string)
|
|
79
|
-
"#{DECRYPTION_PATH}?a=" + CGI.escape(shop_login) + "&b=" + encrypted_string + "&c=" + CGI.escape(VERSION)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
end
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
module ActiveMerchant #:nodoc:
|
|
2
|
-
module Billing #:nodoc:
|
|
3
|
-
module Integrations #:nodoc:
|
|
4
|
-
class Helper #:nodoc:
|
|
5
|
-
attr_reader :fields
|
|
6
|
-
class_attribute :service_url
|
|
7
|
-
class_attribute :mappings
|
|
8
|
-
class_attribute :country_format
|
|
9
|
-
self.country_format = :alpha2
|
|
10
|
-
|
|
11
|
-
# The application making the calls to the gateway
|
|
12
|
-
# Useful for things like the PayPal build notation (BN) id fields
|
|
13
|
-
class_attribute :application_id
|
|
14
|
-
self.application_id = 'ActiveMerchant'
|
|
15
|
-
|
|
16
|
-
def self.inherited(subclass)
|
|
17
|
-
subclass.mappings ||= {}
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def initialize(order, account, options = {})
|
|
21
|
-
options.assert_valid_keys([:amount, :currency, :test, :credential2, :credential3, :credential4, :country, :account_name, :description, :transaction_type, :authcode, :notify_url, :return_url, :redirect_param, :forward_url])
|
|
22
|
-
@fields = {}
|
|
23
|
-
@raw_html_fields = []
|
|
24
|
-
@test = options[:test]
|
|
25
|
-
self.order = order
|
|
26
|
-
self.account = account
|
|
27
|
-
self.amount = options[:amount]
|
|
28
|
-
self.currency = options[:currency]
|
|
29
|
-
self.credential2 = options[:credential2]
|
|
30
|
-
self.credential3 = options[:credential3]
|
|
31
|
-
self.credential4 = options[:credential4]
|
|
32
|
-
self.notify_url = options[:notify_url]
|
|
33
|
-
self.return_url = options[:return_url]
|
|
34
|
-
self.redirect_param = options[:redirect_param]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def self.mapping(attribute, options = {})
|
|
38
|
-
self.mappings[attribute] = options
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def add_field(name, value)
|
|
42
|
-
return if name.blank? || value.blank?
|
|
43
|
-
@fields[name.to_s] = value.to_s
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def add_fields(subkey, params = {})
|
|
47
|
-
params.each do |k, v|
|
|
48
|
-
field = mappings[subkey][k]
|
|
49
|
-
add_field(field, v) unless field.blank?
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# Add a field that has characters that CGI::escape would mangle. Allows
|
|
54
|
-
# for multiple fields with the same name (e.g., to support line items).
|
|
55
|
-
def add_raw_html_field(name, value)
|
|
56
|
-
return if name.blank? || value.blank?
|
|
57
|
-
@raw_html_fields << [name, value]
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def raw_html_fields
|
|
61
|
-
@raw_html_fields
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def billing_address(params = {})
|
|
65
|
-
add_address(:billing_address, params)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def shipping_address(params = {})
|
|
69
|
-
add_address(:shipping_address, params)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def form_fields
|
|
73
|
-
@fields
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def test?
|
|
77
|
-
@test_mode ||= ActiveMerchant::Billing::Base.integration_mode == :test || @test
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def form_method
|
|
81
|
-
"POST"
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
private
|
|
85
|
-
|
|
86
|
-
def add_address(key, params)
|
|
87
|
-
return if mappings[key].nil?
|
|
88
|
-
|
|
89
|
-
code = lookup_country_code(params.delete(:country))
|
|
90
|
-
add_field(mappings[key][:country], code)
|
|
91
|
-
add_fields(key, params)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def lookup_country_code(name_or_code, format = country_format)
|
|
95
|
-
country = Country.find(name_or_code)
|
|
96
|
-
country.code(format).to_s
|
|
97
|
-
rescue InvalidCountryCodeError
|
|
98
|
-
name_or_code
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def method_missing(method_id, *args)
|
|
102
|
-
method_id = method_id.to_s.gsub(/=$/, '').to_sym
|
|
103
|
-
# Return and do nothing if the mapping was not found. This allows
|
|
104
|
-
# for easy substitution of the different integrations
|
|
105
|
-
return if mappings[method_id].nil?
|
|
106
|
-
|
|
107
|
-
mapping = mappings[method_id]
|
|
108
|
-
|
|
109
|
-
case mapping
|
|
110
|
-
when Array
|
|
111
|
-
mapping.each{ |field| add_field(field, args.last) }
|
|
112
|
-
when Hash
|
|
113
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
|
114
|
-
|
|
115
|
-
mapping.each{ |key, field| add_field(field, options[key]) }
|
|
116
|
-
else
|
|
117
|
-
add_field(mapping, args.last)
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
end
|