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/discover_tests.rb
CHANGED
@@ -1,325 +1,325 @@
|
|
1
|
-
require File.join( File.dirname(__FILE__), "test_helper" )
|
2
|
-
|
3
|
-
describe "Discover Tests" do
|
4
|
-
|
5
|
-
it "Discover when card is ok should return valid result" do
|
6
|
-
charge = Hps::TestHelper.charge_valid_discover(50)
|
7
|
-
expect(charge.response_code).to eql("00")
|
8
|
-
end
|
9
|
-
|
10
|
-
it "Discover avs result code should equal A" do
|
11
|
-
charge = Hps::TestHelper.charge_valid_discover(91.01)
|
12
|
-
expect(charge.avs_result_code).to eql("A")
|
13
|
-
end
|
14
|
-
|
15
|
-
it "Discover avs result code should equal N" do
|
16
|
-
charge = Hps::TestHelper.charge_valid_discover(91.02)
|
17
|
-
expect(charge.avs_result_code).to eql("N")
|
18
|
-
end
|
19
|
-
|
20
|
-
it "Discover avs result code should equal U" do
|
21
|
-
charge = Hps::TestHelper.charge_valid_discover(91.05)
|
22
|
-
expect(charge.avs_result_code).to eql("U")
|
23
|
-
end
|
24
|
-
|
25
|
-
it "Discover avs result code should equal Y" do
|
26
|
-
charge = Hps::TestHelper.charge_valid_discover(91.06)
|
27
|
-
expect(charge.avs_result_code).to eql("Y")
|
28
|
-
end
|
29
|
-
|
30
|
-
it "Discover avs result code should equal Z" do
|
31
|
-
charge = Hps::TestHelper.charge_valid_discover(91.07)
|
32
|
-
expect(charge.avs_result_code).to eql("Z")
|
33
|
-
end
|
34
|
-
|
35
|
-
# discover to 2nd visa
|
36
|
-
|
37
|
-
it "Discover response code should indicate refer card issuer" do
|
38
|
-
expect {
|
39
|
-
Hps::TestHelper.charge_valid_discover(10.34)
|
40
|
-
}.to raise_error(Hps::CardException) { |error|
|
41
|
-
expect(error.code).to eql("card_declined")
|
42
|
-
expect(error.response_code).to eql("02")
|
43
|
-
expect(error.response_text).to eql("CALL")
|
44
|
-
}
|
45
|
-
end
|
46
|
-
|
47
|
-
it "Discover response code should indicate invalid merchant" do
|
48
|
-
expect {
|
49
|
-
Hps::TestHelper.charge_valid_discover(10.22)
|
50
|
-
}.to raise_error(Hps::CardException) { |error|
|
51
|
-
expect(error.code).to eql("card_declined")
|
52
|
-
expect(error.response_code).to eql("03")
|
53
|
-
expect(error.response_text).to eql("TERM ID ERROR")
|
54
|
-
}
|
55
|
-
end
|
56
|
-
|
57
|
-
it "Discover response code should indicate pickup card" do
|
58
|
-
expect {
|
59
|
-
Hps::TestHelper.charge_valid_discover(10.04)
|
60
|
-
}.to raise_error(Hps::CardException) { |error|
|
61
|
-
expect(error.code).to eql("card_declined")
|
62
|
-
expect(error.response_code).to eql("44")
|
63
|
-
expect(error.response_text).to eql("HOLD-CALL")
|
64
|
-
}
|
65
|
-
end
|
66
|
-
|
67
|
-
it "Discover response code should indicate do not honor" do
|
68
|
-
expect {
|
69
|
-
Hps::TestHelper.charge_valid_discover(10.25)
|
70
|
-
}.to raise_error(Hps::CardException) { |error|
|
71
|
-
expect(error.code).to eql("card_declined")
|
72
|
-
expect(error.response_code).to eql("05")
|
73
|
-
expect(error.response_text).to eql("DECLINE")
|
74
|
-
}
|
75
|
-
end
|
76
|
-
|
77
|
-
it "Discover response code should indicate invalid transaction" do
|
78
|
-
expect {
|
79
|
-
Hps::TestHelper.charge_valid_discover(10.26)
|
80
|
-
}.to raise_error(Hps::CardException) { |error|
|
81
|
-
expect(error.code).to eql("processing_error")
|
82
|
-
expect(error.response_code).to eql("12")
|
83
|
-
expect(error.response_text).to eql("INVALID TRANS")
|
84
|
-
}
|
85
|
-
end
|
86
|
-
|
87
|
-
it "Discover response code should indicate invalid amount" do
|
88
|
-
expect {
|
89
|
-
Hps::TestHelper.charge_valid_discover(10.27)
|
90
|
-
}.to raise_error(Hps::CardException) { |error|
|
91
|
-
expect(error.code).to eql("invalid_amount")
|
92
|
-
expect(error.response_code).to eql("13")
|
93
|
-
expect(error.response_text).to eql("AMOUNT ERROR")
|
94
|
-
}
|
95
|
-
end
|
96
|
-
|
97
|
-
it "Discover response code should indicate invalid card" do
|
98
|
-
expect {
|
99
|
-
Hps::TestHelper.charge_valid_discover(10.28)
|
100
|
-
}.to raise_error(Hps::CardException) { |error|
|
101
|
-
expect(error.code).to eql("incorrect_number")
|
102
|
-
expect(error.response_code).to eql("14")
|
103
|
-
expect(error.response_text).to eql("CARD NO. ERROR")
|
104
|
-
}
|
105
|
-
end
|
106
|
-
|
107
|
-
# TODO: Gateway change, used to raise exception but doesn't now
|
108
|
-
# it "Discover response code should indicate invalid issuer" do
|
109
|
-
# expect {
|
110
|
-
# Hps::TestHelper.charge_valid_discover(10.18)
|
111
|
-
# }.to raise_error(Hps::CardException) { |error|
|
112
|
-
# expect(error.code).to eql("processing_error")
|
113
|
-
# expect(error.response_code).to eql("15")
|
114
|
-
# expect(error.response_text).to eql("NO SUCH ISSUER")
|
115
|
-
# }
|
116
|
-
# end
|
117
|
-
|
118
|
-
it "Discover response code should indicate system error re-enter" do
|
119
|
-
expect {
|
120
|
-
Hps::TestHelper.charge_valid_discover(10.29)
|
121
|
-
}.to raise_error(Hps::CardException) { |error|
|
122
|
-
expect(error.code).to eql("processing_error")
|
123
|
-
expect(error.response_code).to eql("19")
|
124
|
-
expect(error.response_text).to eql("RE ENTER")
|
125
|
-
}
|
126
|
-
end
|
127
|
-
|
128
|
-
it "Discover response code should indicate message format error" do
|
129
|
-
expect {
|
130
|
-
Hps::TestHelper.charge_valid_discover(10.06)
|
131
|
-
}.to raise_error(Hps::CardException) { |error|
|
132
|
-
expect(error.code).to eql("processing_error")
|
133
|
-
expect(error.response_code).to eql("EC")
|
134
|
-
expect(error.response_text).to eql("CID FORMAT ERROR")
|
135
|
-
}
|
136
|
-
end
|
137
|
-
|
138
|
-
it "Discover response code should indicate lost card" do
|
139
|
-
expect {
|
140
|
-
Hps::TestHelper.charge_valid_discover(10.31)
|
141
|
-
}.to raise_error(Hps::CardException) { |error|
|
142
|
-
expect(error.code).to eql("card_declined")
|
143
|
-
expect(error.response_code).to eql("41")
|
144
|
-
expect(error.response_text).to eql("HOLD-CALL")
|
145
|
-
}
|
146
|
-
end
|
147
|
-
|
148
|
-
it "Discover response code should indicate insufficient funds" do
|
149
|
-
expect {
|
150
|
-
Hps::TestHelper.charge_valid_discover(10.08)
|
151
|
-
}.to raise_error(Hps::CardException) { |error|
|
152
|
-
expect(error.code).to eql("card_declined")
|
153
|
-
expect(error.response_code).to eql("05")
|
154
|
-
expect(error.response_text).to eql("DECLINE")
|
155
|
-
}
|
156
|
-
end
|
157
|
-
|
158
|
-
it "Discover response code should indicate no saving account" do
|
159
|
-
expect {
|
160
|
-
Hps::TestHelper.charge_valid_discover(10.17)
|
161
|
-
}.to raise_error(Hps::CardException) { |error|
|
162
|
-
expect(error.code).to eql("processing_error")
|
163
|
-
expect(error.response_code).to eql("53")
|
164
|
-
expect(error.response_text).to eql("NO SAVE ACCOUNT")
|
165
|
-
}
|
166
|
-
end
|
167
|
-
|
168
|
-
it "Discover response code should indicate expired card" do
|
169
|
-
expect {
|
170
|
-
Hps::TestHelper.charge_valid_discover(10.32)
|
171
|
-
}.to raise_error(Hps::CardException) { |error|
|
172
|
-
expect(error.code).to eql("expired_card")
|
173
|
-
expect(error.response_code).to eql("54")
|
174
|
-
expect(error.response_text).to eql("EXPIRED CARD")
|
175
|
-
}
|
176
|
-
end
|
177
|
-
|
178
|
-
it "Discover response code should indicate no card record" do
|
179
|
-
expect {
|
180
|
-
Hps::TestHelper.charge_valid_discover(10.24)
|
181
|
-
}.to raise_error(Hps::CardException) { |error|
|
182
|
-
expect(error.code).to eql("card_declined")
|
183
|
-
expect(error.response_code).to eql("56")
|
184
|
-
expect(error.response_text).to eql("INVALID TRANS")
|
185
|
-
}
|
186
|
-
end
|
187
|
-
|
188
|
-
it "Discover response code should indicate txn not permitted on card" do
|
189
|
-
expect {
|
190
|
-
Hps::TestHelper.charge_valid_discover(10.20)
|
191
|
-
}.to raise_error(Hps::CardException) { |error|
|
192
|
-
expect(error.code).to eql("processing_error")
|
193
|
-
expect(error.response_code).to eql("57")
|
194
|
-
expect(error.response_text).to eql("SERV NOT ALLOWED")
|
195
|
-
}
|
196
|
-
end
|
197
|
-
|
198
|
-
it "Discover response code should indicate invalid aquirer" do
|
199
|
-
expect {
|
200
|
-
Hps::TestHelper.charge_valid_discover(10.30)
|
201
|
-
}.to raise_error(Hps::CardException) { |error|
|
202
|
-
expect(error.code).to eql("processing_error")
|
203
|
-
expect(error.response_code).to eql("58")
|
204
|
-
expect(error.response_text).to eql("SERV NOT ALLOWED")
|
205
|
-
}
|
206
|
-
end
|
207
|
-
|
208
|
-
it "Discover response code should indicate exceeds limit" do
|
209
|
-
expect {
|
210
|
-
Hps::TestHelper.charge_valid_discover(10.09)
|
211
|
-
}.to raise_error(Hps::CardException) { |error|
|
212
|
-
expect(error.code).to eql("card_declined")
|
213
|
-
expect(error.response_code).to eql("61")
|
214
|
-
expect(error.response_text).to eql("DECLINE")
|
215
|
-
}
|
216
|
-
end
|
217
|
-
|
218
|
-
it "Discover response code should indicate restricted card" do
|
219
|
-
expect {
|
220
|
-
Hps::TestHelper.charge_valid_discover(10.10)
|
221
|
-
}.to raise_error(Hps::CardException) { |error|
|
222
|
-
expect(error.code).to eql("card_declined")
|
223
|
-
expect(error.response_code).to eql("62")
|
224
|
-
expect(error.response_text).to eql("DECLINE")
|
225
|
-
}
|
226
|
-
end
|
227
|
-
|
228
|
-
it "Discover response code should indicate security violation" do
|
229
|
-
expect {
|
230
|
-
Hps::TestHelper.charge_valid_discover(10.19)
|
231
|
-
}.to raise_error(Hps::CardException) { |error|
|
232
|
-
expect(error.code).to eql("card_declined")
|
233
|
-
expect(error.response_code).to eql("63")
|
234
|
-
expect(error.response_text).to eql("SEC VIOLATION")
|
235
|
-
}
|
236
|
-
end
|
237
|
-
|
238
|
-
it "Discover response code should indicate exceeds freq limit" do
|
239
|
-
expect {
|
240
|
-
Hps::TestHelper.charge_valid_discover(10.11)
|
241
|
-
}.to raise_error(Hps::CardException) { |error|
|
242
|
-
expect(error.code).to eql("card_declined")
|
243
|
-
expect(error.response_code).to eql("65")
|
244
|
-
expect(error.response_text).to eql("DECLINE")
|
245
|
-
}
|
246
|
-
end
|
247
|
-
|
248
|
-
it "Discover response code should indicate no account" do
|
249
|
-
expect {
|
250
|
-
Hps::TestHelper.charge_valid_discover(10.13)
|
251
|
-
}.to raise_error(Hps::CardException) { |error|
|
252
|
-
expect(error.code).to eql("card_declined")
|
253
|
-
expect(error.response_code).to eql("78")
|
254
|
-
expect(error.response_text).to eql("NO ACCOUNT")
|
255
|
-
}
|
256
|
-
end
|
257
|
-
|
258
|
-
it "Discover response code should indicate invalid account" do
|
259
|
-
expect {
|
260
|
-
Hps::TestHelper.charge_valid_discover(10.14)
|
261
|
-
}.to raise_error(Hps::CardException) { |error|
|
262
|
-
expect(error.code).to eql("incorrect_number")
|
263
|
-
expect(error.response_code).to eql("14")
|
264
|
-
expect(error.response_text).to eql("CARD NO. ERROR")
|
265
|
-
}
|
266
|
-
end
|
267
|
-
|
268
|
-
# TODO: Gateway change, used to throw exception but now it doesn't
|
269
|
-
# it "Discover response code should indicate switch not available" do
|
270
|
-
# expect {
|
271
|
-
# Hps::TestHelper.charge_valid_discover(10.33)
|
272
|
-
# }.to raise_error(Hps::HpsException) { |error|
|
273
|
-
# #}.to raise_error(Hps::CardException) { |error|
|
274
|
-
# #expect(error.code).to eql("processing_error")
|
275
|
-
# #expect(error.response_code).to eql("14")
|
276
|
-
# expect(error.code).to eql("issuer_timeout")
|
277
|
-
# expect(error.response_code).to eql("91")
|
278
|
-
# expect(error.response_text).to eql("NO REPLY")
|
279
|
-
# }
|
280
|
-
# end
|
281
|
-
|
282
|
-
it "Discover response code should indicate system error" do
|
283
|
-
expect {
|
284
|
-
Hps::TestHelper.charge_valid_discover(10.26)
|
285
|
-
}.to raise_error(Hps::CardException) { |error|
|
286
|
-
expect(error.code).to eql("processing_error")
|
287
|
-
# TODO: Gateway change
|
288
|
-
#expect(error.response_code).to eql("96")
|
289
|
-
#expect(error.response_text).to eql("SYSTEM ERROR")
|
290
|
-
expect(error.response_code).to eql("12")
|
291
|
-
expect(error.response_text).to eql("INVALID TRANS")
|
292
|
-
}
|
293
|
-
end
|
294
|
-
|
295
|
-
# Verify, Authorize, and Capture
|
296
|
-
|
297
|
-
it "Discover verify should return OK" do
|
298
|
-
service = Hps::HpsChargeService.new()
|
299
|
-
result = service.verify(Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
|
300
|
-
expect(result.response_code).to eql("85")
|
301
|
-
end
|
302
|
-
|
303
|
-
it "Discover authorize should return OK" do
|
304
|
-
service = Hps::HpsChargeService.new()
|
305
|
-
result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
|
306
|
-
expect(result.response_code).to eql("00")
|
307
|
-
end
|
308
|
-
|
309
|
-
it "Discover authorize and request token should return OK" do
|
310
|
-
service = Hps::HpsChargeService.new()
|
311
|
-
result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder, true)
|
312
|
-
expect(result.token_data.response_code).to eql("0")
|
313
|
-
expect(result.response_code).to eql("00")
|
314
|
-
end
|
315
|
-
|
316
|
-
it "Discover authorize and capture should return OK" do
|
317
|
-
service = Hps::HpsChargeService.new()
|
318
|
-
result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
|
319
|
-
expect(result.response_code).to eql("00")
|
320
|
-
|
321
|
-
capture_result = service.capture(result.transaction_id)
|
322
|
-
expect(capture_result.response_code).to eql("00")
|
323
|
-
end
|
324
|
-
|
1
|
+
require File.join( File.dirname(__FILE__), "test_helper" )
|
2
|
+
|
3
|
+
describe "Discover Tests" do
|
4
|
+
|
5
|
+
it "Discover when card is ok should return valid result" do
|
6
|
+
charge = Hps::TestHelper.charge_valid_discover(50)
|
7
|
+
expect(charge.response_code).to eql("00")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "Discover avs result code should equal A" do
|
11
|
+
charge = Hps::TestHelper.charge_valid_discover(91.01)
|
12
|
+
expect(charge.avs_result_code).to eql("A")
|
13
|
+
end
|
14
|
+
|
15
|
+
it "Discover avs result code should equal N" do
|
16
|
+
charge = Hps::TestHelper.charge_valid_discover(91.02)
|
17
|
+
expect(charge.avs_result_code).to eql("N")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "Discover avs result code should equal U" do
|
21
|
+
charge = Hps::TestHelper.charge_valid_discover(91.05)
|
22
|
+
expect(charge.avs_result_code).to eql("U")
|
23
|
+
end
|
24
|
+
|
25
|
+
it "Discover avs result code should equal Y" do
|
26
|
+
charge = Hps::TestHelper.charge_valid_discover(91.06)
|
27
|
+
expect(charge.avs_result_code).to eql("Y")
|
28
|
+
end
|
29
|
+
|
30
|
+
it "Discover avs result code should equal Z" do
|
31
|
+
charge = Hps::TestHelper.charge_valid_discover(91.07)
|
32
|
+
expect(charge.avs_result_code).to eql("Z")
|
33
|
+
end
|
34
|
+
|
35
|
+
# discover to 2nd visa
|
36
|
+
|
37
|
+
it "Discover response code should indicate refer card issuer" do
|
38
|
+
expect {
|
39
|
+
Hps::TestHelper.charge_valid_discover(10.34)
|
40
|
+
}.to raise_error(Hps::CardException) { |error|
|
41
|
+
expect(error.code).to eql("card_declined")
|
42
|
+
expect(error.response_code).to eql("02")
|
43
|
+
expect(error.response_text).to eql("CALL")
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
it "Discover response code should indicate invalid merchant" do
|
48
|
+
expect {
|
49
|
+
Hps::TestHelper.charge_valid_discover(10.22)
|
50
|
+
}.to raise_error(Hps::CardException) { |error|
|
51
|
+
expect(error.code).to eql("card_declined")
|
52
|
+
expect(error.response_code).to eql("03")
|
53
|
+
expect(error.response_text).to eql("TERM ID ERROR")
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
it "Discover response code should indicate pickup card" do
|
58
|
+
expect {
|
59
|
+
Hps::TestHelper.charge_valid_discover(10.04)
|
60
|
+
}.to raise_error(Hps::CardException) { |error|
|
61
|
+
expect(error.code).to eql("card_declined")
|
62
|
+
expect(error.response_code).to eql("44")
|
63
|
+
expect(error.response_text).to eql("HOLD-CALL")
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
it "Discover response code should indicate do not honor" do
|
68
|
+
expect {
|
69
|
+
Hps::TestHelper.charge_valid_discover(10.25)
|
70
|
+
}.to raise_error(Hps::CardException) { |error|
|
71
|
+
expect(error.code).to eql("card_declined")
|
72
|
+
expect(error.response_code).to eql("05")
|
73
|
+
expect(error.response_text).to eql("DECLINE")
|
74
|
+
}
|
75
|
+
end
|
76
|
+
|
77
|
+
it "Discover response code should indicate invalid transaction" do
|
78
|
+
expect {
|
79
|
+
Hps::TestHelper.charge_valid_discover(10.26)
|
80
|
+
}.to raise_error(Hps::CardException) { |error|
|
81
|
+
expect(error.code).to eql("processing_error")
|
82
|
+
expect(error.response_code).to eql("12")
|
83
|
+
expect(error.response_text).to eql("INVALID TRANS")
|
84
|
+
}
|
85
|
+
end
|
86
|
+
|
87
|
+
it "Discover response code should indicate invalid amount" do
|
88
|
+
expect {
|
89
|
+
Hps::TestHelper.charge_valid_discover(10.27)
|
90
|
+
}.to raise_error(Hps::CardException) { |error|
|
91
|
+
expect(error.code).to eql("invalid_amount")
|
92
|
+
expect(error.response_code).to eql("13")
|
93
|
+
expect(error.response_text).to eql("AMOUNT ERROR")
|
94
|
+
}
|
95
|
+
end
|
96
|
+
|
97
|
+
it "Discover response code should indicate invalid card" do
|
98
|
+
expect {
|
99
|
+
Hps::TestHelper.charge_valid_discover(10.28)
|
100
|
+
}.to raise_error(Hps::CardException) { |error|
|
101
|
+
expect(error.code).to eql("incorrect_number")
|
102
|
+
expect(error.response_code).to eql("14")
|
103
|
+
expect(error.response_text).to eql("CARD NO. ERROR")
|
104
|
+
}
|
105
|
+
end
|
106
|
+
|
107
|
+
# TODO: Gateway change, used to raise exception but doesn't now
|
108
|
+
# it "Discover response code should indicate invalid issuer" do
|
109
|
+
# expect {
|
110
|
+
# Hps::TestHelper.charge_valid_discover(10.18)
|
111
|
+
# }.to raise_error(Hps::CardException) { |error|
|
112
|
+
# expect(error.code).to eql("processing_error")
|
113
|
+
# expect(error.response_code).to eql("15")
|
114
|
+
# expect(error.response_text).to eql("NO SUCH ISSUER")
|
115
|
+
# }
|
116
|
+
# end
|
117
|
+
|
118
|
+
it "Discover response code should indicate system error re-enter" do
|
119
|
+
expect {
|
120
|
+
Hps::TestHelper.charge_valid_discover(10.29)
|
121
|
+
}.to raise_error(Hps::CardException) { |error|
|
122
|
+
expect(error.code).to eql("processing_error")
|
123
|
+
expect(error.response_code).to eql("19")
|
124
|
+
expect(error.response_text).to eql("RE ENTER")
|
125
|
+
}
|
126
|
+
end
|
127
|
+
|
128
|
+
it "Discover response code should indicate message format error" do
|
129
|
+
expect {
|
130
|
+
Hps::TestHelper.charge_valid_discover(10.06)
|
131
|
+
}.to raise_error(Hps::CardException) { |error|
|
132
|
+
expect(error.code).to eql("processing_error")
|
133
|
+
expect(error.response_code).to eql("EC")
|
134
|
+
expect(error.response_text).to eql("CID FORMAT ERROR")
|
135
|
+
}
|
136
|
+
end
|
137
|
+
|
138
|
+
it "Discover response code should indicate lost card" do
|
139
|
+
expect {
|
140
|
+
Hps::TestHelper.charge_valid_discover(10.31)
|
141
|
+
}.to raise_error(Hps::CardException) { |error|
|
142
|
+
expect(error.code).to eql("card_declined")
|
143
|
+
expect(error.response_code).to eql("41")
|
144
|
+
expect(error.response_text).to eql("HOLD-CALL")
|
145
|
+
}
|
146
|
+
end
|
147
|
+
|
148
|
+
it "Discover response code should indicate insufficient funds" do
|
149
|
+
expect {
|
150
|
+
Hps::TestHelper.charge_valid_discover(10.08)
|
151
|
+
}.to raise_error(Hps::CardException) { |error|
|
152
|
+
expect(error.code).to eql("card_declined")
|
153
|
+
expect(error.response_code).to eql("05")
|
154
|
+
expect(error.response_text).to eql("DECLINE")
|
155
|
+
}
|
156
|
+
end
|
157
|
+
|
158
|
+
it "Discover response code should indicate no saving account" do
|
159
|
+
expect {
|
160
|
+
Hps::TestHelper.charge_valid_discover(10.17)
|
161
|
+
}.to raise_error(Hps::CardException) { |error|
|
162
|
+
expect(error.code).to eql("processing_error")
|
163
|
+
expect(error.response_code).to eql("53")
|
164
|
+
expect(error.response_text).to eql("NO SAVE ACCOUNT")
|
165
|
+
}
|
166
|
+
end
|
167
|
+
|
168
|
+
it "Discover response code should indicate expired card" do
|
169
|
+
expect {
|
170
|
+
Hps::TestHelper.charge_valid_discover(10.32)
|
171
|
+
}.to raise_error(Hps::CardException) { |error|
|
172
|
+
expect(error.code).to eql("expired_card")
|
173
|
+
expect(error.response_code).to eql("54")
|
174
|
+
expect(error.response_text).to eql("EXPIRED CARD")
|
175
|
+
}
|
176
|
+
end
|
177
|
+
|
178
|
+
it "Discover response code should indicate no card record" do
|
179
|
+
expect {
|
180
|
+
Hps::TestHelper.charge_valid_discover(10.24)
|
181
|
+
}.to raise_error(Hps::CardException) { |error|
|
182
|
+
expect(error.code).to eql("card_declined")
|
183
|
+
expect(error.response_code).to eql("56")
|
184
|
+
expect(error.response_text).to eql("INVALID TRANS")
|
185
|
+
}
|
186
|
+
end
|
187
|
+
|
188
|
+
it "Discover response code should indicate txn not permitted on card" do
|
189
|
+
expect {
|
190
|
+
Hps::TestHelper.charge_valid_discover(10.20)
|
191
|
+
}.to raise_error(Hps::CardException) { |error|
|
192
|
+
expect(error.code).to eql("processing_error")
|
193
|
+
expect(error.response_code).to eql("57")
|
194
|
+
expect(error.response_text).to eql("SERV NOT ALLOWED")
|
195
|
+
}
|
196
|
+
end
|
197
|
+
|
198
|
+
it "Discover response code should indicate invalid aquirer" do
|
199
|
+
expect {
|
200
|
+
Hps::TestHelper.charge_valid_discover(10.30)
|
201
|
+
}.to raise_error(Hps::CardException) { |error|
|
202
|
+
expect(error.code).to eql("processing_error")
|
203
|
+
expect(error.response_code).to eql("58")
|
204
|
+
expect(error.response_text).to eql("SERV NOT ALLOWED")
|
205
|
+
}
|
206
|
+
end
|
207
|
+
|
208
|
+
it "Discover response code should indicate exceeds limit" do
|
209
|
+
expect {
|
210
|
+
Hps::TestHelper.charge_valid_discover(10.09)
|
211
|
+
}.to raise_error(Hps::CardException) { |error|
|
212
|
+
expect(error.code).to eql("card_declined")
|
213
|
+
expect(error.response_code).to eql("61")
|
214
|
+
expect(error.response_text).to eql("DECLINE")
|
215
|
+
}
|
216
|
+
end
|
217
|
+
|
218
|
+
it "Discover response code should indicate restricted card" do
|
219
|
+
expect {
|
220
|
+
Hps::TestHelper.charge_valid_discover(10.10)
|
221
|
+
}.to raise_error(Hps::CardException) { |error|
|
222
|
+
expect(error.code).to eql("card_declined")
|
223
|
+
expect(error.response_code).to eql("62")
|
224
|
+
expect(error.response_text).to eql("DECLINE")
|
225
|
+
}
|
226
|
+
end
|
227
|
+
|
228
|
+
it "Discover response code should indicate security violation" do
|
229
|
+
expect {
|
230
|
+
Hps::TestHelper.charge_valid_discover(10.19)
|
231
|
+
}.to raise_error(Hps::CardException) { |error|
|
232
|
+
expect(error.code).to eql("card_declined")
|
233
|
+
expect(error.response_code).to eql("63")
|
234
|
+
expect(error.response_text).to eql("SEC VIOLATION")
|
235
|
+
}
|
236
|
+
end
|
237
|
+
|
238
|
+
it "Discover response code should indicate exceeds freq limit" do
|
239
|
+
expect {
|
240
|
+
Hps::TestHelper.charge_valid_discover(10.11)
|
241
|
+
}.to raise_error(Hps::CardException) { |error|
|
242
|
+
expect(error.code).to eql("card_declined")
|
243
|
+
expect(error.response_code).to eql("65")
|
244
|
+
expect(error.response_text).to eql("DECLINE")
|
245
|
+
}
|
246
|
+
end
|
247
|
+
|
248
|
+
it "Discover response code should indicate no account" do
|
249
|
+
expect {
|
250
|
+
Hps::TestHelper.charge_valid_discover(10.13)
|
251
|
+
}.to raise_error(Hps::CardException) { |error|
|
252
|
+
expect(error.code).to eql("card_declined")
|
253
|
+
expect(error.response_code).to eql("78")
|
254
|
+
expect(error.response_text).to eql("NO ACCOUNT")
|
255
|
+
}
|
256
|
+
end
|
257
|
+
|
258
|
+
it "Discover response code should indicate invalid account" do
|
259
|
+
expect {
|
260
|
+
Hps::TestHelper.charge_valid_discover(10.14)
|
261
|
+
}.to raise_error(Hps::CardException) { |error|
|
262
|
+
expect(error.code).to eql("incorrect_number")
|
263
|
+
expect(error.response_code).to eql("14")
|
264
|
+
expect(error.response_text).to eql("CARD NO. ERROR")
|
265
|
+
}
|
266
|
+
end
|
267
|
+
|
268
|
+
# TODO: Gateway change, used to throw exception but now it doesn't
|
269
|
+
# it "Discover response code should indicate switch not available" do
|
270
|
+
# expect {
|
271
|
+
# Hps::TestHelper.charge_valid_discover(10.33)
|
272
|
+
# }.to raise_error(Hps::HpsException) { |error|
|
273
|
+
# #}.to raise_error(Hps::CardException) { |error|
|
274
|
+
# #expect(error.code).to eql("processing_error")
|
275
|
+
# #expect(error.response_code).to eql("14")
|
276
|
+
# expect(error.code).to eql("issuer_timeout")
|
277
|
+
# expect(error.response_code).to eql("91")
|
278
|
+
# expect(error.response_text).to eql("NO REPLY")
|
279
|
+
# }
|
280
|
+
# end
|
281
|
+
|
282
|
+
it "Discover response code should indicate system error" do
|
283
|
+
expect {
|
284
|
+
Hps::TestHelper.charge_valid_discover(10.26)
|
285
|
+
}.to raise_error(Hps::CardException) { |error|
|
286
|
+
expect(error.code).to eql("processing_error")
|
287
|
+
# TODO: Gateway change
|
288
|
+
#expect(error.response_code).to eql("96")
|
289
|
+
#expect(error.response_text).to eql("SYSTEM ERROR")
|
290
|
+
expect(error.response_code).to eql("12")
|
291
|
+
expect(error.response_text).to eql("INVALID TRANS")
|
292
|
+
}
|
293
|
+
end
|
294
|
+
|
295
|
+
# Verify, Authorize, and Capture
|
296
|
+
|
297
|
+
it "Discover verify should return OK" do
|
298
|
+
service = Hps::HpsChargeService.new()
|
299
|
+
result = service.verify(Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
|
300
|
+
expect(result.response_code).to eql("85")
|
301
|
+
end
|
302
|
+
|
303
|
+
it "Discover authorize should return OK" do
|
304
|
+
service = Hps::HpsChargeService.new()
|
305
|
+
result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
|
306
|
+
expect(result.response_code).to eql("00")
|
307
|
+
end
|
308
|
+
|
309
|
+
it "Discover authorize and request token should return OK" do
|
310
|
+
service = Hps::HpsChargeService.new()
|
311
|
+
result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder, true)
|
312
|
+
expect(result.token_data.response_code).to eql("0")
|
313
|
+
expect(result.response_code).to eql("00")
|
314
|
+
end
|
315
|
+
|
316
|
+
it "Discover authorize and capture should return OK" do
|
317
|
+
service = Hps::HpsChargeService.new()
|
318
|
+
result = service.authorize(50.00, "usd", Hps::TestData.valid_discover, Hps::TestData.valid_cardholder)
|
319
|
+
expect(result.response_code).to eql("00")
|
320
|
+
|
321
|
+
capture_result = service.capture(result.transaction_id)
|
322
|
+
expect(capture_result.response_code).to eql("00")
|
323
|
+
end
|
324
|
+
|
325
325
|
end
|