tomriley-active_merchant 1.4.2.3 → 1.4.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +14 -0
- data/CONTRIBUTERS +12 -0
- data/active_merchant.gemspec +3 -2
- data/init.rb +0 -1
- data/lib/active_merchant/billing/credit_card_methods.rb +1 -1
- data/lib/active_merchant/billing/expiry_date.rb +10 -4
- data/lib/active_merchant/billing/gateway.rb +4 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +12 -1
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +2 -1
- data/lib/active_merchant/billing/gateways/bogus.rb +19 -0
- data/lib/active_merchant/billing/gateways/eway.rb +6 -1
- data/lib/active_merchant/billing/gateways/first_pay.rb +172 -0
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
- data/lib/active_merchant/billing/gateways/ogone.rb +259 -0
- data/lib/active_merchant/billing/gateways/paypal.rb +22 -9
- data/lib/active_merchant/billing/gateways/{protx.rb → sage_pay.rb} +45 -12
- data/lib/active_merchant/billing/integrations/nochex/notification.rb +1 -1
- data/lib/active_merchant/billing/response.rb +9 -1
- data/test/fixtures.yml +16 -1
- data/test/remote/gateways/remote_first_pay_test.rb +87 -0
- data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
- data/test/remote/gateways/remote_ogone_test.rb +108 -0
- data/test/remote/gateways/remote_paypal_test.rb +12 -1
- data/test/remote/gateways/remote_protx_three_d_secure_test.rb +259 -0
- data/test/remote/gateways/{remote_protx_test.rb → remote_sage_pay_test.rb} +8 -8
- data/test/unit/credit_card_methods_test.rb +9 -0
- data/test/unit/expiry_date_test.rb +12 -1
- data/test/unit/gateways/bogus_test.rb +31 -0
- data/test/unit/gateways/first_pay_test.rb +125 -0
- data/test/unit/gateways/gateway_test.rb +6 -0
- data/test/unit/gateways/merchant_ware_test.rb +188 -0
- data/test/unit/gateways/ogone_test.rb +256 -0
- data/test/unit/gateways/paypal_test.rb +49 -0
- data/test/unit/gateways/sage_pay_test.rb +183 -0
- data/test/unit/integrations/notifications/nochex_notification_test.rb +1 -1
- data/test/unit/response_test.rb +16 -0
- metadata +16 -5
- data/test/unit/gateways/protx_test.rb +0 -139
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
# Some of the standard tests have been removed at
|
3
|
+
# Some of the standard tests have been removed at SagePay test
|
4
4
|
# server is pants and accepts anything and says Status=OK. (shift)
|
5
5
|
# The tests for American Express will only pass if your account is
|
6
6
|
# American express enabled.
|
7
|
-
class
|
7
|
+
class RemoteSagePayTest < Test::Unit::TestCase
|
8
8
|
# set to true to run the tests in the simulated environment
|
9
|
-
|
9
|
+
SagePayGateway.simulate = false
|
10
10
|
|
11
11
|
def setup
|
12
|
-
@gateway =
|
12
|
+
@gateway = SagePayGateway.new(fixtures(:sage_pay))
|
13
13
|
|
14
14
|
@amex = CreditCard.new(
|
15
15
|
:number => '374200000000004',
|
@@ -148,7 +148,7 @@ class RemoteProtxTest < Test::Unit::TestCase
|
|
148
148
|
def test_successful_purchase_and_void
|
149
149
|
assert purchase = @gateway.purchase(@amount, @mastercard, @options)
|
150
150
|
assert_success purchase
|
151
|
-
|
151
|
+
|
152
152
|
assert void = @gateway.void(purchase.authorization)
|
153
153
|
assert_success void
|
154
154
|
end
|
@@ -199,11 +199,11 @@ class RemoteProtxTest < Test::Unit::TestCase
|
|
199
199
|
assert response.test?
|
200
200
|
assert !response.authorization.blank?
|
201
201
|
end
|
202
|
-
|
202
|
+
|
203
203
|
def test_invalid_login
|
204
|
-
message =
|
204
|
+
message = SagePayGateway.simulate ? 'VSP Simulator cannot find your vendor name. Ensure you have have supplied a Vendor field with your VSP Vendor name assigned to it.' : '3034 : The Vendor or VendorName value is required.'
|
205
205
|
|
206
|
-
gateway =
|
206
|
+
gateway = SagePayGateway.new(
|
207
207
|
:login => ''
|
208
208
|
)
|
209
209
|
assert response = gateway.purchase(@amount, @mastercard, @options)
|
@@ -118,6 +118,15 @@ class CreditCardMethodsTest < Test::Unit::TestCase
|
|
118
118
|
|
119
119
|
# Alternate format
|
120
120
|
assert_equal 'laser', CreditCard.type?('6706950000000000000')
|
121
|
+
|
122
|
+
# Alternate format (16 digits)
|
123
|
+
assert_equal 'laser', CreditCard.type?('6706123456789012')
|
124
|
+
|
125
|
+
# New format (16 digits)
|
126
|
+
assert_equal 'laser', CreditCard.type?('6709123456789012')
|
127
|
+
|
128
|
+
# Ulster bank (Ireland) with 12 digits
|
129
|
+
assert_equal 'laser', CreditCard.type?('677117111234')
|
121
130
|
end
|
122
131
|
|
123
132
|
def test_should_detect_when_an_argument_type_does_not_match_calculated_type
|
@@ -8,7 +8,7 @@ class ExpiryDateTest < Test::Unit::TestCase
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def test_today_should_not_be_expired
|
11
|
-
today = Time.now
|
11
|
+
today = Time.now.utc
|
12
12
|
date = CreditCard::ExpiryDate.new(today.month, today.year)
|
13
13
|
assert_false date.expired?
|
14
14
|
end
|
@@ -18,4 +18,15 @@ class ExpiryDateTest < Test::Unit::TestCase
|
|
18
18
|
date = CreditCard::ExpiryDate.new(next_month.month, next_month.year)
|
19
19
|
assert_false date.expired?
|
20
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
|
21
32
|
end
|
@@ -20,6 +20,33 @@ class BogusTest < Test::Unit::TestCase
|
|
20
20
|
@gateway.purchase(1000, @creditcard)
|
21
21
|
end
|
22
22
|
|
23
|
+
def test_3d_secure_authorize
|
24
|
+
response = @gateway.authorize(1000, credit_card('4'))
|
25
|
+
assert response.three_d_secure?
|
26
|
+
assert_equal BogusGateway::THREE_D_PA_REQ, response.pa_req
|
27
|
+
assert_equal BogusGateway::THREE_D_MD, response.md
|
28
|
+
assert_equal BogusGateway::THREE_D_ACS_URL, response.acs_url
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_3d_secure_purchase
|
32
|
+
response = @gateway.purchase(1000, credit_card('4'))
|
33
|
+
assert response.three_d_secure?
|
34
|
+
assert_equal BogusGateway::THREE_D_PA_REQ, response.pa_req
|
35
|
+
assert_equal BogusGateway::THREE_D_MD, response.md
|
36
|
+
assert_equal BogusGateway::THREE_D_ACS_URL, response.acs_url
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_3d_complete
|
40
|
+
response = @gateway.three_d_complete(BogusGateway::THREE_D_PA_RES, BogusGateway::THREE_D_MD)
|
41
|
+
assert_equal BogusGateway::SUCCESS_MESSAGE, response.message
|
42
|
+
|
43
|
+
response = @gateway.three_d_complete('incorrect PaRes', BogusGateway::THREE_D_MD)
|
44
|
+
assert_equal BogusGateway::FAILURE_MESSAGE, response.message
|
45
|
+
|
46
|
+
response = @gateway.three_d_complete(BogusGateway::THREE_D_PA_RES, 'incorrect MD')
|
47
|
+
assert_equal BogusGateway::FAILURE_MESSAGE, response.message
|
48
|
+
end
|
49
|
+
|
23
50
|
def test_credit
|
24
51
|
@gateway.credit(1000, @response.params["transid"])
|
25
52
|
end
|
@@ -36,6 +63,10 @@ class BogusTest < Test::Unit::TestCase
|
|
36
63
|
@gateway.unstore('1')
|
37
64
|
end
|
38
65
|
|
66
|
+
def test_supports_3d_secure
|
67
|
+
assert @gateway.supports_3d_secure
|
68
|
+
end
|
69
|
+
|
39
70
|
def test_supported_countries
|
40
71
|
assert_equal ['US'], BogusGateway.supported_countries
|
41
72
|
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class FirstPayTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@gateway = FirstPayGateway.new(:login => 'login', :password => 'password')
|
6
|
+
|
7
|
+
@credit_card = credit_card
|
8
|
+
@amount = 100
|
9
|
+
|
10
|
+
@options = {
|
11
|
+
:order_id => '1',
|
12
|
+
:billing_address => address,
|
13
|
+
:description => 'Store Purchase',
|
14
|
+
:ip => '127.0.0.1',
|
15
|
+
:email => 'test@test.com'
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_successful_purchase
|
20
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
21
|
+
|
22
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
23
|
+
assert_success response
|
24
|
+
|
25
|
+
# Replace with authorization number from the successful response
|
26
|
+
assert_equal '57097598', response.authorization
|
27
|
+
assert response.test?
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_failed_purchase
|
31
|
+
@gateway.expects(:ssl_post).returns(failed_purchase_response)
|
32
|
+
|
33
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
34
|
+
assert_failure response
|
35
|
+
assert_equal('DECLINE', response.message)
|
36
|
+
assert response.test?
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_error_on_purchase
|
40
|
+
@gateway.expects(:ssl_post).returns(error_response)
|
41
|
+
|
42
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
43
|
+
assert ! response.success?
|
44
|
+
assert_equal('704-MISSING BASIC DATA TYPE:card, exp, zip, addr, member, amount', response.message)
|
45
|
+
assert response.test?
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_successful_credit
|
49
|
+
@gateway.expects(:ssl_post).returns(successful_credit_response)
|
50
|
+
@options[:credit_card] = @credit_card
|
51
|
+
|
52
|
+
assert response = @gateway.credit(@amount, '123456', @options)
|
53
|
+
assert_success response
|
54
|
+
|
55
|
+
assert_equal '53147613', response.authorization
|
56
|
+
assert response.test?
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_failed_credit
|
60
|
+
@options[:credit_card] = @credit_card
|
61
|
+
@gateway.expects(:ssl_post).returns(failed_credit_response)
|
62
|
+
|
63
|
+
assert response = @gateway.credit(@amount, '123456', @options)
|
64
|
+
assert_failure response
|
65
|
+
assert_equal('PARENT TRANSACTION NOT FOUND', response.message)
|
66
|
+
assert response.test?
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_failed_unlinked_credit
|
70
|
+
assert_raise ArgumentError do
|
71
|
+
@gateway.credit(@amount, @credit_card)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_successful_void
|
76
|
+
@gateway.expects(:ssl_post).returns(successful_void_response)
|
77
|
+
@options[:transactionid] = '123456'
|
78
|
+
|
79
|
+
assert response = @gateway.void(@amount, @credit_card, @options)
|
80
|
+
assert_success response
|
81
|
+
|
82
|
+
assert_equal '53147623', response.authorization
|
83
|
+
assert response.test?
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_failed_void
|
87
|
+
@gateway.expects(:ssl_post).returns(failed_void_response)
|
88
|
+
|
89
|
+
assert response = @gateway.void(@amount, @credit_card, @options)
|
90
|
+
assert_failure response
|
91
|
+
assert_equal('PARENT TRANSACTION NOT FOUND', response.message)
|
92
|
+
assert response.test?
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
private
|
97
|
+
|
98
|
+
def successful_purchase_response
|
99
|
+
"CAPTURED:056708:NA:X:Jun 02 2009:241:NLS:NLS:NLS:57097598:9999:NA:NA:NA:NA:NA:NA:NA"
|
100
|
+
end
|
101
|
+
|
102
|
+
def failed_purchase_response
|
103
|
+
"NOT CAPTURED:DECLINE:NA:NA:Dec 11 2003:278654:NLS:NLS:NLS:53147611:200312111612:NA:NA:NA:NA:NA:NA"
|
104
|
+
end
|
105
|
+
|
106
|
+
def successful_credit_response
|
107
|
+
"CAPTURED:945101216:199641568:NA:Dec 11 2003:278655:NLS:NLS:NLS:53147613:200312111613:NA:NA:NA:NA:NA"
|
108
|
+
end
|
109
|
+
|
110
|
+
def failed_credit_response
|
111
|
+
"NOT CAPTURED:PARENT TRANSACTION NOT FOUND:NA:NA:Dec 11 2003:278614:NLS:NLS:NLS:53147499:200311251526:NA:NA:NA:NA:NA"
|
112
|
+
end
|
113
|
+
|
114
|
+
def successful_void_response
|
115
|
+
"CAPTURED:000000:NA:Y:Dec 11 2003:278659:NLS:NLS:NLS:53147623:200312111628:NA:NA:NA:NA:NA"
|
116
|
+
end
|
117
|
+
|
118
|
+
def failed_void_response
|
119
|
+
"NOT CAPTURED:PARENT TRANSACTION NOT FOUND:NA:NA:Dec 11 2003:278644:NLS:NLS:NLS:53147562:200311251526:NA:NA:NA:NA:NA"
|
120
|
+
end
|
121
|
+
|
122
|
+
def error_response
|
123
|
+
'!ERROR! 704-MISSING BASIC DATA TYPE:card, exp, zip, addr, member, amount'
|
124
|
+
end
|
125
|
+
end
|
@@ -9,6 +9,12 @@ class GatewayTest < Test::Unit::TestCase
|
|
9
9
|
assert_false [:visa, :bogus].all? { |invalid_cardtype| Gateway.supports?(invalid_cardtype) }
|
10
10
|
end
|
11
11
|
|
12
|
+
def test_should_be_able_to_check_for_3d_secure_support
|
13
|
+
assert !Gateway.supports_3d_secure
|
14
|
+
Gateway.supports_3d_secure = true
|
15
|
+
assert Gateway.supports_3d_secure
|
16
|
+
end
|
17
|
+
|
12
18
|
def test_should_gateway_uses_ssl_strict_checking_by_default
|
13
19
|
assert Gateway.ssl_strict
|
14
20
|
end
|
@@ -0,0 +1,188 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class MerchantWareTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@gateway = MerchantWareGateway.new(
|
6
|
+
:login => 'login',
|
7
|
+
:password => 'password',
|
8
|
+
:name => 'name'
|
9
|
+
)
|
10
|
+
|
11
|
+
@credit_card = credit_card
|
12
|
+
@amount = 100
|
13
|
+
|
14
|
+
@options = {
|
15
|
+
:order_id => '1',
|
16
|
+
:billing_address => address
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_successful_authorization
|
21
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
22
|
+
|
23
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
24
|
+
assert_instance_of Response, response
|
25
|
+
assert_success response
|
26
|
+
|
27
|
+
assert_equal '4706382;1', response.authorization
|
28
|
+
assert_equal "APPROVED", response.message
|
29
|
+
assert response.test?
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_soap_fault_during_authorization
|
33
|
+
response_500 = stub(:code => "500", :message => "Internal Server Error", :body => fault_authorization_response)
|
34
|
+
@gateway.expects(:ssl_post).raises(ActiveMerchant::ResponseError.new(response_500))
|
35
|
+
|
36
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
37
|
+
assert_instance_of Response, response
|
38
|
+
assert_failure response
|
39
|
+
assert response.test?
|
40
|
+
|
41
|
+
assert_nil response.authorization
|
42
|
+
assert_equal "Server was unable to process request. ---> strPAN should be at least 13 to at most 19 characters in size. Parameter name: strPAN", response.message
|
43
|
+
assert_equal response_500.code, response.params["http_code"]
|
44
|
+
assert_equal response_500.message, response.params["http_message"]
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_failed_authorization
|
48
|
+
@gateway.expects(:ssl_post).returns(failed_authorization_response)
|
49
|
+
|
50
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
51
|
+
assert_instance_of Response, response
|
52
|
+
assert_failure response
|
53
|
+
assert response.test?
|
54
|
+
|
55
|
+
assert_nil response.authorization
|
56
|
+
assert_equal "transaction type not supported by version", response.message
|
57
|
+
assert_equal "FAILED", response.params["status"]
|
58
|
+
assert_equal "1014", response.params["failure_code"]
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_failed_void
|
62
|
+
@gateway.expects(:ssl_post).returns(failed_void_response)
|
63
|
+
|
64
|
+
assert response = @gateway.void("1")
|
65
|
+
assert_instance_of Response, response
|
66
|
+
assert_failure response
|
67
|
+
assert response.test?
|
68
|
+
|
69
|
+
assert_nil response.authorization
|
70
|
+
assert_equal "decline", response.message
|
71
|
+
assert_equal "DECLINED", response.params["status"]
|
72
|
+
assert_equal "1012", response.params["failure_code"]
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_avs_result
|
76
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
77
|
+
|
78
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
79
|
+
assert_equal 'N', response.avs_result['code']
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_cvv_result
|
83
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
84
|
+
|
85
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
86
|
+
assert_equal 'M', response.cvv_result['code']
|
87
|
+
end
|
88
|
+
|
89
|
+
private
|
90
|
+
|
91
|
+
def successful_authorization_response
|
92
|
+
<<-XML
|
93
|
+
<?xml version="1.0" encoding="utf-8"?>
|
94
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
95
|
+
<soap:Body>
|
96
|
+
<IssueKeyedPreAuthResponse xmlns="http://merchantwarehouse.com/MerchantWARE/Client/TransactionRetail">
|
97
|
+
<IssueKeyedPreAuthResult>
|
98
|
+
<ReferenceID>4706382</ReferenceID>
|
99
|
+
<OrderNumber>1</OrderNumber>
|
100
|
+
<TXDate>7/3/2009 2:05:04 AM</TXDate>
|
101
|
+
<ApprovalStatus>APPROVED</ApprovalStatus>
|
102
|
+
<AuthCode>VI0100</AuthCode>
|
103
|
+
<CardHolder>Longbob Longsen</CardHolder>
|
104
|
+
<Amount>1.00</Amount>
|
105
|
+
<Type>5</Type>
|
106
|
+
<CardNumber>************4242</CardNumber>
|
107
|
+
<CardType>0</CardType>
|
108
|
+
<AVSResponse>N</AVSResponse>
|
109
|
+
<CVResponse>M</CVResponse>
|
110
|
+
<POSEntryType>1</POSEntryType>
|
111
|
+
</IssueKeyedPreAuthResult>
|
112
|
+
</IssueKeyedPreAuthResponse>
|
113
|
+
</soap:Body>
|
114
|
+
</soap:Envelope>
|
115
|
+
XML
|
116
|
+
end
|
117
|
+
|
118
|
+
def fault_authorization_response
|
119
|
+
<<-XML
|
120
|
+
<?xml version="1.0" encoding="utf-8"?>
|
121
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
122
|
+
<soap:Body>
|
123
|
+
<soap:Fault>
|
124
|
+
<faultcode>soap:Server</faultcode>
|
125
|
+
<faultstring>Server was unable to process request. ---> strPAN should be at least 13 to at most 19 characters in size.
|
126
|
+
Parameter name: strPAN</faultstring>
|
127
|
+
<detail/>
|
128
|
+
</soap:Fault>
|
129
|
+
</soap:Body>
|
130
|
+
</soap:Envelope>
|
131
|
+
XML
|
132
|
+
end
|
133
|
+
|
134
|
+
def failed_authorization_response
|
135
|
+
<<-XML
|
136
|
+
<?xml version="1.0" encoding="utf-8"?>
|
137
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
138
|
+
<soap:Body>
|
139
|
+
<IssueKeyedPreAuthResponse xmlns="http://merchantwarehouse.com/MerchantWARE/Client/TransactionRetail">
|
140
|
+
<IssueKeyedPreAuthResult>
|
141
|
+
<ReferenceID/>
|
142
|
+
<OrderNumber>1</OrderNumber>
|
143
|
+
<TXDate>7/3/2009 3:04:33 AM</TXDate>
|
144
|
+
<ApprovalStatus>FAILED;1014;transaction type not supported by version</ApprovalStatus>
|
145
|
+
<AuthCode/>
|
146
|
+
<CardHolder>Longbob Longsen</CardHolder>
|
147
|
+
<Amount>1.00</Amount>
|
148
|
+
<Type>5</Type>
|
149
|
+
<CardNumber>*********0123</CardNumber>
|
150
|
+
<CardType>0</CardType>
|
151
|
+
<AVSResponse/>
|
152
|
+
<CVResponse/>
|
153
|
+
<POSEntryType>1</POSEntryType>
|
154
|
+
</IssueKeyedPreAuthResult>
|
155
|
+
</IssueKeyedPreAuthResponse>
|
156
|
+
</soap:Body>
|
157
|
+
</soap:Envelope>
|
158
|
+
XML
|
159
|
+
end
|
160
|
+
|
161
|
+
def failed_void_response
|
162
|
+
<<-XML
|
163
|
+
<?xml version="1.0" encoding="utf-8"?>
|
164
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
165
|
+
<soap:Body>
|
166
|
+
<IssueVoidResponse xmlns="http://merchantwarehouse.com/MerchantWARE/Client/TransactionRetail">
|
167
|
+
<IssueVoidResult>
|
168
|
+
<ReferenceID>4707277</ReferenceID>
|
169
|
+
<OrderNumber/>
|
170
|
+
<TXDate>7/3/2009 3:28:38 AM</TXDate>
|
171
|
+
<ApprovalStatus>DECLINED;1012;decline</ApprovalStatus>
|
172
|
+
<AuthCode/>
|
173
|
+
<CardHolder/>
|
174
|
+
<Amount/>
|
175
|
+
<Type>3</Type>
|
176
|
+
<CardNumber/>
|
177
|
+
<CardType>0</CardType>
|
178
|
+
<AVSResponse/>
|
179
|
+
<CVResponse/>
|
180
|
+
<POSEntryType>0</POSEntryType>
|
181
|
+
</IssueVoidResult>
|
182
|
+
</IssueVoidResponse>
|
183
|
+
</soap:Body>
|
184
|
+
</soap:Envelope>
|
185
|
+
XML
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|