tomriley-active_merchant 1.4.2.3 → 1.4.2.4

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.
Files changed (38) hide show
  1. data/CHANGELOG +14 -0
  2. data/CONTRIBUTERS +12 -0
  3. data/active_merchant.gemspec +3 -2
  4. data/init.rb +0 -1
  5. data/lib/active_merchant/billing/credit_card_methods.rb +1 -1
  6. data/lib/active_merchant/billing/expiry_date.rb +10 -4
  7. data/lib/active_merchant/billing/gateway.rb +4 -0
  8. data/lib/active_merchant/billing/gateways/authorize_net.rb +12 -1
  9. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +2 -1
  10. data/lib/active_merchant/billing/gateways/bogus.rb +19 -0
  11. data/lib/active_merchant/billing/gateways/eway.rb +6 -1
  12. data/lib/active_merchant/billing/gateways/first_pay.rb +172 -0
  13. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  14. data/lib/active_merchant/billing/gateways/ogone.rb +259 -0
  15. data/lib/active_merchant/billing/gateways/paypal.rb +22 -9
  16. data/lib/active_merchant/billing/gateways/{protx.rb → sage_pay.rb} +45 -12
  17. data/lib/active_merchant/billing/integrations/nochex/notification.rb +1 -1
  18. data/lib/active_merchant/billing/response.rb +9 -1
  19. data/test/fixtures.yml +16 -1
  20. data/test/remote/gateways/remote_first_pay_test.rb +87 -0
  21. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  22. data/test/remote/gateways/remote_ogone_test.rb +108 -0
  23. data/test/remote/gateways/remote_paypal_test.rb +12 -1
  24. data/test/remote/gateways/remote_protx_three_d_secure_test.rb +259 -0
  25. data/test/remote/gateways/{remote_protx_test.rb → remote_sage_pay_test.rb} +8 -8
  26. data/test/unit/credit_card_methods_test.rb +9 -0
  27. data/test/unit/expiry_date_test.rb +12 -1
  28. data/test/unit/gateways/bogus_test.rb +31 -0
  29. data/test/unit/gateways/first_pay_test.rb +125 -0
  30. data/test/unit/gateways/gateway_test.rb +6 -0
  31. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  32. data/test/unit/gateways/ogone_test.rb +256 -0
  33. data/test/unit/gateways/paypal_test.rb +49 -0
  34. data/test/unit/gateways/sage_pay_test.rb +183 -0
  35. data/test/unit/integrations/notifications/nochex_notification_test.rb +1 -1
  36. data/test/unit/response_test.rb +16 -0
  37. metadata +16 -5
  38. data/test/unit/gateways/protx_test.rb +0 -139
