hps 1.0.1 → 1.0.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.
- checksums.yaml +4 -4
- data/Gemfile +8 -8
- data/LICENSE.txt +32 -32
- data/PRIVACY.txt +65 -65
- data/README.md +40 -40
- data/Rakefile +15 -15
- data/hps.gemspec +26 -26
- data/lib/hps/configuration.rb +16 -16
- data/lib/hps/entities/hps_account_verify.rb +8 -8
- data/lib/hps/entities/hps_address.rb +6 -6
- data/lib/hps/entities/hps_authorization.rb +12 -12
- data/lib/hps/entities/hps_batch.rb +6 -6
- data/lib/hps/entities/hps_cardholder.rb +10 -6
- data/lib/hps/entities/hps_charge.rb +8 -8
- data/lib/hps/entities/hps_charge_exceptions.rb +6 -6
- data/lib/hps/entities/hps_credit_card.rb +32 -32
- data/lib/hps/entities/hps_refund.rb +8 -8
- data/lib/hps/entities/hps_report_transaction_details.rb +10 -10
- data/lib/hps/entities/hps_report_transaction_summary.rb +6 -6
- data/lib/hps/entities/hps_reversal.rb +10 -10
- data/lib/hps/entities/hps_token_data.rb +10 -10
- data/lib/hps/entities/hps_transaction.rb +161 -161
- data/lib/hps/entities/hps_transaction_details.rb +6 -6
- data/lib/hps/entities/hps_transaction_header.rb +8 -8
- data/lib/hps/entities/hps_transaction_type.rb +16 -16
- data/lib/hps/entities/hps_void.rb +8 -8
- data/lib/hps/infrastructure/api_connection_exception.rb +11 -11
- data/lib/hps/infrastructure/authentication_exception.rb +11 -11
- data/lib/hps/infrastructure/card_exception.rb +15 -15
- data/lib/hps/infrastructure/exceptions.json +468 -468
- data/lib/hps/infrastructure/hps_exception.rb +25 -25
- data/lib/hps/infrastructure/hps_exception_mapper.rb +134 -134
- data/lib/hps/infrastructure/hps_sdk_codes.rb +48 -48
- data/lib/hps/infrastructure/invalid_request_exception.rb +15 -15
- data/lib/hps/services/hps_batch_service.rb +29 -29
- data/lib/hps/services/hps_charge_service.rb +634 -634
- data/lib/hps/services/hps_service.rb +128 -128
- data/lib/hps/version.rb +3 -3
- data/lib/hps.rb +45 -45
- data/tests/amex_tests.rb +230 -230
- data/tests/cert_tests.rb +80 -80
- data/tests/discover_tests.rb +324 -324
- data/tests/exception_mapper_tests.rb +244 -244
- data/tests/general_tests.rb +58 -58
- data/tests/hps_token_service.rb +56 -56
- data/tests/mastercard_tests.rb +325 -325
- data/tests/secret_key.rb +11 -11
- data/tests/test_data.rb +127 -127
- data/tests/test_helper.rb +108 -92
- data/tests/token_tests.rb +513 -513
- data/tests/visa_tests.rb +378 -378
- metadata +4 -6
- data/.DS_Store +0 -0
- data/.gitignore +0 -24
data/tests/visa_tests.rb
CHANGED
@@ -1,378 +1,378 @@
|
|
1
|
-
require File.join( File.dirname(__FILE__), "test_helper" )
|
2
|
-
|
3
|
-
describe "Visa Tests" do
|
4
|
-
|
5
|
-
it "Visa when card is ok, should return valid result" do
|
6
|
-
charge = Hps::TestHelper.charge_valid_visa(50)
|
7
|
-
expect(charge.response_code).to eql("00")
|
8
|
-
end
|
9
|
-
|
10
|
-
# avs tests
|
11
|
-
|
12
|
-
# TODO: Gateway changed
|
13
|
-
it "Visa avs result code should equal B" do
|
14
|
-
charge = Hps::TestHelper.charge_valid_visa(90.01)
|
15
|
-
#expect(charge.avs_result_code).to eql("B")
|
16
|
-
expect(charge.avs_result_code).to eql("0")
|
17
|
-
end
|
18
|
-
|
19
|
-
# TODO: Gateway changed
|
20
|
-
it "Visa avs result code should equal C" do
|
21
|
-
charge = Hps::TestHelper.charge_valid_visa(90.02)
|
22
|
-
#expect(charge.avs_result_code).to eql("C")
|
23
|
-
expect(charge.avs_result_code).to eql("0")
|
24
|
-
end
|
25
|
-
|
26
|
-
# TODO: Gateway changed
|
27
|
-
it "Visa avs result code should equal D" do
|
28
|
-
charge = Hps::TestHelper.charge_valid_visa(90.03)
|
29
|
-
#expect(charge.avs_result_code).to eql("D")
|
30
|
-
expect(charge.avs_result_code).to eql("0")
|
31
|
-
end
|
32
|
-
|
33
|
-
# TODO: Gateway changed
|
34
|
-
it "Visa avs result code should equal I" do
|
35
|
-
charge = Hps::TestHelper.charge_valid_visa(90.05)
|
36
|
-
#expect(charge.avs_result_code).to eql("I")
|
37
|
-
expect(charge.avs_result_code).to eql("0")
|
38
|
-
end
|
39
|
-
|
40
|
-
# TODO: Gateway changed
|
41
|
-
it "Visa avs result code should equal M" do
|
42
|
-
charge = Hps::TestHelper.charge_valid_visa(90.06)
|
43
|
-
#expect(charge.avs_result_code).to eql("M")
|
44
|
-
expect(charge.avs_result_code).to eql("0")
|
45
|
-
end
|
46
|
-
|
47
|
-
# TODO: Gateway changed
|
48
|
-
it "Visa avs result code should equal P" do
|
49
|
-
charge = Hps::TestHelper.charge_valid_visa(90.07)
|
50
|
-
#expect(charge.avs_result_code).to eql("P")
|
51
|
-
expect(charge.avs_result_code).to eql("0")
|
52
|
-
end
|
53
|
-
|
54
|
-
# cvv tests
|
55
|
-
|
56
|
-
it "Visa cvv result code should equal M" do
|
57
|
-
charge = Hps::TestHelper.charge_valid_visa(96.01)
|
58
|
-
expect(charge.cvv_result_code).to eql("M")
|
59
|
-
end
|
60
|
-
|
61
|
-
it "Visa cvv result code should equal N" do
|
62
|
-
charge = Hps::TestHelper.charge_valid_visa(96.02)
|
63
|
-
expect(charge.cvv_result_code).to eql("N")
|
64
|
-
end
|
65
|
-
|
66
|
-
it "Visa cvv result code should equal P" do
|
67
|
-
charge = Hps::TestHelper.charge_valid_visa(96.03)
|
68
|
-
expect(charge.cvv_result_code).to eql("P")
|
69
|
-
end
|
70
|
-
|
71
|
-
it "Visa cvv result code should equal S" do
|
72
|
-
charge = Hps::TestHelper.charge_valid_visa(96.04)
|
73
|
-
expect(charge.cvv_result_code).to eql("S")
|
74
|
-
end
|
75
|
-
|
76
|
-
it "Visa cvv result code should equal U" do
|
77
|
-
charge = Hps::TestHelper.charge_valid_visa(96.05)
|
78
|
-
expect(charge.cvv_result_code).to eql("U")
|
79
|
-
end
|
80
|
-
|
81
|
-
# visa to visa 2nd
|
82
|
-
|
83
|
-
it "Visa response code should indicate refer card issuer" do
|
84
|
-
expect {
|
85
|
-
Hps::TestHelper.charge_valid_visa(10.34)
|
86
|
-
}.to raise_error(Hps::CardException) { |error|
|
87
|
-
expect(error.code).to eql("card_declined")
|
88
|
-
expect(error.response_code).to eql("02")
|
89
|
-
expect(error.response_text).to eql("CALL")
|
90
|
-
}
|
91
|
-
end
|
92
|
-
|
93
|
-
it "Visa response code should indicate invalid merchant" do
|
94
|
-
expect {
|
95
|
-
Hps::TestHelper.charge_valid_visa(10.22)
|
96
|
-
}.to raise_error(Hps::CardException) { |error|
|
97
|
-
expect(error.code).to eql("card_declined")
|
98
|
-
expect(error.response_code).to eql("03")
|
99
|
-
expect(error.response_text).to eql("TERM ID ERROR")
|
100
|
-
}
|
101
|
-
end
|
102
|
-
|
103
|
-
it "Visa response code should indicate pickup card" do
|
104
|
-
expect {
|
105
|
-
Hps::TestHelper.charge_valid_visa(10.04)
|
106
|
-
}.to raise_error(Hps::CardException) { |error|
|
107
|
-
expect(error.code).to eql("card_declined")
|
108
|
-
expect(error.response_code).to eql("44")
|
109
|
-
expect(error.response_text).to eql("HOLD-CALL")
|
110
|
-
}
|
111
|
-
end
|
112
|
-
|
113
|
-
it "Visa response code should indicate do not honor" do
|
114
|
-
expect {
|
115
|
-
Hps::TestHelper.charge_valid_visa(10.25)
|
116
|
-
}.to raise_error(Hps::CardException) { |error|
|
117
|
-
expect(error.code).to eql("card_declined")
|
118
|
-
expect(error.response_code).to eql("05")
|
119
|
-
expect(error.response_text).to eql("DECLINE")
|
120
|
-
}
|
121
|
-
end
|
122
|
-
|
123
|
-
it "Visa response code should indicate invalid transaction" do
|
124
|
-
expect {
|
125
|
-
Hps::TestHelper.charge_valid_visa(10.26)
|
126
|
-
}.to raise_error(Hps::CardException) { |error|
|
127
|
-
expect(error.code).to eql("processing_error")
|
128
|
-
expect(error.response_code).to eql("12")
|
129
|
-
expect(error.response_text).to eql("INVALID TRANS")
|
130
|
-
}
|
131
|
-
end
|
132
|
-
|
133
|
-
it "Visa response code should indicate invalid amount" do
|
134
|
-
expect {
|
135
|
-
Hps::TestHelper.charge_valid_visa(10.27)
|
136
|
-
}.to raise_error(Hps::CardException) { |error|
|
137
|
-
expect(error.code).to eql("invalid_amount")
|
138
|
-
expect(error.response_code).to eql("13")
|
139
|
-
expect(error.response_text).to eql("AMOUNT ERROR")
|
140
|
-
}
|
141
|
-
end
|
142
|
-
|
143
|
-
it "Visa response code should indicate invalid card" do
|
144
|
-
expect {
|
145
|
-
Hps::TestHelper.charge_valid_visa(10.28)
|
146
|
-
}.to raise_error(Hps::CardException) { |error|
|
147
|
-
expect(error.code).to eql("incorrect_number")
|
148
|
-
expect(error.response_code).to eql("14")
|
149
|
-
expect(error.response_text).to eql("CARD NO. ERROR")
|
150
|
-
}
|
151
|
-
end
|
152
|
-
|
153
|
-
it "Visa response code should indicate invalid issuer" do
|
154
|
-
expect {
|
155
|
-
Hps::TestHelper.charge_valid_visa(10.18)
|
156
|
-
}.to raise_error(Hps::CardException) { |error|
|
157
|
-
expect(error.code).to eql("processing_error")
|
158
|
-
expect(error.response_code).to eql("15")
|
159
|
-
expect(error.response_text).to eql("NO SUCH ISSUER")
|
160
|
-
}
|
161
|
-
end
|
162
|
-
|
163
|
-
it "Visa response code should indicate system error re-enter" do
|
164
|
-
expect {
|
165
|
-
Hps::TestHelper.charge_valid_visa(10.29)
|
166
|
-
}.to raise_error(Hps::CardException) { |error|
|
167
|
-
expect(error.code).to eql("processing_error")
|
168
|
-
expect(error.response_code).to eql("19")
|
169
|
-
expect(error.response_text).to eql("RE ENTER")
|
170
|
-
}
|
171
|
-
end
|
172
|
-
|
173
|
-
it "Visa response code should indicate lost card" do
|
174
|
-
expect {
|
175
|
-
Hps::TestHelper.charge_valid_visa(10.31)
|
176
|
-
}.to raise_error(Hps::CardException) { |error|
|
177
|
-
expect(error.code).to eql("card_declined")
|
178
|
-
expect(error.response_code).to eql("41")
|
179
|
-
expect(error.response_text).to eql("HOLD-CALL")
|
180
|
-
}
|
181
|
-
end
|
182
|
-
|
183
|
-
it "Visa response code should indicate hot card pickup" do
|
184
|
-
expect {
|
185
|
-
Hps::TestHelper.charge_valid_visa(10.03)
|
186
|
-
}.to raise_error(Hps::CardException) { |error|
|
187
|
-
expect(error.code).to eql("card_declined")
|
188
|
-
expect(error.response_code).to eql("43")
|
189
|
-
expect(error.response_text).to eql("HOLD-CALL")
|
190
|
-
}
|
191
|
-
end
|
192
|
-
|
193
|
-
it "Visa response code should indicate insufficient fund" do
|
194
|
-
expect {
|
195
|
-
Hps::TestHelper.charge_valid_visa(10.08)
|
196
|
-
}.to raise_error(Hps::CardException) { |error|
|
197
|
-
expect(error.code).to eql("card_declined")
|
198
|
-
# TODO: Gateway changed
|
199
|
-
#expect(error.response_code).to eql("05")
|
200
|
-
expect(error.response_code).to eql("51")
|
201
|
-
expect(error.response_text).to eql("DECLINE")
|
202
|
-
}
|
203
|
-
end
|
204
|
-
|
205
|
-
it "Visa response code should indicate no checking account" do
|
206
|
-
expect {
|
207
|
-
Hps::TestHelper.charge_valid_visa(10.16)
|
208
|
-
}.to raise_error(Hps::CardException) { |error|
|
209
|
-
expect(error.code).to eql("processing_error")
|
210
|
-
expect(error.response_code).to eql("52")
|
211
|
-
expect(error.response_text).to eql("NO CHECK ACCOUNT")
|
212
|
-
}
|
213
|
-
end
|
214
|
-
|
215
|
-
it "Visa response code should indicate no savings account" do
|
216
|
-
expect {
|
217
|
-
Hps::TestHelper.charge_valid_visa(10.17)
|
218
|
-
}.to raise_error(Hps::CardException) { |error|
|
219
|
-
expect(error.code).to eql("processing_error")
|
220
|
-
expect(error.response_code).to eql("53")
|
221
|
-
expect(error.response_text).to eql("NO SAVE ACCOUNT")
|
222
|
-
}
|
223
|
-
end
|
224
|
-
|
225
|
-
it "Visa response code should indicate expired card" do
|
226
|
-
expect {
|
227
|
-
Hps::TestHelper.charge_valid_visa(10.32)
|
228
|
-
}.to raise_error(Hps::CardException) { |error|
|
229
|
-
expect(error.code).to eql("expired_card")
|
230
|
-
expect(error.response_code).to eql("54")
|
231
|
-
expect(error.response_text).to eql("EXPIRED CARD")
|
232
|
-
}
|
233
|
-
end
|
234
|
-
|
235
|
-
it "Visa response code should indicate txn not permitted on card card" do
|
236
|
-
expect {
|
237
|
-
Hps::TestHelper.charge_valid_visa(10.20)
|
238
|
-
}.to raise_error(Hps::CardException) { |error|
|
239
|
-
# TODO: Gateway changed
|
240
|
-
#expect(error.code).to eql("processing_error")
|
241
|
-
#expect(error.response_code).to eql("57")
|
242
|
-
#expect(error.response_text).to eql("SERV NOT ALLOWED")
|
243
|
-
expect(error.code).to eql("unknown_card_exception")
|
244
|
-
expect(error.response_code).to eql("R1")
|
245
|
-
expect(error.response_text).to eql("STOP RECURRING")
|
246
|
-
}
|
247
|
-
end
|
248
|
-
|
249
|
-
it "Visa response code should indicate invalid acquirer" do
|
250
|
-
expect {
|
251
|
-
Hps::TestHelper.charge_valid_visa(10.30)
|
252
|
-
}.to raise_error(Hps::CardException) { |error|
|
253
|
-
expect(error.code).to eql("processing_error")
|
254
|
-
expect(error.response_code).to eql("58")
|
255
|
-
expect(error.response_text).to eql("SERV NOT ALLOWED")
|
256
|
-
}
|
257
|
-
end
|
258
|
-
|
259
|
-
it "Visa response code should indicate exceeds limit" do
|
260
|
-
expect {
|
261
|
-
Hps::TestHelper.charge_valid_visa(10.09)
|
262
|
-
}.to raise_error(Hps::CardException) { |error|
|
263
|
-
expect(error.code).to eql("card_declined")
|
264
|
-
expect(error.response_code).to eql("61")
|
265
|
-
expect(error.response_text).to eql("DECLINE")
|
266
|
-
}
|
267
|
-
end
|
268
|
-
|
269
|
-
it "Visa response code should indicate restricted card" do
|
270
|
-
expect {
|
271
|
-
Hps::TestHelper.charge_valid_visa(10.10)
|
272
|
-
}.to raise_error(Hps::CardException) { |error|
|
273
|
-
expect(error.code).to eql("card_declined")
|
274
|
-
expect(error.response_code).to eql("62")
|
275
|
-
expect(error.response_text).to eql("DECLINE")
|
276
|
-
}
|
277
|
-
end
|
278
|
-
|
279
|
-
it "Visa response code should indicate security violation" do
|
280
|
-
expect {
|
281
|
-
Hps::TestHelper.charge_valid_visa(10.11)
|
282
|
-
}.to raise_error(Hps::CardException) { |error|
|
283
|
-
expect(error.code).to eql("card_declined")
|
284
|
-
expect(error.response_code).to eql("65")
|
285
|
-
expect(error.response_text).to eql("DECLINE")
|
286
|
-
}
|
287
|
-
end
|
288
|
-
|
289
|
-
it "Visa response code should indicate check digit error" do
|
290
|
-
expect {
|
291
|
-
Hps::TestHelper.charge_valid_visa(10.05)
|
292
|
-
}.to raise_error(Hps::CardException) { |error|
|
293
|
-
expect(error.code).to eql("incorrect_cvc")
|
294
|
-
expect(error.response_code).to eql("EB")
|
295
|
-
expect(error.response_text).to eql("CHECK DIGIT ERR")
|
296
|
-
}
|
297
|
-
end
|
298
|
-
|
299
|
-
it "Visa response code should indicate switch not available" do
|
300
|
-
expect {
|
301
|
-
Hps::TestHelper.charge_valid_visa(10.33)
|
302
|
-
}.to raise_error(Hps::HpsException) { |error|
|
303
|
-
#}.to raise_error(Hps::CardException) { |error|
|
304
|
-
#expect(error.code).to eql("processing_error")
|
305
|
-
#expect(error.response_code).to eql("14")
|
306
|
-
expect(error.code).to eql("issuer_timeout")
|
307
|
-
expect(error.response_code).to eql("91")
|
308
|
-
expect(error.response_text).to eql("NO REPLY")
|
309
|
-
}
|
310
|
-
end
|
311
|
-
|
312
|
-
it "Visa response code should indicate system error" do
|
313
|
-
expect {
|
314
|
-
Hps::TestHelper.charge_valid_visa(10.21)
|
315
|
-
}.to raise_error(Hps::CardException) { |error|
|
316
|
-
expect(error.code).to eql("processing_error")
|
317
|
-
expect(error.response_code).to eql("96")
|
318
|
-
expect(error.response_text).to eql("SYSTEM ERROR")
|
319
|
-
}
|
320
|
-
end
|
321
|
-
|
322
|
-
it "Visa response code should indicate CVV2 mismatch" do
|
323
|
-
expect {
|
324
|
-
Hps::TestHelper.charge_valid_visa(10.23)
|
325
|
-
}.to raise_error(Hps::CardException) { |error|
|
326
|
-
expect(error.code).to eql("incorrect_cvc")
|
327
|
-
expect(error.response_code).to eql("N7")
|
328
|
-
expect(error.response_text).to eql("CVV2 MISMATCH")
|
329
|
-
}
|
330
|
-
end
|
331
|
-
|
332
|
-
# verify, authorize, refund, and capture
|
333
|
-
|
334
|
-
it "Visa verify should return OK" do
|
335
|
-
service = Hps::HpsChargeService.new()
|
336
|
-
result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
337
|
-
expect(result.response_code).to eql("85")
|
338
|
-
end
|
339
|
-
|
340
|
-
it "Visa verify should return Token" do
|
341
|
-
service = Hps::HpsChargeService.new()
|
342
|
-
result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder,true)
|
343
|
-
expect(result.response_code).to eql("85")
|
344
|
-
expect(result.token_data.response_message).to eql("Success")
|
345
|
-
result.token_data.token_value.should_not eq(nil)
|
346
|
-
|
347
|
-
end
|
348
|
-
|
349
|
-
it "Visa authorize should return OK" do
|
350
|
-
service = Hps::HpsChargeService.new()
|
351
|
-
result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
352
|
-
expect(result.response_code).to eql("00")
|
353
|
-
end
|
354
|
-
|
355
|
-
it "Visa authorize and request token should return OK" do
|
356
|
-
service = Hps::HpsChargeService.new()
|
357
|
-
result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder, true)
|
358
|
-
expect(result.token_data.response_code).to eql("0")
|
359
|
-
expect(result.response_code).to eql("00")
|
360
|
-
end
|
361
|
-
|
362
|
-
it "Visa should refund OK" do
|
363
|
-
service = Hps::HpsChargeService.new()
|
364
|
-
charge = service.charge(25.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
365
|
-
refund = service.refund_transaction(25.00, "usd", charge.transaction_id)
|
366
|
-
expect(refund.response_code).to eql("00")
|
367
|
-
end
|
368
|
-
|
369
|
-
it "Visa authorize and capture should return OK" do
|
370
|
-
service = Hps::HpsChargeService.new()
|
371
|
-
result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
372
|
-
expect(result.response_code).to eql("00")
|
373
|
-
|
374
|
-
capture_result = service.capture(result.transaction_id)
|
375
|
-
expect(capture_result.response_code).to eql("00")
|
376
|
-
end
|
377
|
-
|
378
|
-
end
|
1
|
+
require File.join( File.dirname(__FILE__), "test_helper" )
|
2
|
+
|
3
|
+
describe "Visa Tests" do
|
4
|
+
|
5
|
+
it "Visa when card is ok, should return valid result" do
|
6
|
+
charge = Hps::TestHelper.charge_valid_visa(50)
|
7
|
+
expect(charge.response_code).to eql("00")
|
8
|
+
end
|
9
|
+
|
10
|
+
# avs tests
|
11
|
+
|
12
|
+
# TODO: Gateway changed
|
13
|
+
it "Visa avs result code should equal B" do
|
14
|
+
charge = Hps::TestHelper.charge_valid_visa(90.01)
|
15
|
+
#expect(charge.avs_result_code).to eql("B")
|
16
|
+
expect(charge.avs_result_code).to eql("0")
|
17
|
+
end
|
18
|
+
|
19
|
+
# TODO: Gateway changed
|
20
|
+
it "Visa avs result code should equal C" do
|
21
|
+
charge = Hps::TestHelper.charge_valid_visa(90.02)
|
22
|
+
#expect(charge.avs_result_code).to eql("C")
|
23
|
+
expect(charge.avs_result_code).to eql("0")
|
24
|
+
end
|
25
|
+
|
26
|
+
# TODO: Gateway changed
|
27
|
+
it "Visa avs result code should equal D" do
|
28
|
+
charge = Hps::TestHelper.charge_valid_visa(90.03)
|
29
|
+
#expect(charge.avs_result_code).to eql("D")
|
30
|
+
expect(charge.avs_result_code).to eql("0")
|
31
|
+
end
|
32
|
+
|
33
|
+
# TODO: Gateway changed
|
34
|
+
it "Visa avs result code should equal I" do
|
35
|
+
charge = Hps::TestHelper.charge_valid_visa(90.05)
|
36
|
+
#expect(charge.avs_result_code).to eql("I")
|
37
|
+
expect(charge.avs_result_code).to eql("0")
|
38
|
+
end
|
39
|
+
|
40
|
+
# TODO: Gateway changed
|
41
|
+
it "Visa avs result code should equal M" do
|
42
|
+
charge = Hps::TestHelper.charge_valid_visa(90.06)
|
43
|
+
#expect(charge.avs_result_code).to eql("M")
|
44
|
+
expect(charge.avs_result_code).to eql("0")
|
45
|
+
end
|
46
|
+
|
47
|
+
# TODO: Gateway changed
|
48
|
+
it "Visa avs result code should equal P" do
|
49
|
+
charge = Hps::TestHelper.charge_valid_visa(90.07)
|
50
|
+
#expect(charge.avs_result_code).to eql("P")
|
51
|
+
expect(charge.avs_result_code).to eql("0")
|
52
|
+
end
|
53
|
+
|
54
|
+
# cvv tests
|
55
|
+
|
56
|
+
it "Visa cvv result code should equal M" do
|
57
|
+
charge = Hps::TestHelper.charge_valid_visa(96.01)
|
58
|
+
expect(charge.cvv_result_code).to eql("M")
|
59
|
+
end
|
60
|
+
|
61
|
+
it "Visa cvv result code should equal N" do
|
62
|
+
charge = Hps::TestHelper.charge_valid_visa(96.02)
|
63
|
+
expect(charge.cvv_result_code).to eql("N")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "Visa cvv result code should equal P" do
|
67
|
+
charge = Hps::TestHelper.charge_valid_visa(96.03)
|
68
|
+
expect(charge.cvv_result_code).to eql("P")
|
69
|
+
end
|
70
|
+
|
71
|
+
it "Visa cvv result code should equal S" do
|
72
|
+
charge = Hps::TestHelper.charge_valid_visa(96.04)
|
73
|
+
expect(charge.cvv_result_code).to eql("S")
|
74
|
+
end
|
75
|
+
|
76
|
+
it "Visa cvv result code should equal U" do
|
77
|
+
charge = Hps::TestHelper.charge_valid_visa(96.05)
|
78
|
+
expect(charge.cvv_result_code).to eql("U")
|
79
|
+
end
|
80
|
+
|
81
|
+
# visa to visa 2nd
|
82
|
+
|
83
|
+
it "Visa response code should indicate refer card issuer" do
|
84
|
+
expect {
|
85
|
+
Hps::TestHelper.charge_valid_visa(10.34)
|
86
|
+
}.to raise_error(Hps::CardException) { |error|
|
87
|
+
expect(error.code).to eql("card_declined")
|
88
|
+
expect(error.response_code).to eql("02")
|
89
|
+
expect(error.response_text).to eql("CALL")
|
90
|
+
}
|
91
|
+
end
|
92
|
+
|
93
|
+
it "Visa response code should indicate invalid merchant" do
|
94
|
+
expect {
|
95
|
+
Hps::TestHelper.charge_valid_visa(10.22)
|
96
|
+
}.to raise_error(Hps::CardException) { |error|
|
97
|
+
expect(error.code).to eql("card_declined")
|
98
|
+
expect(error.response_code).to eql("03")
|
99
|
+
expect(error.response_text).to eql("TERM ID ERROR")
|
100
|
+
}
|
101
|
+
end
|
102
|
+
|
103
|
+
it "Visa response code should indicate pickup card" do
|
104
|
+
expect {
|
105
|
+
Hps::TestHelper.charge_valid_visa(10.04)
|
106
|
+
}.to raise_error(Hps::CardException) { |error|
|
107
|
+
expect(error.code).to eql("card_declined")
|
108
|
+
expect(error.response_code).to eql("44")
|
109
|
+
expect(error.response_text).to eql("HOLD-CALL")
|
110
|
+
}
|
111
|
+
end
|
112
|
+
|
113
|
+
it "Visa response code should indicate do not honor" do
|
114
|
+
expect {
|
115
|
+
Hps::TestHelper.charge_valid_visa(10.25)
|
116
|
+
}.to raise_error(Hps::CardException) { |error|
|
117
|
+
expect(error.code).to eql("card_declined")
|
118
|
+
expect(error.response_code).to eql("05")
|
119
|
+
expect(error.response_text).to eql("DECLINE")
|
120
|
+
}
|
121
|
+
end
|
122
|
+
|
123
|
+
it "Visa response code should indicate invalid transaction" do
|
124
|
+
expect {
|
125
|
+
Hps::TestHelper.charge_valid_visa(10.26)
|
126
|
+
}.to raise_error(Hps::CardException) { |error|
|
127
|
+
expect(error.code).to eql("processing_error")
|
128
|
+
expect(error.response_code).to eql("12")
|
129
|
+
expect(error.response_text).to eql("INVALID TRANS")
|
130
|
+
}
|
131
|
+
end
|
132
|
+
|
133
|
+
it "Visa response code should indicate invalid amount" do
|
134
|
+
expect {
|
135
|
+
Hps::TestHelper.charge_valid_visa(10.27)
|
136
|
+
}.to raise_error(Hps::CardException) { |error|
|
137
|
+
expect(error.code).to eql("invalid_amount")
|
138
|
+
expect(error.response_code).to eql("13")
|
139
|
+
expect(error.response_text).to eql("AMOUNT ERROR")
|
140
|
+
}
|
141
|
+
end
|
142
|
+
|
143
|
+
it "Visa response code should indicate invalid card" do
|
144
|
+
expect {
|
145
|
+
Hps::TestHelper.charge_valid_visa(10.28)
|
146
|
+
}.to raise_error(Hps::CardException) { |error|
|
147
|
+
expect(error.code).to eql("incorrect_number")
|
148
|
+
expect(error.response_code).to eql("14")
|
149
|
+
expect(error.response_text).to eql("CARD NO. ERROR")
|
150
|
+
}
|
151
|
+
end
|
152
|
+
|
153
|
+
it "Visa response code should indicate invalid issuer" do
|
154
|
+
expect {
|
155
|
+
Hps::TestHelper.charge_valid_visa(10.18)
|
156
|
+
}.to raise_error(Hps::CardException) { |error|
|
157
|
+
expect(error.code).to eql("processing_error")
|
158
|
+
expect(error.response_code).to eql("15")
|
159
|
+
expect(error.response_text).to eql("NO SUCH ISSUER")
|
160
|
+
}
|
161
|
+
end
|
162
|
+
|
163
|
+
it "Visa response code should indicate system error re-enter" do
|
164
|
+
expect {
|
165
|
+
Hps::TestHelper.charge_valid_visa(10.29)
|
166
|
+
}.to raise_error(Hps::CardException) { |error|
|
167
|
+
expect(error.code).to eql("processing_error")
|
168
|
+
expect(error.response_code).to eql("19")
|
169
|
+
expect(error.response_text).to eql("RE ENTER")
|
170
|
+
}
|
171
|
+
end
|
172
|
+
|
173
|
+
it "Visa response code should indicate lost card" do
|
174
|
+
expect {
|
175
|
+
Hps::TestHelper.charge_valid_visa(10.31)
|
176
|
+
}.to raise_error(Hps::CardException) { |error|
|
177
|
+
expect(error.code).to eql("card_declined")
|
178
|
+
expect(error.response_code).to eql("41")
|
179
|
+
expect(error.response_text).to eql("HOLD-CALL")
|
180
|
+
}
|
181
|
+
end
|
182
|
+
|
183
|
+
it "Visa response code should indicate hot card pickup" do
|
184
|
+
expect {
|
185
|
+
Hps::TestHelper.charge_valid_visa(10.03)
|
186
|
+
}.to raise_error(Hps::CardException) { |error|
|
187
|
+
expect(error.code).to eql("card_declined")
|
188
|
+
expect(error.response_code).to eql("43")
|
189
|
+
expect(error.response_text).to eql("HOLD-CALL")
|
190
|
+
}
|
191
|
+
end
|
192
|
+
|
193
|
+
it "Visa response code should indicate insufficient fund" do
|
194
|
+
expect {
|
195
|
+
Hps::TestHelper.charge_valid_visa(10.08)
|
196
|
+
}.to raise_error(Hps::CardException) { |error|
|
197
|
+
expect(error.code).to eql("card_declined")
|
198
|
+
# TODO: Gateway changed
|
199
|
+
#expect(error.response_code).to eql("05")
|
200
|
+
expect(error.response_code).to eql("51")
|
201
|
+
expect(error.response_text).to eql("DECLINE")
|
202
|
+
}
|
203
|
+
end
|
204
|
+
|
205
|
+
it "Visa response code should indicate no checking account" do
|
206
|
+
expect {
|
207
|
+
Hps::TestHelper.charge_valid_visa(10.16)
|
208
|
+
}.to raise_error(Hps::CardException) { |error|
|
209
|
+
expect(error.code).to eql("processing_error")
|
210
|
+
expect(error.response_code).to eql("52")
|
211
|
+
expect(error.response_text).to eql("NO CHECK ACCOUNT")
|
212
|
+
}
|
213
|
+
end
|
214
|
+
|
215
|
+
it "Visa response code should indicate no savings account" do
|
216
|
+
expect {
|
217
|
+
Hps::TestHelper.charge_valid_visa(10.17)
|
218
|
+
}.to raise_error(Hps::CardException) { |error|
|
219
|
+
expect(error.code).to eql("processing_error")
|
220
|
+
expect(error.response_code).to eql("53")
|
221
|
+
expect(error.response_text).to eql("NO SAVE ACCOUNT")
|
222
|
+
}
|
223
|
+
end
|
224
|
+
|
225
|
+
it "Visa response code should indicate expired card" do
|
226
|
+
expect {
|
227
|
+
Hps::TestHelper.charge_valid_visa(10.32)
|
228
|
+
}.to raise_error(Hps::CardException) { |error|
|
229
|
+
expect(error.code).to eql("expired_card")
|
230
|
+
expect(error.response_code).to eql("54")
|
231
|
+
expect(error.response_text).to eql("EXPIRED CARD")
|
232
|
+
}
|
233
|
+
end
|
234
|
+
|
235
|
+
it "Visa response code should indicate txn not permitted on card card" do
|
236
|
+
expect {
|
237
|
+
Hps::TestHelper.charge_valid_visa(10.20)
|
238
|
+
}.to raise_error(Hps::CardException) { |error|
|
239
|
+
# TODO: Gateway changed
|
240
|
+
#expect(error.code).to eql("processing_error")
|
241
|
+
#expect(error.response_code).to eql("57")
|
242
|
+
#expect(error.response_text).to eql("SERV NOT ALLOWED")
|
243
|
+
expect(error.code).to eql("unknown_card_exception")
|
244
|
+
expect(error.response_code).to eql("R1")
|
245
|
+
expect(error.response_text).to eql("STOP RECURRING")
|
246
|
+
}
|
247
|
+
end
|
248
|
+
|
249
|
+
it "Visa response code should indicate invalid acquirer" do
|
250
|
+
expect {
|
251
|
+
Hps::TestHelper.charge_valid_visa(10.30)
|
252
|
+
}.to raise_error(Hps::CardException) { |error|
|
253
|
+
expect(error.code).to eql("processing_error")
|
254
|
+
expect(error.response_code).to eql("58")
|
255
|
+
expect(error.response_text).to eql("SERV NOT ALLOWED")
|
256
|
+
}
|
257
|
+
end
|
258
|
+
|
259
|
+
it "Visa response code should indicate exceeds limit" do
|
260
|
+
expect {
|
261
|
+
Hps::TestHelper.charge_valid_visa(10.09)
|
262
|
+
}.to raise_error(Hps::CardException) { |error|
|
263
|
+
expect(error.code).to eql("card_declined")
|
264
|
+
expect(error.response_code).to eql("61")
|
265
|
+
expect(error.response_text).to eql("DECLINE")
|
266
|
+
}
|
267
|
+
end
|
268
|
+
|
269
|
+
it "Visa response code should indicate restricted card" do
|
270
|
+
expect {
|
271
|
+
Hps::TestHelper.charge_valid_visa(10.10)
|
272
|
+
}.to raise_error(Hps::CardException) { |error|
|
273
|
+
expect(error.code).to eql("card_declined")
|
274
|
+
expect(error.response_code).to eql("62")
|
275
|
+
expect(error.response_text).to eql("DECLINE")
|
276
|
+
}
|
277
|
+
end
|
278
|
+
|
279
|
+
it "Visa response code should indicate security violation" do
|
280
|
+
expect {
|
281
|
+
Hps::TestHelper.charge_valid_visa(10.11)
|
282
|
+
}.to raise_error(Hps::CardException) { |error|
|
283
|
+
expect(error.code).to eql("card_declined")
|
284
|
+
expect(error.response_code).to eql("65")
|
285
|
+
expect(error.response_text).to eql("DECLINE")
|
286
|
+
}
|
287
|
+
end
|
288
|
+
|
289
|
+
it "Visa response code should indicate check digit error" do
|
290
|
+
expect {
|
291
|
+
Hps::TestHelper.charge_valid_visa(10.05)
|
292
|
+
}.to raise_error(Hps::CardException) { |error|
|
293
|
+
expect(error.code).to eql("incorrect_cvc")
|
294
|
+
expect(error.response_code).to eql("EB")
|
295
|
+
expect(error.response_text).to eql("CHECK DIGIT ERR")
|
296
|
+
}
|
297
|
+
end
|
298
|
+
|
299
|
+
it "Visa response code should indicate switch not available" do
|
300
|
+
expect {
|
301
|
+
Hps::TestHelper.charge_valid_visa(10.33)
|
302
|
+
}.to raise_error(Hps::HpsException) { |error|
|
303
|
+
#}.to raise_error(Hps::CardException) { |error|
|
304
|
+
#expect(error.code).to eql("processing_error")
|
305
|
+
#expect(error.response_code).to eql("14")
|
306
|
+
expect(error.code).to eql("issuer_timeout")
|
307
|
+
expect(error.response_code).to eql("91")
|
308
|
+
expect(error.response_text).to eql("NO REPLY")
|
309
|
+
}
|
310
|
+
end
|
311
|
+
|
312
|
+
it "Visa response code should indicate system error" do
|
313
|
+
expect {
|
314
|
+
Hps::TestHelper.charge_valid_visa(10.21)
|
315
|
+
}.to raise_error(Hps::CardException) { |error|
|
316
|
+
expect(error.code).to eql("processing_error")
|
317
|
+
expect(error.response_code).to eql("96")
|
318
|
+
expect(error.response_text).to eql("SYSTEM ERROR")
|
319
|
+
}
|
320
|
+
end
|
321
|
+
|
322
|
+
it "Visa response code should indicate CVV2 mismatch" do
|
323
|
+
expect {
|
324
|
+
Hps::TestHelper.charge_valid_visa(10.23)
|
325
|
+
}.to raise_error(Hps::CardException) { |error|
|
326
|
+
expect(error.code).to eql("incorrect_cvc")
|
327
|
+
expect(error.response_code).to eql("N7")
|
328
|
+
expect(error.response_text).to eql("CVV2 MISMATCH")
|
329
|
+
}
|
330
|
+
end
|
331
|
+
|
332
|
+
# verify, authorize, refund, and capture
|
333
|
+
|
334
|
+
it "Visa verify should return OK" do
|
335
|
+
service = Hps::HpsChargeService.new()
|
336
|
+
result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
337
|
+
expect(result.response_code).to eql("85")
|
338
|
+
end
|
339
|
+
|
340
|
+
it "Visa verify should return Token" do
|
341
|
+
service = Hps::HpsChargeService.new()
|
342
|
+
result = service.verify(Hps::TestData.valid_visa, Hps::TestData.valid_cardholder,true)
|
343
|
+
expect(result.response_code).to eql("85")
|
344
|
+
expect(result.token_data.response_message).to eql("Success")
|
345
|
+
result.token_data.token_value.should_not eq(nil)
|
346
|
+
|
347
|
+
end
|
348
|
+
|
349
|
+
it "Visa authorize should return OK" do
|
350
|
+
service = Hps::HpsChargeService.new()
|
351
|
+
result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
352
|
+
expect(result.response_code).to eql("00")
|
353
|
+
end
|
354
|
+
|
355
|
+
it "Visa authorize and request token should return OK" do
|
356
|
+
service = Hps::HpsChargeService.new()
|
357
|
+
result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder, true)
|
358
|
+
expect(result.token_data.response_code).to eql("0")
|
359
|
+
expect(result.response_code).to eql("00")
|
360
|
+
end
|
361
|
+
|
362
|
+
it "Visa should refund OK" do
|
363
|
+
service = Hps::HpsChargeService.new()
|
364
|
+
charge = service.charge(25.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
365
|
+
refund = service.refund_transaction(25.00, "usd", charge.transaction_id)
|
366
|
+
expect(refund.response_code).to eql("00")
|
367
|
+
end
|
368
|
+
|
369
|
+
it "Visa authorize and capture should return OK" do
|
370
|
+
service = Hps::HpsChargeService.new()
|
371
|
+
result = service.authorize(50.00, "usd", Hps::TestData.valid_visa, Hps::TestData.valid_cardholder)
|
372
|
+
expect(result.response_code).to eql("00")
|
373
|
+
|
374
|
+
capture_result = service.capture(result.transaction_id)
|
375
|
+
expect(capture_result.response_code).to eql("00")
|
376
|
+
end
|
377
|
+
|
378
|
+
end
|