mattbauer-activemerchant 1.4.2
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.
- data/CHANGELOG +459 -0
- data/CONTRIBUTERS +118 -0
- data/MIT-LICENSE +20 -0
- data/README +134 -0
- data/Rakefile +153 -0
- data/gem-public_cert.pem +20 -0
- data/init.rb +3 -0
- data/lib/active_merchant.rb +60 -0
- data/lib/active_merchant/billing/avs_result.rb +98 -0
- data/lib/active_merchant/billing/base.rb +57 -0
- data/lib/active_merchant/billing/check.rb +68 -0
- data/lib/active_merchant/billing/credit_card.rb +159 -0
- data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
- data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
- data/lib/active_merchant/billing/cvv_result.rb +38 -0
- data/lib/active_merchant/billing/expiry_date.rb +34 -0
- data/lib/active_merchant/billing/gateway.rb +158 -0
- data/lib/active_merchant/billing/gateways.rb +3 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -0
- data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
- data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
- data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
- data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
- data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
- data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
- data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
- data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
- data/lib/active_merchant/billing/gateways/elavon.rb +106 -0
- data/lib/active_merchant/billing/gateways/eway.rb +277 -0
- data/lib/active_merchant/billing/gateways/exact.rb +222 -0
- data/lib/active_merchant/billing/gateways/first_pay.rb +172 -0
- data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
- data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
- data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
- data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
- data/lib/active_merchant/billing/gateways/moneris.rb +295 -0
- data/lib/active_merchant/billing/gateways/moneris_usa.rb +258 -0
- data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
- data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
- data/lib/active_merchant/billing/gateways/ogone.rb +259 -0
- data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
- data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
- data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
- data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
- data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
- data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
- data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
- data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
- data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
- data/lib/active_merchant/billing/gateways/paypal.rb +121 -0
- data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
- data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
- data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
- data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
- data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
- data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
- data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
- data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
- data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
- data/lib/active_merchant/billing/gateways/realex.rb +200 -0
- data/lib/active_merchant/billing/gateways/sage.rb +146 -0
- data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
- data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
- data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
- data/lib/active_merchant/billing/gateways/sage_pay.rb +308 -0
- data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
- data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
- data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
- data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
- data/lib/active_merchant/billing/gateways/transax.rb +26 -0
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
- data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
- data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
- data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
- data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
- data/lib/active_merchant/billing/integrations.rb +22 -0
- data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
- data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
- data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
- data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
- data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
- data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
- data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
- data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
- data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
- data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
- data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
- data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/helper.rb +93 -0
- data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
- data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
- data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
- data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
- data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
- data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
- data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
- data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/notification.rb +62 -0
- data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
- data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
- data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
- data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
- data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
- data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
- data/lib/active_merchant/billing/integrations/return.rb +35 -0
- data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
- data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
- data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
- data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
- data/lib/active_merchant/billing/response.rb +32 -0
- data/lib/active_merchant/lib/connection.rb +170 -0
- data/lib/active_merchant/lib/country.rb +319 -0
- data/lib/active_merchant/lib/error.rb +4 -0
- data/lib/active_merchant/lib/post_data.rb +22 -0
- data/lib/active_merchant/lib/posts_data.rb +47 -0
- data/lib/active_merchant/lib/requires_parameters.rb +16 -0
- data/lib/active_merchant/lib/utils.rb +18 -0
- data/lib/active_merchant/lib/validateable.rb +76 -0
- data/lib/certs/cacert.pem +7815 -0
- data/lib/support/gateway_support.rb +58 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/test/fixtures.yml +353 -0
- data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
- data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
- data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
- data/test/remote/gateways/remote_beanstream_test.rb +150 -0
- data/test/remote/gateways/remote_braintree_test.rb +154 -0
- data/test/remote/gateways/remote_card_stream_test.rb +148 -0
- data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
- data/test/remote/gateways/remote_data_cash_test.rb +357 -0
- data/test/remote/gateways/remote_efsnet_test.rb +81 -0
- data/test/remote/gateways/remote_elavon_test.rb +66 -0
- data/test/remote/gateways/remote_eway_test.rb +74 -0
- data/test/remote/gateways/remote_exact_test.rb +60 -0
- data/test/remote/gateways/remote_first_pay_test.rb +87 -0
- data/test/remote/gateways/remote_instapay_test.rb +61 -0
- data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
- data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
- data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
- data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
- data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
- data/test/remote/gateways/remote_moneris_test.rb +118 -0
- data/test/remote/gateways/remote_moneris_usa_test.rb +115 -0
- data/test/remote/gateways/remote_net_registry_test.rb +85 -0
- data/test/remote/gateways/remote_netbilling_test.rb +70 -0
- data/test/remote/gateways/remote_ogone_test.rb +108 -0
- data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
- data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
- data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
- data/test/remote/gateways/remote_payflow_test.rb +237 -0
- data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
- data/test/remote/gateways/remote_payment_express_test.rb +136 -0
- data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
- data/test/remote/gateways/remote_paypal_test.rb +178 -0
- data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
- data/test/remote/gateways/remote_psigate_test.rb +50 -0
- data/test/remote/gateways/remote_psl_card_test.rb +125 -0
- data/test/remote/gateways/remote_quickpay_test.rb +190 -0
- data/test/remote/gateways/remote_realex_test.rb +224 -0
- data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
- data/test/remote/gateways/remote_sage_pay_test.rb +219 -0
- data/test/remote/gateways/remote_sage_test.rb +87 -0
- data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
- data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
- data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
- data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
- data/test/remote/gateways/remote_skipjack_test.rb +105 -0
- data/test/remote/gateways/remote_trans_first_test.rb +34 -0
- data/test/remote/gateways/remote_transax_test.rb +112 -0
- data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
- data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
- data/test/remote/gateways/remote_verifi_test.rb +107 -0
- data/test/remote/gateways/remote_viaklix_test.rb +43 -0
- data/test/remote/gateways/remote_wirecard_test.rb +111 -0
- data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
- data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
- data/test/test_helper.rb +182 -0
- data/test/unit/avs_result_test.rb +59 -0
- data/test/unit/base_test.rb +55 -0
- data/test/unit/check_test.rb +88 -0
- data/test/unit/connection_test.rb +129 -0
- data/test/unit/country_code_test.rb +33 -0
- data/test/unit/country_test.rb +64 -0
- data/test/unit/credit_card_formatting_test.rb +19 -0
- data/test/unit/credit_card_methods_test.rb +179 -0
- data/test/unit/credit_card_test.rb +318 -0
- data/test/unit/cvv_result_test.rb +33 -0
- data/test/unit/expiry_date_test.rb +32 -0
- data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
- data/test/unit/gateways/authorize_net_test.rb +290 -0
- data/test/unit/gateways/beanstream_interac_test.rb +51 -0
- data/test/unit/gateways/beanstream_test.rb +108 -0
- data/test/unit/gateways/bogus_test.rb +46 -0
- data/test/unit/gateways/braintree_test.rb +126 -0
- data/test/unit/gateways/card_stream_test.rb +90 -0
- data/test/unit/gateways/cyber_source_test.rb +188 -0
- data/test/unit/gateways/data_cash_test.rb +133 -0
- data/test/unit/gateways/efsnet_test.rb +123 -0
- data/test/unit/gateways/elavon_test.rb +139 -0
- data/test/unit/gateways/eway_test.rb +118 -0
- data/test/unit/gateways/exact_test.rb +156 -0
- data/test/unit/gateways/first_pay_test.rb +125 -0
- data/test/unit/gateways/gateway_test.rb +48 -0
- data/test/unit/gateways/instapay_test.rb +102 -0
- data/test/unit/gateways/linkpoint_test.rb +167 -0
- data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
- data/test/unit/gateways/merchant_ware_test.rb +188 -0
- data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
- data/test/unit/gateways/moneris_test.rb +185 -0
- data/test/unit/gateways/moneris_usa_test.rb +183 -0
- data/test/unit/gateways/net_registry_test.rb +416 -0
- data/test/unit/gateways/netbilling_test.rb +54 -0
- data/test/unit/gateways/ogone_test.rb +256 -0
- data/test/unit/gateways/pay_junction_test.rb +123 -0
- data/test/unit/gateways/pay_secure_test.rb +71 -0
- data/test/unit/gateways/payflow_express_test.rb +173 -0
- data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
- data/test/unit/gateways/payflow_test.rb +305 -0
- data/test/unit/gateways/payflow_uk_test.rb +30 -0
- data/test/unit/gateways/payment_express_test.rb +195 -0
- data/test/unit/gateways/paypal_express_test.rb +382 -0
- data/test/unit/gateways/paypal_test.rb +569 -0
- data/test/unit/gateways/plugnpay_test.rb +86 -0
- data/test/unit/gateways/psigate_test.rb +169 -0
- data/test/unit/gateways/psl_card_test.rb +64 -0
- data/test/unit/gateways/quickpay_test.rb +112 -0
- data/test/unit/gateways/realex_test.rb +151 -0
- data/test/unit/gateways/sage_bankcard_test.rb +162 -0
- data/test/unit/gateways/sage_pay_test.rb +139 -0
- data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
- data/test/unit/gateways/secure_pay_au_test.rb +207 -0
- data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
- data/test/unit/gateways/secure_pay_test.rb +87 -0
- data/test/unit/gateways/skip_jack_test.rb +133 -0
- data/test/unit/gateways/trans_first_test.rb +112 -0
- data/test/unit/gateways/trust_commerce_test.rb +90 -0
- data/test/unit/gateways/usa_epay_test.rb +128 -0
- data/test/unit/gateways/verifi_test.rb +96 -0
- data/test/unit/gateways/viaklix_test.rb +78 -0
- data/test/unit/gateways/wirecard_test.rb +250 -0
- data/test/unit/generators/test_gateway_generator.rb +46 -0
- data/test/unit/generators/test_generator_helper.rb +20 -0
- data/test/unit/generators/test_integration_generator.rb +53 -0
- data/test/unit/integrations/action_view_helper_test.rb +50 -0
- data/test/unit/integrations/bogus_module_test.rb +20 -0
- data/test/unit/integrations/chronopay_module_test.rb +13 -0
- data/test/unit/integrations/gestpay_module_test.rb +14 -0
- data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
- data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
- data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
- data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
- data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
- data/test/unit/integrations/helpers/paypal_helper_test.rb +171 -0
- data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
- data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
- data/test/unit/integrations/hi_trust_module_test.rb +13 -0
- data/test/unit/integrations/nochex_module_test.rb +13 -0
- data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
- data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
- data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
- data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
- data/test/unit/integrations/notifications/notification_test.rb +54 -0
- data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
- data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
- data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
- data/test/unit/integrations/paypal_module_test.rb +28 -0
- data/test/unit/integrations/quickpay_module_test.rb +9 -0
- data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
- data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
- data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
- data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
- data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
- data/test/unit/integrations/returns/return_test.rb +11 -0
- data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
- data/test/unit/integrations/two_checkout_module_test.rb +13 -0
- data/test/unit/post_data_test.rb +55 -0
- data/test/unit/posts_data_test.rb +48 -0
- data/test/unit/response_test.rb +28 -0
- data/test/unit/utils_test.rb +7 -0
- data/test/unit/validateable_test.rb +60 -0
- metadata +396 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePaySecureTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = PaySecureGateway.new(fixtures(:pay_secure))
|
|
7
|
+
|
|
8
|
+
@credit_card = credit_card('4000100011112224')
|
|
9
|
+
@options = {
|
|
10
|
+
:billing_address => address,
|
|
11
|
+
:order_id => generate_unique_id
|
|
12
|
+
}
|
|
13
|
+
@amount = 100
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_successful_purchase
|
|
17
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
18
|
+
assert_success response
|
|
19
|
+
assert_equal PaySecureGateway::SUCCESS_MESSAGE, response.message
|
|
20
|
+
assert response.test?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_unsuccessful_purchase
|
|
24
|
+
@credit_card.year = '2006'
|
|
25
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
26
|
+
assert_equal 'Declined, card expired', response.message
|
|
27
|
+
assert_failure response
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_invalid_login
|
|
31
|
+
gateway = PaySecureGateway.new(
|
|
32
|
+
:login => '',
|
|
33
|
+
:password => ''
|
|
34
|
+
)
|
|
35
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
36
|
+
assert_equal "MissingField: 'MERCHANT_ID'", response.message
|
|
37
|
+
assert_failure response
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePayflowTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = PayflowExpressGateway.new(fixtures(:payflow))
|
|
8
|
+
|
|
9
|
+
@options = { :billing_address => {
|
|
10
|
+
:name => 'Cody Fauser',
|
|
11
|
+
:address1 => '1234 Shady Brook Lane',
|
|
12
|
+
:city => 'Ottawa',
|
|
13
|
+
:state => 'ON',
|
|
14
|
+
:country => 'CA',
|
|
15
|
+
:zip => '90210',
|
|
16
|
+
:phone => '555-555-5555'
|
|
17
|
+
},
|
|
18
|
+
:email => 'cody@example.com'
|
|
19
|
+
}
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Only works with a Payflow 2.0 account or by requesting the addition
|
|
23
|
+
# of Express checkout to an existing Payflow Pro account. This can be done
|
|
24
|
+
# by contacting Payflow sales. The PayPal account used must be a business
|
|
25
|
+
# account and the Payflow Pro account must be in Live mode in order for
|
|
26
|
+
# the tests to work correctly
|
|
27
|
+
def test_set_express_authorization
|
|
28
|
+
@options.update(
|
|
29
|
+
:return_url => 'http://example.com',
|
|
30
|
+
:cancel_return_url => 'http://example.com',
|
|
31
|
+
:email => 'Buyer1@paypal.com'
|
|
32
|
+
)
|
|
33
|
+
response = @gateway.setup_authorization(500, @options)
|
|
34
|
+
assert response.success?
|
|
35
|
+
assert response.test?
|
|
36
|
+
assert !response.params['token'].blank?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_set_express_purchase
|
|
40
|
+
@options.update(
|
|
41
|
+
:return_url => 'http://example.com',
|
|
42
|
+
:cancel_return_url => 'http://example.com',
|
|
43
|
+
:email => 'Buyer1@paypal.com'
|
|
44
|
+
)
|
|
45
|
+
response = @gateway.setup_purchase(500, @options)
|
|
46
|
+
assert response.success?
|
|
47
|
+
assert response.test?
|
|
48
|
+
assert !response.params['token'].blank?
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePayflowTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
ActiveMerchant::Billing::Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = PayflowGateway.new(fixtures(:payflow))
|
|
8
|
+
|
|
9
|
+
@credit_card = credit_card('5105105105105100',
|
|
10
|
+
:type => 'master'
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
@options = { :billing_address => address,
|
|
14
|
+
:email => 'cody@example.com',
|
|
15
|
+
:customer => 'codyexample'
|
|
16
|
+
}
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_successful_purchase
|
|
20
|
+
assert response = @gateway.purchase(100000, @credit_card, @options)
|
|
21
|
+
assert_equal "Approved", response.message
|
|
22
|
+
assert_success response
|
|
23
|
+
assert response.test?
|
|
24
|
+
assert_not_nil response.authorization
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_declined_purchase
|
|
28
|
+
assert response = @gateway.purchase(210000, @credit_card, @options)
|
|
29
|
+
assert_equal 'Declined', response.message
|
|
30
|
+
assert_failure response
|
|
31
|
+
assert response.test?
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_successful_authorization
|
|
35
|
+
assert response = @gateway.authorize(100, @credit_card, @options)
|
|
36
|
+
assert_equal "Approved", response.message
|
|
37
|
+
assert_success response
|
|
38
|
+
assert response.test?
|
|
39
|
+
assert_not_nil response.authorization
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_authorize_and_capture
|
|
43
|
+
assert auth = @gateway.authorize(100, @credit_card, @options)
|
|
44
|
+
assert_success auth
|
|
45
|
+
assert_equal 'Approved', auth.message
|
|
46
|
+
assert auth.authorization
|
|
47
|
+
assert capture = @gateway.capture(100, auth.authorization)
|
|
48
|
+
assert_success capture
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_authorize_and_partial_capture
|
|
52
|
+
assert auth = @gateway.authorize(100 * 2, @credit_card, @options)
|
|
53
|
+
assert_success auth
|
|
54
|
+
assert_equal 'Approved', auth.message
|
|
55
|
+
assert auth.authorization
|
|
56
|
+
|
|
57
|
+
assert capture = @gateway.capture(100, auth.authorization)
|
|
58
|
+
assert_success capture
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_failed_capture
|
|
62
|
+
assert response = @gateway.capture(100, '999')
|
|
63
|
+
assert_failure response
|
|
64
|
+
assert_equal 'Invalid tender', response.message
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_authorize_and_void
|
|
68
|
+
assert auth = @gateway.authorize(100, @credit_card, @options)
|
|
69
|
+
assert_success auth
|
|
70
|
+
assert_equal 'Approved', auth.message
|
|
71
|
+
assert auth.authorization
|
|
72
|
+
assert void = @gateway.void(auth.authorization)
|
|
73
|
+
assert_success void
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_invalid_login
|
|
77
|
+
gateway = PayflowGateway.new(
|
|
78
|
+
:login => '',
|
|
79
|
+
:password => ''
|
|
80
|
+
)
|
|
81
|
+
assert response = gateway.purchase(100, @credit_card, @options)
|
|
82
|
+
assert_equal 'Invalid vendor account', response.message
|
|
83
|
+
assert_failure response
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_duplicate_request_id
|
|
87
|
+
request_id = Digest::MD5.hexdigest(rand.to_s)
|
|
88
|
+
@gateway.expects(:generate_unique_id).times(2).returns(request_id)
|
|
89
|
+
|
|
90
|
+
response1 = @gateway.purchase(100, @credit_card, @options)
|
|
91
|
+
assert response1.success?
|
|
92
|
+
assert_nil response1.params['duplicate']
|
|
93
|
+
|
|
94
|
+
response2 = @gateway.purchase(100, @credit_card, @options)
|
|
95
|
+
assert response2.success?
|
|
96
|
+
assert response2.params['duplicate']
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_create_recurring_profile
|
|
100
|
+
response = @gateway.recurring(1000, @credit_card, :periodicity => :monthly)
|
|
101
|
+
assert_success response
|
|
102
|
+
assert !response.params['profile_id'].blank?
|
|
103
|
+
assert response.test?
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_create_recurring_profile_with_invalid_date
|
|
107
|
+
response = @gateway.recurring(1000, @credit_card, :periodicity => :monthly, :starting_at => Time.now)
|
|
108
|
+
assert_failure response
|
|
109
|
+
assert_equal 'Field format error: Start or next payment date must be a valid future date', response.message
|
|
110
|
+
assert response.params['profile_id'].blank?
|
|
111
|
+
assert response.test?
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_create_and_cancel_recurring_profile
|
|
115
|
+
response = @gateway.recurring(1000, @credit_card, :periodicity => :monthly)
|
|
116
|
+
assert_success response
|
|
117
|
+
assert !response.params['profile_id'].blank?
|
|
118
|
+
assert response.test?
|
|
119
|
+
|
|
120
|
+
response = @gateway.cancel_recurring(response.params['profile_id'])
|
|
121
|
+
assert_success response
|
|
122
|
+
assert response.test?
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def test_full_feature_set_for_recurring_profiles
|
|
126
|
+
# Test add
|
|
127
|
+
@options.update(
|
|
128
|
+
:periodicity => :weekly,
|
|
129
|
+
:payments => '12',
|
|
130
|
+
:starting_at => Time.now + 1.day,
|
|
131
|
+
:comment => "Test Profile"
|
|
132
|
+
)
|
|
133
|
+
response = @gateway.recurring(100, @credit_card, @options)
|
|
134
|
+
assert_equal "Approved", response.params['message']
|
|
135
|
+
assert_equal "0", response.params['result']
|
|
136
|
+
assert_success response
|
|
137
|
+
assert response.test?
|
|
138
|
+
assert !response.params['profile_id'].blank?
|
|
139
|
+
@recurring_profile_id = response.params['profile_id']
|
|
140
|
+
|
|
141
|
+
# Test modify
|
|
142
|
+
@options.update(
|
|
143
|
+
:periodicity => :monthly,
|
|
144
|
+
:starting_at => Time.now + 1.day,
|
|
145
|
+
:payments => '4',
|
|
146
|
+
:profile_id => @recurring_profile_id
|
|
147
|
+
)
|
|
148
|
+
response = @gateway.recurring(400, @credit_card, @options)
|
|
149
|
+
assert_equal "Approved", response.params['message']
|
|
150
|
+
assert_equal "0", response.params['result']
|
|
151
|
+
assert_success response
|
|
152
|
+
assert response.test?
|
|
153
|
+
|
|
154
|
+
# Test inquiry
|
|
155
|
+
response = @gateway.recurring_inquiry(@recurring_profile_id)
|
|
156
|
+
assert_equal "0", response.params['result']
|
|
157
|
+
assert_success response
|
|
158
|
+
assert response.test?
|
|
159
|
+
|
|
160
|
+
# Test payment history inquiry
|
|
161
|
+
response = @gateway.recurring_inquiry(@recurring_profile_id, :history => true)
|
|
162
|
+
assert_equal '0', response.params['result']
|
|
163
|
+
assert_success response
|
|
164
|
+
assert response.test?
|
|
165
|
+
|
|
166
|
+
# Test cancel
|
|
167
|
+
response = @gateway.cancel_recurring(@recurring_profile_id)
|
|
168
|
+
assert_equal "Approved", response.params['message']
|
|
169
|
+
assert_equal "0", response.params['result']
|
|
170
|
+
assert_success response
|
|
171
|
+
assert response.test?
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# Note that this test will only work if you enable reference transactions!!
|
|
175
|
+
def test_reference_purchase
|
|
176
|
+
assert response = @gateway.purchase(10000, @credit_card, @options)
|
|
177
|
+
assert_equal "Approved", response.message
|
|
178
|
+
assert_success response
|
|
179
|
+
assert response.test?
|
|
180
|
+
assert_not_nil pn_ref = response.authorization
|
|
181
|
+
|
|
182
|
+
# now another purchase, by reference
|
|
183
|
+
assert response = @gateway.purchase(10000, pn_ref)
|
|
184
|
+
assert_equal "Approved", response.message
|
|
185
|
+
assert_success response
|
|
186
|
+
assert response.test?
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def test_recurring_with_initial_authorization
|
|
190
|
+
response = @gateway.recurring(1000, @credit_card,
|
|
191
|
+
:periodicity => :monthly,
|
|
192
|
+
:initial_transaction => {
|
|
193
|
+
:type => :authorization
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
assert_success response
|
|
198
|
+
assert !response.params['profile_id'].blank?
|
|
199
|
+
assert response.test?
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
def test_recurring_with_initial_authorization
|
|
203
|
+
response = @gateway.recurring(1000, @credit_card,
|
|
204
|
+
:periodicity => :monthly,
|
|
205
|
+
:initial_transaction => {
|
|
206
|
+
:type => :purchase,
|
|
207
|
+
:amount => 500
|
|
208
|
+
}
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
assert_success response
|
|
212
|
+
assert !response.params['profile_id'].blank?
|
|
213
|
+
assert response.test?
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
def test_purchase_and_referenced_credit
|
|
217
|
+
amount = 100
|
|
218
|
+
|
|
219
|
+
assert purchase = @gateway.purchase(amount, @credit_card, @options)
|
|
220
|
+
assert_success purchase
|
|
221
|
+
assert_equal 'Approved', purchase.message
|
|
222
|
+
assert !purchase.authorization.blank?
|
|
223
|
+
|
|
224
|
+
assert credit = @gateway.credit(amount, purchase.authorization)
|
|
225
|
+
assert_success credit
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# The default security setting for Payflow Pro accounts is Allow
|
|
229
|
+
# non-referenced credits = No.
|
|
230
|
+
#
|
|
231
|
+
# Non-referenced credits will fail with Result code 117 (failed the security
|
|
232
|
+
# check) unless Allow non-referenced credits = Yes in PayPal manager
|
|
233
|
+
def test_purchase_and_non_referenced_credit
|
|
234
|
+
assert credit = @gateway.credit(100, @credit_card, @options)
|
|
235
|
+
assert_success credit
|
|
236
|
+
end
|
|
237
|
+
end
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePayflowUkTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
ActiveMerchant::Billing::Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
# The default partner is PayPalUk
|
|
8
|
+
@gateway = PayflowUkGateway.new(fixtures(:payflow_uk))
|
|
9
|
+
|
|
10
|
+
@creditcard = CreditCard.new(
|
|
11
|
+
:number => '5105105105105100',
|
|
12
|
+
:month => 11,
|
|
13
|
+
:year => 2009,
|
|
14
|
+
:first_name => 'Cody',
|
|
15
|
+
:last_name => 'Fauser',
|
|
16
|
+
:verification_value => '000',
|
|
17
|
+
:type => 'master'
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@solo = CreditCard.new(
|
|
21
|
+
:type => "solo",
|
|
22
|
+
:number => "6334900000000005",
|
|
23
|
+
:month => Time.now.month,
|
|
24
|
+
:year => Time.now.year + 1,
|
|
25
|
+
:first_name => "Test",
|
|
26
|
+
:last_name => "Mensch",
|
|
27
|
+
:issue_number => '01'
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
@switch = CreditCard.new(
|
|
31
|
+
:type => "switch",
|
|
32
|
+
:number => "5641820000000005",
|
|
33
|
+
:verification_value => "000",
|
|
34
|
+
:month => 1,
|
|
35
|
+
:year => 2008,
|
|
36
|
+
:first_name => 'Fred',
|
|
37
|
+
:last_name => 'Brooks'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
@options = {
|
|
41
|
+
:billing_address => {
|
|
42
|
+
:name => 'Cody Fauser',
|
|
43
|
+
:address1 => '1234 Shady Brook Lane',
|
|
44
|
+
:city => 'Ottawa',
|
|
45
|
+
:state => 'ON',
|
|
46
|
+
:country => 'CA',
|
|
47
|
+
:zip => '90210',
|
|
48
|
+
:phone => '555-555-5555'
|
|
49
|
+
},
|
|
50
|
+
:email => 'cody@example.com'
|
|
51
|
+
}
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_successful_purchase
|
|
55
|
+
assert response = @gateway.purchase(100000, @creditcard, @options)
|
|
56
|
+
assert_equal "Approved", response.message
|
|
57
|
+
assert_success response
|
|
58
|
+
assert response.test?
|
|
59
|
+
assert_not_nil response.authorization
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_declined_purchase
|
|
63
|
+
assert response = @gateway.purchase(210000, @creditcard, @options)
|
|
64
|
+
assert_equal 'Failed merchant rule check', response.message
|
|
65
|
+
assert_failure response
|
|
66
|
+
assert response.test?
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_successful_purchase_solo
|
|
70
|
+
assert response = @gateway.purchase(100000, @solo, @options)
|
|
71
|
+
assert_equal "Approved", response.message
|
|
72
|
+
assert_success response
|
|
73
|
+
assert response.test?
|
|
74
|
+
assert_not_nil response.authorization
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_no_card_issue_or_card_start_with_switch
|
|
78
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
79
|
+
assert_failure response
|
|
80
|
+
|
|
81
|
+
assert_equal "Field format error: CARDSTART or CARDISSUE must be present", response.message
|
|
82
|
+
assert_failure response
|
|
83
|
+
assert response.test?
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_successful_purchase_switch_with_issue_number
|
|
87
|
+
@switch.issue_number = '01'
|
|
88
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
89
|
+
assert_equal "Approved", response.message
|
|
90
|
+
assert_success response
|
|
91
|
+
assert response.test?
|
|
92
|
+
assert_not_nil response.authorization
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_successful_purchase_switch_with_start_date
|
|
96
|
+
@switch.start_month = 12
|
|
97
|
+
@switch.start_year = 1999
|
|
98
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
99
|
+
assert_equal "Approved", response.message
|
|
100
|
+
assert_success response
|
|
101
|
+
assert response.test?
|
|
102
|
+
assert_not_nil response.authorization
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def test_successful_purchase_switch_with_start_date_and_issue_number
|
|
106
|
+
@switch.issue_number = '05'
|
|
107
|
+
@switch.start_month = 12
|
|
108
|
+
@switch.start_year = 1999
|
|
109
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
110
|
+
assert_equal "Approved", response.message
|
|
111
|
+
assert_success response
|
|
112
|
+
assert response.test?
|
|
113
|
+
assert_not_nil response.authorization
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_successful_authorization
|
|
117
|
+
assert response = @gateway.authorize(100, @creditcard, @options)
|
|
118
|
+
assert_equal "Approved", response.message
|
|
119
|
+
assert_success response
|
|
120
|
+
assert response.test?
|
|
121
|
+
assert_not_nil response.authorization
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def test_authorize_and_capture
|
|
125
|
+
amount = 100
|
|
126
|
+
assert auth = @gateway.authorize(amount, @creditcard, @options)
|
|
127
|
+
assert_success auth
|
|
128
|
+
assert_equal 'Approved', auth.message
|
|
129
|
+
assert auth.authorization
|
|
130
|
+
assert capture = @gateway.capture(amount, auth.authorization)
|
|
131
|
+
assert_success capture
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def test_failed_capture
|
|
135
|
+
assert response = @gateway.capture(100, '999')
|
|
136
|
+
assert_failure response
|
|
137
|
+
assert_equal 'Invalid tender', response.message
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def test_authorize_and_void
|
|
141
|
+
assert auth = @gateway.authorize(100, @creditcard, @options)
|
|
142
|
+
assert_success auth
|
|
143
|
+
assert_equal 'Approved', auth.message
|
|
144
|
+
assert auth.authorization
|
|
145
|
+
assert void = @gateway.void(auth.authorization)
|
|
146
|
+
assert_success void
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def test_invalid_login
|
|
150
|
+
gateway = PayflowGateway.new(
|
|
151
|
+
:login => '',
|
|
152
|
+
:password => ''
|
|
153
|
+
)
|
|
154
|
+
assert response = gateway.purchase(100, @creditcard, @options)
|
|
155
|
+
assert_equal 'Invalid vendor account', response.message
|
|
156
|
+
assert_failure response
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def test_duplicate_request_id
|
|
160
|
+
gateway = PayflowUkGateway.new(
|
|
161
|
+
:login => @login,
|
|
162
|
+
:password => @password
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
request_id = Digest::SHA1.hexdigest(rand.to_s).slice(0,32)
|
|
166
|
+
gateway.expects(:generate_unique_id).times(2).returns(request_id)
|
|
167
|
+
|
|
168
|
+
response1 = gateway.purchase(100, @creditcard, @options)
|
|
169
|
+
assert_nil response1.params['duplicate']
|
|
170
|
+
response2 = gateway.purchase(100, @creditcard, @options)
|
|
171
|
+
assert response2.params['duplicate']
|
|
172
|
+
end
|
|
173
|
+
end
|