@@ -0,0 +1,256 @@
1
+ require 'test_helper'
2
+
3
+ class OgoneTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @credentials = { :login => 'merchant id',
7
+ :user => 'username',
8
+ :password => 'password',
9
+ :signature => 'mynicesig' }
10
+ @gateway = OgoneGateway.new(@credentials)
11
+ @credit_card = credit_card
12
+ @amount = 100
13
+ @identification = "3014726"
14
+ @options = {
15
+ :order_id => '1',
16
+ :billing_address => address,
17
+ :description => 'Store Purchase'
18
+ }
19
+ end
20
+
21
+ def test_successful_authorize
22
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
23
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
24
+ assert_success response
25
+ assert_equal '3014726;RES', response.authorization
26
+ assert response.test?
27
+ end
28
+
29
+ def test_successful_purchase
30
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
31
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
32
+ assert_success response
33
+ assert_equal '3014726;SAL', response.authorization
34
+ assert response.test?
35
+ end
36
+
37
+ def test_successful_purchase_without_order_id
38
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
39
+ @options.delete(:order_id)
40
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
41
+ assert_success response
42
+ assert_equal '3014726;SAL', response.authorization
43
+ assert response.test?
44
+ end
45
+
46
+ def test_successful_capture
47
+ @gateway.expects(:ssl_post).returns(successful_capture_response)
48
+ assert response = @gateway.capture(@amount, "3048326")
49
+ assert_success response
50
+ assert_equal '3048326;SAL', response.authorization
51
+ assert response.test?
52
+ end
53
+
54
+ def test_successful_void
55
+ @gateway.expects(:ssl_post).returns(successful_void_response)
56
+ assert response = @gateway.void("3048606")
57
+ assert_success response
58
+ assert_equal '3048606;DES', response.authorization
59
+ assert response.test?
60
+ end
61
+
62
+ def test_successful_referenced_credit
63
+ @gateway.expects(:ssl_post).returns(successful_referenced_credit_response)
64
+ assert response = @gateway.credit(@amount, "3049652")
65
+ assert_success response
66
+ assert_equal '3049652;RFD', response.authorization
67
+ assert response.test?
68
+ end
69
+
70
+ def test_successful_unreferenced_credit
71
+ @gateway.expects(:ssl_post).returns(successful_unreferenced_credit_response)
72
+ assert response = @gateway.credit(@amount, @credit_card)
73
+ assert_success response
74
+ assert_equal "3049654;RFD", response.authorization
75
+ assert response.test?
76
+ end
77
+
78
+ def test_unsuccessful_request
79
+ @gateway.expects(:ssl_post).returns(failed_purchase_response)
80
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
81
+ assert_failure response
82
+ assert response.test?
83
+ end
84
+
85
+ def test_supported_countries
86
+ assert_equal ['BE', 'DE', 'FR', 'NL', 'AT', 'CH'], OgoneGateway.supported_countries
87
+ end
88
+
89
+ def test_supported_card_types
90
+ assert_equal [:visa, :master, :american_express, :diners_club, :discover, :jcb, :maestro], OgoneGateway.supported_cardtypes
91
+ end
92
+
93
+ def test_default_currency
94
+ assert_equal 'EUR', OgoneGateway.default_currency
95
+ end
96
+
97
+ def test_avs_result
98
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
99
+ response = @gateway.purchase(@amount, @credit_card)
100
+ assert_equal 'R', response.avs_result['code']
101
+ end
102
+
103
+ def test_cvv_result
104
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
105
+ response = @gateway.purchase(@amount, @credit_card)
106
+ assert_equal 'P', response.cvv_result['code']
107
+ end
108
+
109
+ private
110
+
111
+ def successful_authorize_response
112
+ <<-END
113
+ <?xml version="1.0"?><ncresponse
114
+ orderID="1233680882919266242708828"
115
+ PAYID="3014726"
116
+ NCSTATUS="0"
117
+ NCERROR="0"
118
+ NCERRORPLUS="!"
119
+ ACCEPTANCE="test123"
120
+ STATUS="5"
121
+ IPCTY="99"
122
+ CCCTY="99"
123
+ ECI="7"
124
+ CVCCheck="NO"
125
+ AAVCheck="NO"
126
+ VC="NO"
127
+ amount="1"
128
+ currency="EUR"
129
+ PM="CreditCard"
130
+ BRAND="VISA">
131
+ </ncresponse>
132
+ END
133
+ end
134
+
135
+ def successful_purchase_response
136
+ <<-END
137
+ <?xml version="1.0"?><ncresponse
138
+ orderID="1233680882919266242708828"
139
+ PAYID="3014726"
140
+ NCSTATUS="0"
141
+ NCERROR="0"
142
+ NCERRORPLUS="!"
143
+ ACCEPTANCE="test123"
144
+ STATUS="5"
145
+ IPCTY="99"
146
+ CCCTY="99"
147
+ ECI="7"
148
+ CVCCheck="NO"
149
+ AAVCheck="NO"
150
+ VC="NO"
151
+ amount="1"
152
+ currency="EUR"
153
+ PM="CreditCard"
154
+ BRAND="VISA">
155
+ </ncresponse>
156
+ END
157
+ end
158
+
159
+ def failed_purchase_response
160
+ <<-END
161
+ <?xml version="1.0"?>
162
+ <ncresponse
163
+ orderID=""
164
+ PAYID="0"
165
+ NCSTATUS="5"
166
+ NCERROR="50001111"
167
+ NCERRORPLUS=" no orderid"
168
+ ACCEPTANCE=""
169
+ STATUS="0"
170
+ amount=""
171
+ currency="EUR"
172
+ PM=""
173
+ BRAND="">
174
+ </ncresponse>
175
+ END
176
+ end
177
+
178
+ def successful_capture_response
179
+ <<-END
180
+ <?xml version="1.0"?>
181
+ <ncresponse
182
+ orderID="1234956106974734203514539"
183
+ PAYID="3048326"
184
+ PAYIDSUB="1"
185
+ NCSTATUS="0"
186
+ NCERROR="0"
187
+ NCERRORPLUS="!"
188
+ ACCEPTANCE=""
189
+ STATUS="91"
190
+ amount="1"
191
+ currency="EUR">
192
+ </ncresponse>
193
+ END
194
+ end
195
+
196
+ def successful_void_response
197
+ <<-END
198
+ <?xml version="1.0"?>
199
+ <ncresponse
200
+ orderID="1234961140253559268757474"
201
+ PAYID="3048606"
202
+ PAYIDSUB="1"
203
+ NCSTATUS="0"
204
+ NCERROR="0"
205
+ NCERRORPLUS="!"
206
+ ACCEPTANCE=""
207
+ STATUS="61"
208
+ amount="1"
209
+ currency="EUR">
210
+ </ncresponse>
211
+ END
212
+ end
213
+
214
+ def successful_referenced_credit_response
215
+ <<-END
216
+ <?xml version="1.0"?>
217
+ <ncresponse
218
+ orderID="1234976251872867104376350"
219
+ PAYID="3049652"
220
+ PAYIDSUB="1"
221
+ NCSTATUS="0"
222
+ NCERROR="0"
223
+ NCERRORPLUS="!"
224
+ ACCEPTANCE=""
225
+ STATUS="81"
226
+ amount="1"
227
+ currency="EUR">
228
+ </ncresponse>
229
+ END
230
+ end
231
+
232
+ def successful_unreferenced_credit_response
233
+ <<-END
234
+ <?xml version="1.0"?><ncresponse
235
+ orderID="1234976330656672481134758"
236
+ PAYID="3049654"
237
+ NCSTATUS="0"
238
+ NCERROR="0"
239
+ NCERRORPLUS="!"
240
+ ACCEPTANCE=""
241
+ STATUS="81"
242
+ IPCTY="99"
243
+ CCCTY="99"
244
+ ECI="7"
245
+ CVCCheck="NO"
246
+ AAVCheck="NO"
247
+ VC="NO"
248
+ amount="1"
249
+ currency="EUR"
250
+ PM="CreditCard"
251
+ BRAND="VISA">
252
+ </ncresponse>
253
+ END
254
+ end
255
+
256
+ end
@@ -30,6 +30,24 @@ class PaypalTest < Test::Unit::TestCase
30
30
  assert response.test?
