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,33 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class CVVResultTest < Test::Unit::TestCase
|
|
4
|
+
def test_nil_data
|
|
5
|
+
result = CVVResult.new(nil)
|
|
6
|
+
assert_nil result.code
|
|
7
|
+
assert_nil result.message
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_blank_data
|
|
11
|
+
result = CVVResult.new('')
|
|
12
|
+
assert_nil result.code
|
|
13
|
+
assert_nil result.message
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_successful_match
|
|
17
|
+
result = CVVResult.new('M')
|
|
18
|
+
assert_equal 'M', result.code
|
|
19
|
+
assert_equal CVVResult.messages['M'], result.message
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_failed_match
|
|
23
|
+
result = CVVResult.new('N')
|
|
24
|
+
assert_equal 'N', result.code
|
|
25
|
+
assert_equal CVVResult.messages['N'], result.message
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_to_hash
|
|
29
|
+
result = CVVResult.new('M').to_hash
|
|
30
|
+
assert_equal 'M', result['code']
|
|
31
|
+
assert_equal CVVResult.messages['M'], result['message']
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ExpiryDateTest < Test::Unit::TestCase
|
|
4
|
+
def test_should_be_expired
|
|
5
|
+
last_month = 2.months.ago
|
|
6
|
+
date = CreditCard::ExpiryDate.new(last_month.month, last_month.year)
|
|
7
|
+
assert date.expired?
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_today_should_not_be_expired
|
|
11
|
+
today = Time.now.utc
|
|
12
|
+
date = CreditCard::ExpiryDate.new(today.month, today.year)
|
|
13
|
+
assert_false date.expired?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_dates_in_the_future_should_not_be_expired
|
|
17
|
+
next_month = 1.month.from_now
|
|
18
|
+
date = CreditCard::ExpiryDate.new(next_month.month, next_month.year)
|
|
19
|
+
assert_false date.expired?
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_invalid_date
|
|
23
|
+
expiry = CreditCard::ExpiryDate.new(13, 2009)
|
|
24
|
+
assert_equal Time.at(0).utc, expiry.expiration
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_month_and_year_coerced_to_integer
|
|
28
|
+
expiry = CreditCard::ExpiryDate.new("13", "2009")
|
|
29
|
+
assert_equal 13, expiry.month
|
|
30
|
+
assert_equal 2009, expiry.year
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,638 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class AuthorizeNetCimTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@gateway = AuthorizeNetCimGateway.new(
|
|
6
|
+
:login => 'X',
|
|
7
|
+
:password => 'Y'
|
|
8
|
+
)
|
|
9
|
+
@amount = 100
|
|
10
|
+
@credit_card = credit_card
|
|
11
|
+
@address = address
|
|
12
|
+
@customer_profile_id = '3187'
|
|
13
|
+
@customer_payment_profile_id = '7813'
|
|
14
|
+
@customer_address_id = '4321'
|
|
15
|
+
@payment = {
|
|
16
|
+
:credit_card => @credit_card
|
|
17
|
+
}
|
|
18
|
+
@profile = {
|
|
19
|
+
:merchant_customer_id => 'Up to 20 chars', # Optional
|
|
20
|
+
:description => 'Up to 255 Characters', # Optional
|
|
21
|
+
:email => 'Up to 255 Characters', # Optional
|
|
22
|
+
:payment_profiles => { # Optional
|
|
23
|
+
:customer_type => 'individual or business', # Optional
|
|
24
|
+
:bill_to => @address,
|
|
25
|
+
:payment => @payment
|
|
26
|
+
},
|
|
27
|
+
:ship_to_list => {
|
|
28
|
+
:first_name => 'John',
|
|
29
|
+
:last_name => 'Doe',
|
|
30
|
+
:company => 'Widgets, Inc',
|
|
31
|
+
:address1 => '1234 Fake Street',
|
|
32
|
+
:city => 'Anytown',
|
|
33
|
+
:state => 'MD',
|
|
34
|
+
:zip => '12345',
|
|
35
|
+
:country => 'USA',
|
|
36
|
+
:phone_number => '(123)123-1234', # Optional - Up to 25 digits (no letters)
|
|
37
|
+
:fax_number => '(123)123-1234' # Optional - Up to 25 digits (no letters)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
@options = {
|
|
41
|
+
:ref_id => '1234', # Optional
|
|
42
|
+
:profile => @profile
|
|
43
|
+
}
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_expdate_formatting
|
|
47
|
+
assert_equal '2009-09', @gateway.send(:expdate, credit_card('4111111111111111', :month => "9", :year => "2009"))
|
|
48
|
+
assert_equal '2013-11', @gateway.send(:expdate, credit_card('4111111111111111', :month => "11", :year => "2013"))
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_should_create_customer_profile_request
|
|
52
|
+
@gateway.expects(:ssl_post).returns(successful_create_customer_profile_response)
|
|
53
|
+
|
|
54
|
+
assert response = @gateway.create_customer_profile(@options)
|
|
55
|
+
assert_instance_of Response, response
|
|
56
|
+
assert_success response
|
|
57
|
+
assert_equal @customer_profile_id, response.authorization
|
|
58
|
+
assert_equal "Successful.", response.message
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_should_create_customer_payment_profile_request
|
|
62
|
+
@gateway.expects(:ssl_post).returns(successful_create_customer_payment_profile_response)
|
|
63
|
+
|
|
64
|
+
assert response = @gateway.create_customer_payment_profile(
|
|
65
|
+
:customer_profile_id => @customer_profile_id,
|
|
66
|
+
:payment_profile => {
|
|
67
|
+
:customer_type => 'individual',
|
|
68
|
+
:bill_to => @address,
|
|
69
|
+
:payment => @payment
|
|
70
|
+
},
|
|
71
|
+
:validation_mode => :test
|
|
72
|
+
)
|
|
73
|
+
assert_instance_of Response, response
|
|
74
|
+
assert_success response
|
|
75
|
+
assert_equal @customer_payment_profile_id, response.params['customer_payment_profile_id']
|
|
76
|
+
assert_equal "This output is only present if the ValidationMode input parameter is passed with a value of testMode or liveMode", response.params['validation_direct_response']
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_should_create_customer_shipping_address_request
|
|
80
|
+
@gateway.expects(:ssl_post).returns(successful_create_customer_shipping_address_response)
|
|
81
|
+
|
|
82
|
+
assert response = @gateway.create_customer_shipping_address(
|
|
83
|
+
:customer_profile_id => @customer_profile_id,
|
|
84
|
+
:address => {
|
|
85
|
+
:first_name => 'John',
|
|
86
|
+
:last_name => 'Doe',
|
|
87
|
+
:company => 'Widgets, Inc',
|
|
88
|
+
:address1 => '1234 Fake Street',
|
|
89
|
+
:city => 'Anytown',
|
|
90
|
+
:state => 'MD',
|
|
91
|
+
:country => 'USA',
|
|
92
|
+
:phone_number => '(123)123-1234',
|
|
93
|
+
:fax_number => '(123)123-1234'
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
assert_instance_of Response, response
|
|
97
|
+
assert_success response
|
|
98
|
+
assert_nil response.authorization
|
|
99
|
+
assert_equal 'customerAddressId', response.params['customer_address_id']
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_should_create_customer_profile_transaction_auth_only_and_then_capture_only_requests
|
|
103
|
+
@gateway.expects(:ssl_post).returns(successful_create_customer_profile_transaction_response(:auth_only))
|
|
104
|
+
|
|
105
|
+
assert response = @gateway.create_customer_profile_transaction(
|
|
106
|
+
:transaction => {
|
|
107
|
+
:customer_profile_id => @customer_profile_id,
|
|
108
|
+
:customer_payment_profile_id => @customer_payment_profile_id,
|
|
109
|
+
:type => :auth_only,
|
|
110
|
+
:amount => @amount
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
assert_instance_of Response, response
|
|
114
|
+
assert_success response
|
|
115
|
+
assert_nil response.authorization
|
|
116
|
+
assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
|
|
117
|
+
assert_equal 'auth_only', response.params['direct_response']['transaction_type']
|
|
118
|
+
assert_equal 'Gw4NGI', approval_code = response.params['direct_response']['approval_code']
|
|
119
|
+
|
|
120
|
+
@gateway.expects(:ssl_post).returns(successful_create_customer_profile_transaction_response(:capture_only))
|
|
121
|
+
|
|
122
|
+
assert response = @gateway.create_customer_profile_transaction(
|
|
123
|
+
:transaction => {
|
|
124
|
+
:customer_profile_id => @customer_profile_id,
|
|
125
|
+
:customer_payment_profile_id => @customer_payment_profile_id,
|
|
126
|
+
:type => :capture_only,
|
|
127
|
+
:amount => @amount,
|
|
128
|
+
:approval_code => approval_code
|
|
129
|
+
}
|
|
130
|
+
)
|
|
131
|
+
assert_instance_of Response, response
|
|
132
|
+
assert_success response
|
|
133
|
+
assert_nil response.authorization
|
|
134
|
+
assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def test_should_create_customer_profile_transaction_auth_capture_request
|
|
138
|
+
@gateway.expects(:ssl_post).returns(successful_create_customer_profile_transaction_response(:auth_capture))
|
|
139
|
+
|
|
140
|
+
assert response = @gateway.create_customer_profile_transaction(
|
|
141
|
+
:transaction => {
|
|
142
|
+
:customer_profile_id => @customer_profile_id,
|
|
143
|
+
:customer_payment_profile_id => @customer_payment_profile_id,
|
|
144
|
+
:type => :auth_capture,
|
|
145
|
+
:order => {
|
|
146
|
+
:invoice_number => '1234',
|
|
147
|
+
:description => 'Test Order Description',
|
|
148
|
+
:purchase_order_number => '4321'
|
|
149
|
+
},
|
|
150
|
+
:amount => @amount
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
assert_instance_of Response, response
|
|
154
|
+
assert_success response
|
|
155
|
+
assert_nil response.authorization
|
|
156
|
+
assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def test_should_delete_customer_profile_request
|
|
160
|
+
@gateway.expects(:ssl_post).returns(successful_delete_customer_profile_response)
|
|
161
|
+
|
|
162
|
+
assert response = @gateway.delete_customer_profile(:customer_profile_id => @customer_profile_id)
|
|
163
|
+
assert_instance_of Response, response
|
|
164
|
+
assert_success response
|
|
165
|
+
assert_equal @customer_profile_id, response.authorization
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def test_should_delete_customer_payment_profile_request
|
|
169
|
+
@gateway.expects(:ssl_post).returns(successful_delete_customer_payment_profile_response)
|
|
170
|
+
|
|
171
|
+
assert response = @gateway.delete_customer_payment_profile(:customer_profile_id => @customer_profile_id, :customer_payment_profile_id => @customer_payment_profile_id)
|
|
172
|
+
assert_instance_of Response, response
|
|
173
|
+
assert_success response
|
|
174
|
+
assert_nil response.authorization
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
def test_should_delete_customer_shipping_address_request
|
|
178
|
+
@gateway.expects(:ssl_post).returns(successful_delete_customer_shipping_address_response)
|
|
179
|
+
|
|
180
|
+
assert response = @gateway.delete_customer_shipping_address(:customer_profile_id => @customer_profile_id, :customer_address_id => @customer_address_id)
|
|
181
|
+
assert_instance_of Response, response
|
|
182
|
+
assert_success response
|
|
183
|
+
assert_nil response.authorization
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def test_should_get_customer_profile_request
|
|
187
|
+
@gateway.expects(:ssl_post).returns(successful_get_customer_profile_response)
|
|
188
|
+
|
|
189
|
+
assert response = @gateway.get_customer_profile(:customer_profile_id => @customer_profile_id)
|
|
190
|
+
assert_instance_of Response, response
|
|
191
|
+
assert_success response
|
|
192
|
+
assert_equal @customer_profile_id, response.authorization
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def test_should_get_customer_profile_request_with_multiple_payment_profiles
|
|
196
|
+
@gateway.expects(:ssl_post).returns(successful_get_customer_profile_response_with_multiple_payment_profiles)
|
|
197
|
+
|
|
198
|
+
assert response = @gateway.get_customer_profile(:customer_profile_id => @customer_profile_id)
|
|
199
|
+
assert_instance_of Response, response
|
|
200
|
+
assert_success response
|
|
201
|
+
|
|
202
|
+
assert_equal @customer_profile_id, response.authorization
|
|
203
|
+
assert_equal 2, response.params['profile']['payment_profiles'].size
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def test_should_get_customer_payment_profile_request
|
|
207
|
+
@gateway.expects(:ssl_post).returns(successful_get_customer_payment_profile_response)
|
|
208
|
+
|
|
209
|
+
assert response = @gateway.get_customer_payment_profile(
|
|
210
|
+
:customer_profile_id => @customer_profile_id,
|
|
211
|
+
:customer_payment_profile_id => @customer_payment_profile_id
|
|
212
|
+
)
|
|
213
|
+
assert_instance_of Response, response
|
|
214
|
+
assert_success response
|
|
215
|
+
assert_nil response.authorization
|
|
216
|
+
assert_equal @customer_payment_profile_id, response.params['profile']['payment_profiles']['customer_payment_profile_id']
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def test_should_get_customer_shipping_address_request
|
|
220
|
+
@gateway.expects(:ssl_post).returns(successful_get_customer_shipping_address_response)
|
|
221
|
+
|
|
222
|
+
assert response = @gateway.get_customer_shipping_address(
|
|
223
|
+
:customer_profile_id => @customer_profile_id,
|
|
224
|
+
:customer_address_id => @customer_address_id
|
|
225
|
+
)
|
|
226
|
+
assert_instance_of Response, response
|
|
227
|
+
assert_success response
|
|
228
|
+
assert_nil response.authorization
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def test_should_update_customer_profile_request
|
|
232
|
+
@gateway.expects(:ssl_post).returns(successful_update_customer_profile_response)
|
|
233
|
+
|
|
234
|
+
assert response = @gateway.update_customer_profile(
|
|
235
|
+
:profile => {
|
|
236
|
+
:customer_profile_id => @customer_profile_id,
|
|
237
|
+
:email => 'new email address'
|
|
238
|
+
}
|
|
239
|
+
)
|
|
240
|
+
assert_instance_of Response, response
|
|
241
|
+
assert_success response
|
|
242
|
+
assert_equal @customer_profile_id, response.authorization
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
def test_should_update_customer_payment_profile_request
|
|
246
|
+
@gateway.expects(:ssl_post).returns(successful_update_customer_payment_profile_response)
|
|
247
|
+
|
|
248
|
+
assert response = @gateway.update_customer_payment_profile(
|
|
249
|
+
:customer_profile_id => @customer_profile_id,
|
|
250
|
+
:payment_profile => {
|
|
251
|
+
:customer_payment_profile_id => @customer_payment_profile_id,
|
|
252
|
+
:customer_type => 'business'
|
|
253
|
+
}
|
|
254
|
+
)
|
|
255
|
+
assert_instance_of Response, response
|
|
256
|
+
assert_success response
|
|
257
|
+
assert_nil response.authorization
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
def test_should_update_customer_shipping_address_request
|
|
261
|
+
@gateway.expects(:ssl_post).returns(successful_update_customer_shipping_address_response)
|
|
262
|
+
|
|
263
|
+
assert response = @gateway.update_customer_shipping_address(
|
|
264
|
+
:customer_profile_id => @customer_profile_id,
|
|
265
|
+
:address => {
|
|
266
|
+
:customer_address_id => @customer_address_id,
|
|
267
|
+
:city => 'New City'
|
|
268
|
+
}
|
|
269
|
+
)
|
|
270
|
+
assert_instance_of Response, response
|
|
271
|
+
assert_success response
|
|
272
|
+
assert_nil response.authorization
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
def test_should_validate_customer_payment_profile_request
|
|
276
|
+
@gateway.expects(:ssl_post).returns(successful_validate_customer_payment_profile_response)
|
|
277
|
+
|
|
278
|
+
assert response = @gateway.validate_customer_payment_profile(
|
|
279
|
+
:customer_profile_id => @customer_profile_id,
|
|
280
|
+
:customer_payment_profile_id => @customer_payment_profile_id,
|
|
281
|
+
:customer_address_id => @customer_address_id,
|
|
282
|
+
:validation_mode => :live
|
|
283
|
+
)
|
|
284
|
+
assert_instance_of Response, response
|
|
285
|
+
assert_success response
|
|
286
|
+
assert_nil response.authorization
|
|
287
|
+
assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
private
|
|
291
|
+
|
|
292
|
+
def successful_create_customer_profile_response
|
|
293
|
+
<<-XML
|
|
294
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
295
|
+
<createCustomerProfileResponse
|
|
296
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
297
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
298
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
299
|
+
<refId>refid1</refId>
|
|
300
|
+
<messages>
|
|
301
|
+
<resultCode>Ok</resultCode>
|
|
302
|
+
<message>
|
|
303
|
+
<code>I00001</code>
|
|
304
|
+
<text>Successful.</text>
|
|
305
|
+
</message>
|
|
306
|
+
</messages>
|
|
307
|
+
<customerProfileId>#{@customer_profile_id}</customerProfileId>
|
|
308
|
+
</createCustomerProfileResponse>
|
|
309
|
+
XML
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
def successful_create_customer_payment_profile_response
|
|
313
|
+
<<-XML
|
|
314
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
315
|
+
<createCustomerPaymentProfileResponse
|
|
316
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
317
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
318
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
319
|
+
<refId>refid1</refId>
|
|
320
|
+
<messages>
|
|
321
|
+
<resultCode>Ok</resultCode>
|
|
322
|
+
<message>
|
|
323
|
+
<code>I00001</code>
|
|
324
|
+
<text>Successful.</text>
|
|
325
|
+
</message>
|
|
326
|
+
</messages>
|
|
327
|
+
<customerPaymentProfileId>#{@customer_payment_profile_id}</customerPaymentProfileId>
|
|
328
|
+
<validationDirectResponse>This output is only present if the ValidationMode input parameter is passed with a value of testMode or liveMode</validationDirectResponse>
|
|
329
|
+
</createCustomerPaymentProfileResponse>
|
|
330
|
+
XML
|
|
331
|
+
end
|
|
332
|
+
|
|
333
|
+
def successful_create_customer_shipping_address_response
|
|
334
|
+
<<-XML
|
|
335
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
336
|
+
<createCustomerShippingAddressResponse
|
|
337
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
338
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
339
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
340
|
+
<refId>refid1</refId>
|
|
341
|
+
<messages>
|
|
342
|
+
<resultCode>Ok</resultCode>
|
|
343
|
+
<message>
|
|
344
|
+
<code>I00001</code>
|
|
345
|
+
<text>Successful.</text>
|
|
346
|
+
</message>
|
|
347
|
+
</messages>
|
|
348
|
+
<customerAddressId>customerAddressId</customerAddressId>
|
|
349
|
+
</createCustomerShippingAddressResponse>
|
|
350
|
+
XML
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
def successful_delete_customer_profile_response
|
|
354
|
+
<<-XML
|
|
355
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
356
|
+
<deleteCustomerProfileResponse
|
|
357
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
358
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
359
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
360
|
+
<refId>refid1</refId>
|
|
361
|
+
<messages>
|
|
362
|
+
<resultCode>Ok</resultCode>
|
|
363
|
+
<message>
|
|
364
|
+
<code>I00001</code>
|
|
365
|
+
<text>Successful.</text>
|
|
366
|
+
</message>
|
|
367
|
+
</messages>
|
|
368
|
+
<customerProfileId>#{@customer_profile_id}</customerProfileId>
|
|
369
|
+
</deleteCustomerProfileResponse>
|
|
370
|
+
XML
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
def successful_delete_customer_payment_profile_response
|
|
374
|
+
<<-XML
|
|
375
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
376
|
+
<deleteCustomerPaymentProfileResponse
|
|
377
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
378
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
379
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
380
|
+
<refId>refid1</refId>
|
|
381
|
+
<messages>
|
|
382
|
+
<resultCode>Ok</resultCode>
|
|
383
|
+
<message>
|
|
384
|
+
<code>I00001</code>
|
|
385
|
+
<text>Successful.</text>
|
|
386
|
+
</message>
|
|
387
|
+
</messages>
|
|
388
|
+
</deleteCustomerPaymentProfileResponse>
|
|
389
|
+
XML
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
def successful_delete_customer_shipping_address_response
|
|
393
|
+
<<-XML
|
|
394
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
395
|
+
<deleteCustomerShippingAddressResponse
|
|
396
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
397
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
398
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
399
|
+
<refId>refid1</refId>
|
|
400
|
+
<messages>
|
|
401
|
+
<resultCode>Ok</resultCode>
|
|
402
|
+
<message>
|
|
403
|
+
<code>I00001</code>
|
|
404
|
+
<text>Successful.</text>
|
|
405
|
+
</message>
|
|
406
|
+
</messages>
|
|
407
|
+
</deleteCustomerShippingAddressResponse>
|
|
408
|
+
XML
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
def successful_get_customer_profile_response
|
|
412
|
+
<<-XML
|
|
413
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
414
|
+
<getCustomerProfileResponse
|
|
415
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
416
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
417
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
418
|
+
<refId>refid1</refId>
|
|
419
|
+
<messages>
|
|
420
|
+
<resultCode>Ok</resultCode>
|
|
421
|
+
<message>
|
|
422
|
+
<code>I00001</code>
|
|
423
|
+
<text>Successful.</text>
|
|
424
|
+
</message>
|
|
425
|
+
</messages>
|
|
426
|
+
<customerProfileId>#{@customer_profile_id}</customerProfileId>
|
|
427
|
+
<profile>
|
|
428
|
+
<paymentProfiles>
|
|
429
|
+
<customerPaymentProfileId>123456</customerPaymentProfileId>
|
|
430
|
+
<payment>
|
|
431
|
+
<creditCard>
|
|
432
|
+
<cardNumber>#{@credit_card.number}</cardNumber>
|
|
433
|
+
<expirationDate>#{@gateway.send(:expdate, @credit_card)}</expirationDate>
|
|
434
|
+
</creditCard>
|
|
435
|
+
</payment>
|
|
436
|
+
</paymentProfiles>
|
|
437
|
+
</profile>
|
|
438
|
+
</getCustomerProfileResponse>
|
|
439
|
+
XML
|
|
440
|
+
end
|
|
441
|
+
|
|
442
|
+
def successful_get_customer_profile_response_with_multiple_payment_profiles
|
|
443
|
+
<<-XML
|
|
444
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
445
|
+
<getCustomerProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
446
|
+
<messages>
|
|
447
|
+
<resultCode>Ok</resultCode>
|
|
448
|
+
<message>
|
|
449
|
+
<code>I00001</code>
|
|
450
|
+
<text>Successful.</text>
|
|
451
|
+
</message>
|
|
452
|
+
</messages>
|
|
453
|
+
<profile>
|
|
454
|
+
<merchantCustomerId>Up to 20 chars</merchantCustomerId>
|
|
455
|
+
<description>Up to 255 Characters</description>
|
|
456
|
+
<email>Up to 255 Characters</email>
|
|
457
|
+
<customerProfileId>#{@customer_profile_id}</customerProfileId>
|
|
458
|
+
<paymentProfiles>
|
|
459
|
+
<customerPaymentProfileId>1000</customerPaymentProfileId>
|
|
460
|
+
<payment>
|
|
461
|
+
<creditCard>
|
|
462
|
+
<cardNumber>#{@credit_card.number}</cardNumber>
|
|
463
|
+
<expirationDate>#{@gateway.send(:expdate, @credit_card)}</expirationDate>
|
|
464
|
+
</creditCard>
|
|
465
|
+
</payment>
|
|
466
|
+
</paymentProfiles>
|
|
467
|
+
<paymentProfiles>
|
|
468
|
+
<customerType>individual</customerType>
|
|
469
|
+
<customerPaymentProfileId>1001</customerPaymentProfileId>
|
|
470
|
+
<payment>
|
|
471
|
+
<creditCard>
|
|
472
|
+
<cardNumber>XXXX1234</cardNumber>
|
|
473
|
+
<expirationDate>XXXX</expirationDate>
|
|
474
|
+
</creditCard>
|
|
475
|
+
</payment>
|
|
476
|
+
</paymentProfiles>
|
|
477
|
+
</profile>
|
|
478
|
+
</getCustomerProfileResponse>
|
|
479
|
+
XML
|
|
480
|
+
end
|
|
481
|
+
|
|
482
|
+
def successful_get_customer_payment_profile_response
|
|
483
|
+
<<-XML
|
|
484
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
485
|
+
<getCustomerPaymentProfileResponse
|
|
486
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
487
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
488
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
489
|
+
<refId>refid1</refId>
|
|
490
|
+
<messages>
|
|
491
|
+
<resultCode>Ok</resultCode>
|
|
492
|
+
<message>
|
|
493
|
+
<code>I00001</code>
|
|
494
|
+
<text>Successful.</text>
|
|
495
|
+
</message>
|
|
496
|
+
</messages>
|
|
497
|
+
<profile>
|
|
498
|
+
<paymentProfiles>
|
|
499
|
+
<customerPaymentProfileId>#{@customer_payment_profile_id}</customerPaymentProfileId>
|
|
500
|
+
<payment>
|
|
501
|
+
<creditCard>
|
|
502
|
+
<cardNumber>#{@credit_card.number}</cardNumber>
|
|
503
|
+
<expirationDate>#{@gateway.send(:expdate, @credit_card)}</expirationDate>
|
|
504
|
+
</creditCard>
|
|
505
|
+
</payment>
|
|
506
|
+
</paymentProfiles>
|
|
507
|
+
</profile>
|
|
508
|
+
</getCustomerPaymentProfileResponse>
|
|
509
|
+
XML
|
|
510
|
+
end
|
|
511
|
+
|
|
512
|
+
def successful_get_customer_shipping_address_response
|
|
513
|
+
<<-XML
|
|
514
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
515
|
+
<getCustomerShippingAddressResponse
|
|
516
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
517
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
518
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
519
|
+
<refId>refid1</refId>
|
|
520
|
+
<messages>
|
|
521
|
+
<resultCode>Ok</resultCode>
|
|
522
|
+
<message>
|
|
523
|
+
<code>I00001</code>
|
|
524
|
+
<text>Successful.</text>
|
|
525
|
+
</message>
|
|
526
|
+
</messages>
|
|
527
|
+
<address>
|
|
528
|
+
<customerAddressId>#{@customer_address_id}</customerAddressId>
|
|
529
|
+
</address>
|
|
530
|
+
</getCustomerShippingAddressResponse>
|
|
531
|
+
XML
|
|
532
|
+
end
|
|
533
|
+
|
|
534
|
+
def successful_update_customer_profile_response
|
|
535
|
+
<<-XML
|
|
536
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
537
|
+
<updateCustomerProfileResponse
|
|
538
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
539
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
540
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
541
|
+
<refId>refid1</refId>
|
|
542
|
+
<messages>
|
|
543
|
+
<resultCode>Ok</resultCode>
|
|
544
|
+
<message>
|
|
545
|
+
<code>I00001</code>
|
|
546
|
+
<text>Successful.</text>
|
|
547
|
+
</message>
|
|
548
|
+
</messages>
|
|
549
|
+
<customerProfileId>#{@customer_profile_id}</customerProfileId>
|
|
550
|
+
</updateCustomerProfileResponse>
|
|
551
|
+
XML
|
|
552
|
+
end
|
|
553
|
+
|
|
554
|
+
def successful_update_customer_payment_profile_response
|
|
555
|
+
<<-XML
|
|
556
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
557
|
+
<updateCustomerPaymentProfileResponse
|
|
558
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
559
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
560
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
561
|
+
<refId>refid1</refId>
|
|
562
|
+
<messages>
|
|
563
|
+
<resultCode>Ok</resultCode>
|
|
564
|
+
<message>
|
|
565
|
+
<code>I00001</code>
|
|
566
|
+
<text>Successful.</text>
|
|
567
|
+
</message>
|
|
568
|
+
</messages>
|
|
569
|
+
</updateCustomerPaymentProfileResponse>
|
|
570
|
+
XML
|
|
571
|
+
end
|
|
572
|
+
|
|
573
|
+
def successful_update_customer_shipping_address_response
|
|
574
|
+
<<-XML
|
|
575
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
576
|
+
<updateCustomerShippingAddressResponse
|
|
577
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
578
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
579
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
580
|
+
<refId>refid1</refId>
|
|
581
|
+
<messages>
|
|
582
|
+
<resultCode>Ok</resultCode>
|
|
583
|
+
<message>
|
|
584
|
+
<code>I00001</code>
|
|
585
|
+
<text>Successful.</text>
|
|
586
|
+
</message>
|
|
587
|
+
</messages>
|
|
588
|
+
</updateCustomerShippingAddressResponse>
|
|
589
|
+
XML
|
|
590
|
+
end
|
|
591
|
+
|
|
592
|
+
SUCCESSFUL_DIRECT_RESPONSE = {
|
|
593
|
+
:auth_only => '1,1,1,This transaction has been approved.,Gw4NGI,Y,508223659,,,100.00,CC,auth_only,Up to 20 chars,,,,,,,,,,,Up to 255 Characters,,,,,,,,,,,,,,6E5334C13C78EA078173565FD67318E4,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
|
|
594
|
+
:capture_only => '1,1,1,This transaction has been approved.,,Y,508223660,,,100.00,CC,capture_only,Up to 20 chars,,,,,,,,,,,Up to 255 Characters,,,,,,,,,,,,,,6E5334C13C78EA078173565FD67318E4,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
|
|
595
|
+
:auth_capture => '1,1,1,This transaction has been approved.,d1GENk,Y,508223661,32968c18334f16525227,Store purchase,1.00,CC,auth_capture,,Longbob,Longsen,,,,,,,,,,,,,,,,,,,,,,,269862C030129C1173727CC10B1935ED,P,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
def successful_create_customer_profile_transaction_response(transaction_type)
|
|
599
|
+
<<-XML
|
|
600
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
601
|
+
<createCustomerProfileTransactionResponse
|
|
602
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
603
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
604
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
605
|
+
<refId>refid1</refId>
|
|
606
|
+
<messages>
|
|
607
|
+
<resultCode>Ok</resultCode>
|
|
608
|
+
<message>
|
|
609
|
+
<code>I00001</code>
|
|
610
|
+
<text>Successful.</text>
|
|
611
|
+
</message>
|
|
612
|
+
</messages>
|
|
613
|
+
<directResponse>#{SUCCESSFUL_DIRECT_RESPONSE[transaction_type]}</directResponse>
|
|
614
|
+
</createCustomerProfileTransactionResponse>
|
|
615
|
+
XML
|
|
616
|
+
end
|
|
617
|
+
|
|
618
|
+
def successful_validate_customer_payment_profile_response
|
|
619
|
+
<<-XML
|
|
620
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
621
|
+
<validateCustomerPaymentProfileResponse
|
|
622
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
623
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
624
|
+
xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
|
|
625
|
+
<refId>refid1</refId>
|
|
626
|
+
<messages>
|
|
627
|
+
<resultCode>Ok</resultCode>
|
|
628
|
+
<message>
|
|
629
|
+
<code>I00001</code>
|
|
630
|
+
<text>Successful.</text>
|
|
631
|
+
</message>
|
|
632
|
+
</messages>
|
|
633
|
+
<directResponse>1,1,1,This transaction has been approved.,DEsVh8,Y,508276300,none,Test transaction for ValidateCustomerPaymentProfile.,0.01,CC,auth_only,Up to 20 chars,,,,,,,,,,,Up to 255 Characters,John,Doe,Widgets, Inc,1234 Fake Street,Anytown,MD,12345,USA,0.0000,0.0000,0.0000,TRUE,none,7EB3A44624C0C10FAAE47E276B48BF17,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,</directResponse>
|
|
634
|
+
</validateCustomerPaymentProfileResponse>
|
|
635
|
+
XML
|
|
636
|
+
end
|
|
637
|
+
|
|
638
|
+
end
|