31
31
  end
32
32
 
33
+ def test_successful_reference_purchase
34
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
35
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
36
+ assert_instance_of Response, response
37
+ assert_success response
38
+ assert_equal '62U664727W5914806', response.authorization
39
+
40
+ ref_id = response.authorization
41
+
42
+ gateway2 = PaypalGateway.new(:login => 'cody', :password => 'test', :pem => 'PEM')
43
+ gateway2.expects(:ssl_post).returns(successful_reference_purchase_response)
44
+ assert response = gateway2.purchase(@amount, ref_id, @options)
45
+ assert_instance_of Response, response
46
+ assert_success response
47
+ assert_equal '62U664727W5915049', response.authorization
48
+ assert response.test?
49
+ end
50
+
33
51
  def test_failed_purchase
34
52
  @gateway.expects(:ssl_post).returns(failed_purchase_response)
35
53
 
@@ -252,6 +270,37 @@ class PaypalTest < Test::Unit::TestCase
252
270
  RESPONSE
253
271
  end
254
272
 
273
+ def successful_reference_purchase_response
274
+ <<-RESPONSE
275
+ <?xml version="1.0" encoding="UTF-8"?>
276
+ <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cc="urn:ebay:apis:CoreComponentTypes" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:market="urn:ebay:apis:Market" xmlns:auction="urn:ebay:apis:Auction" xmlns:sizeship="urn:ebay:api:PayPalAPI/sizeship.xsd" xmlns:ship="urn:ebay:apis:ship" xmlns:skype="urn:ebay:apis:skype" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" xmlns:ns="urn:ebay:api:PayPalAPI">
277
+ <SOAP-ENV:Header>
278
+ <Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext" xsi:type="wsse:SecurityType"/>
279
+ <RequesterCredentials xmlns="urn:ebay:api:PayPalAPI" xsi:type="ebl:CustomSecurityHeaderType">
280
+ <Credentials xmlns="urn:ebay:apis:eBLBaseComponents" xsi:type="ebl:UserIdPasswordType">
281
+ <Username xsi:type="xs:string"/>
282
+ <Password xsi:type="xs:string"/>
283
+ <Subject xsi:type="xs:string"/>
284
+ </Credentials>
285
+ </RequesterCredentials>
286
+ </SOAP-ENV:Header>
287
+ <SOAP-ENV:Body id="_0">
288
+ <DoReferenceTransactionResponse xmlns="urn:ebay:api:PayPalAPI">
289
+ <Timestamp xmlns="urn:ebay:apis:eBLBaseComponents">2008-01-06T23:41:25Z</Timestamp>
290
+ <Ack xmlns="urn:ebay:apis:eBLBaseComponents">Success</Ack>
291
+ <CorrelationID xmlns="urn:ebay:apis:eBLBaseComponents">fee61882e6f47</CorrelationID>
292
+ <Version xmlns="urn:ebay:apis:eBLBaseComponents">2.000000</Version>
293
+ <Build xmlns="urn:ebay:apis:eBLBaseComponents">1.0006</Build>
294
+ <Amount xsi:type="cc:BasicAmountType" currencyID="USD">3.00</Amount>
295
+ <AVSCode xsi:type="xs:string">X</AVSCode>
296
+ <CVV2Code xsi:type="xs:string">M</CVV2Code>
297
+ <TransactionID>62U664727W5915049</TransactionID>
298
+ </DoReferenceTransactionResponse>
299
+ </SOAP-ENV:Body>
300
+ </SOAP-ENV:Envelope>
301
+ RESPONSE
302
+ end
303
+
255
304
  def failed_purchase_response
256
305
  <<-RESPONSE
257
306
  <?xml version="1.0" encoding="UTF-8"?>
@@ -0,0 +1,183 @@
1
+ require 'test_helper'
2
+
3
+ class SagePayTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = SagePayGateway.new(
6
+ :login => 'X'
7
+ )
8
+
9
+ @credit_card = credit_card('4242424242424242', :type => 'visa')
10
+ @options = {
11
+ :billing_address => {
12
+ :name => 'Tekin Suleyman',
13
+ :address1 => 'Flat 10 Lapwing Court',
14
+ :address2 => 'West Didsbury',
15
+ :city => "Manchester",
16
+ :county => 'Greater Manchester',
17
+ :country => 'GB',
18
+ :zip => 'M20 2PS'
19
+ },
20
+ :order_id => '1',
21
+ :description => 'Store purchase',
22
+ :ip => '86.150.65.37',
23
+ :email => 'tekin@tekin.co.uk',
24
+ :phone => '0161 123 4567'
25
+ }
26
+ @amount = 100
27
+ end
28
+
29
+ def test_successful_purchase
30
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
31
+
32
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
33
+ assert_instance_of Response, response
34
+ assert_equal "1;B8AE1CF6-9DEF-C876-1BB4-9B382E6CE520;4193753;OHMETD7DFK;purchase", response.authorization
35
+ assert_success response
36
+ end
37
+
38
+ def test_unsuccessful_purchase
39
+ @gateway.expects(:ssl_post).returns(unsuccessful_purchase_response)
40
+
41
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
42
+ assert_instance_of Response, response
43
+ assert_failure response
44
+ end
45
+
46
+ def test_response_requires_three_d_secure_authentication
47
+ @gateway.stubs(:ssl_post).returns(three_d_secure_response)
48
+
49
+ response = @gateway.purchase(100, @credit_card, @options)
50
+ assert_failure response
51
+ assert response.three_d_secure?
52
+
53
+ assert_equal 'eJxVUttygjAQfe9XMH4AuUCoOGscW9sRx7ZM7UsfmZAWVEBDUPr3TRCqzdOes5uzuyeBWVvsnZNUdV6V0xFx8WjG7+AjU1IuNlI0SnJ4kXWdfEsnT6cjign1mH8fMC8MKSMMeyMO8fxdHjn0OtzIuATQAI2AEllSag6JOD5Er5yRceD7gHoIhVTRgjMcMi8ICb4cQBcayqSQfKOlSspd5ax1CqijQFRNqdUPH9MA0ACgUXueaX2YIHQ+n926v+iKym12gGwa0HWkuLFRbeTaPOWRV7+VpyzX0Xr79bxdr0TytFx9Yr2YTwHZCkgTLTnFOMSU+g4hE8YmXgio4yEp7BycdAv0AA62x/w2c8uAsVnJUgyLDAhke6hKaSoooL8YUlkLHqtKt85LHJm+FgO67vG4tEYLbbwj1uMusmK5sceMHXRqFgCytah/PtQ/tIn+fYBfp7GzSg==',
54
+ response.pa_req
55
+ assert_equal '2012354765399251503',
56
+ response.md
57
+ assert_equal 'https://ukvpstest.protx.com/mpitools/accesscontroler?action=pareq',
58
+ response.acs_url
59
+ end
60
+
61
+ def test_supports_3d_secure
62
+ assert @gateway.supports_3d_secure
63
+ end
64
+
65
+ def test_can_enable_3d_secure
66
+ assert !@gateway.three_d_secure_enabled?
67
+ @gateway2 = ProtxGateway.new(:login => 'X', :enable_3d_secure => true)
68
+ assert @gateway2.three_d_secure_enabled?
69
+ end
70
+
71
+ def test_three_d_complete
72
+ @gateway.stubs(:ssl_post).returns(successful_purchase_response)
73
+
74
+ response = @gateway.three_d_complete('PARes VALUE','MD VALUE')
75
+ assert_success response
76
+ end
77
+
78
+ def test_purchase_url
79
+ assert_equal 'https://test.sagepay.com/gateway/service/vspdirect-register.vsp', @gateway.send(:url_for, :purchase)
80
+ end
81
+
82
+ def test_capture_url
83
+ assert_equal 'https://test.sagepay.com/gateway/service/release.vsp', @gateway.send(:url_for, :capture)
84
+ end
85
+
86
+ def test_electron_cards
87
+ # Visa range
88
+ assert_no_match SagePayGateway::ELECTRON, '4245180000000000'
89
+
90
+ # First electron range
91
+ assert_match SagePayGateway::ELECTRON, '4245190000000000'
92
+
93
+ # Second range
94
+ assert_match SagePayGateway::ELECTRON, '4249620000000000'
95
+ assert_match SagePayGateway::ELECTRON, '4249630000000000'
96
+
97
+ # Third
98
+ assert_match SagePayGateway::ELECTRON, '4508750000000000'
99
+
100
+ # Fourth
101
+ assert_match SagePayGateway::ELECTRON, '4844060000000000'
102
+ assert_match SagePayGateway::ELECTRON, '4844080000000000'
103
+
104
+ # Fifth
105
+ assert_match SagePayGateway::ELECTRON, '4844110000000000'
106
+ assert_match SagePayGateway::ELECTRON, '4844550000000000'
107
+
108
+ # Sixth
109
+ assert_match SagePayGateway::ELECTRON, '4917300000000000'
110
+ assert_match SagePayGateway::ELECTRON, '4917590000000000'
111
+
112
+ # Seventh
113
+ assert_match SagePayGateway::ELECTRON, '4918800000000000'
114
+
115
+ # Visa
116
+ assert_no_match SagePayGateway::ELECTRON, '4918810000000000'
117
+
118
+ # 19 PAN length
119
+ assert_match SagePayGateway::ELECTRON, '4249620000000000000'
120
+
121
+ # 20 PAN length
122
+ assert_no_match SagePayGateway::ELECTRON, '42496200000000000'
123
+ end
124
+
125
+ def test_avs_result
126
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
127
+
128
+ response = @gateway.purchase(@amount, @credit_card, @options)
129
+ assert_equal 'Y', response.avs_result['postal_match']
130
+ assert_equal 'N', response.avs_result['street_match']
131
+ end
132
+
133
+ def test_cvv_result
134
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
135
+
136
+ response = @gateway.purchase(@amount, @credit_card, @options)
137
+ assert_equal 'N', response.cvv_result['code']
138
+ end
139
+
140
+ private
141
+
142
+ def successful_purchase_response
143
+ <<-RESP
144
+ VPSProtocol=2.23
145
+ Status=OK
146
+ StatusDetail=0000 : The Authorisation was Successful.
147
+ VPSTxId=B8AE1CF6-9DEF-C876-1BB4-9B382E6CE520
148
+ SecurityKey=OHMETD7DFK
149
+ TxAuthNo=4193753
150
+ AVSCV2=NO DATA MATCHES
151
+ AddressResult=NOTMATCHED
152
+ PostCodeResult=MATCHED
153
+ CV2Result=NOTMATCHED
154
+ 3DSecureStatus=NOTCHECKED
155
+ RESP
156
+ end
157
+
158
+ def unsuccessful_purchase_response
159
+ <<-RESP
160
+ VPSProtocol=2.23
161
+ Status=NOTAUTHED
162
+ StatusDetail=VSP Direct transaction from VSP Simulator.
163
+ VPSTxId=7BBA9078-8489-48CD-BF0D-10B0E6B0EF30
164
+ SecurityKey=DKDYLDYLXV
165
+ AVSCV2=ALL MATCH
166
+ AddressResult=MATCHED
167
+ PostCodeResult=MATCHED
168
+ CV2Result=MATCHED
169
+ RESP
170
+ end
171
+
172
+ def three_d_secure_response
173
+ <<-RESP
174
+ Status=3DAUTH
175
+ MD=2012354765399251503
176
+ ACSURL=https://ukvpstest.protx.com/mpitools/accesscontroler?action=pareq
177
+ PAReq=eJxVUttygjAQfe9XMH4AuUCoOGscW9sRx7ZM7UsfmZAWVEBDUPr3TRCqzdOes5uzuyeBWVvsnZNUdV6V0xFx8WjG7+AjU1IuNlI0SnJ4kXWdfEsnT6cjign1mH8fMC8MKSMMeyMO8fxdHjn0OtzIuATQAI2AEllSag6JOD5Er5yRceD7gHoIhVTRgjMcMi8ICb4cQBcayqSQfKOlSspd5ax1CqijQFRNqdUPH9MA0ACgUXueaX2YIHQ+n926v+iKym12gGwa0HWkuLFRbeTaPOWRV7+VpyzX0Xr79bxdr0TytFx9Yr2YTwHZCkgTLTnFOMSU+g4hE8YmXgio4yEp7BycdAv0AA62x/w2c8uAsVnJUgyLDAhke6hKaSoooL8YUlkLHqtKt85LHJm+FgO67vG4tEYLbbwj1uMusmK5sceMHXRqFgCytah/PtQ/tIn+fYBfp7GzSg==
178
+ StatusDetail=2007 : Please redirect your customer to the ACSURL, passing the MD and PaReq.
179
+ VPSProtocol=2.22
180
+ 3DSecureStatus=OK
181
+ RESP
182
+ end
183
+ end