hps 2.3.2 → 2.4.0

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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/Gemfile.lock +59 -0
  4. data/LICENSE.md +264 -264
  5. data/PRIVACY.txt +65 -65
  6. data/README.md +213 -213
  7. data/Rakefile +15 -15
  8. data/examples/sinatra-verify-only/Gemfile +4 -4
  9. data/examples/sinatra-verify-only/app.rb +32 -32
  10. data/examples/sinatra-verify-only/views/index.erb +478 -478
  11. data/examples/sinatra-verify-only/views/result.erb +39 -39
  12. data/hps.gemspec +28 -27
  13. data/lib/hps/configuration.rb +17 -17
  14. data/lib/hps/entities/hps_account_verify.rb +8 -8
  15. data/lib/hps/entities/hps_address.rb +6 -6
  16. data/lib/hps/entities/hps_authorization.rb +12 -12
  17. data/lib/hps/entities/hps_batch.rb +6 -6
  18. data/lib/hps/entities/hps_cardholder.rb +6 -6
  19. data/lib/hps/entities/hps_charge.rb +8 -8
  20. data/lib/hps/entities/hps_charge_exceptions.rb +6 -6
  21. data/lib/hps/entities/hps_check.rb +18 -18
  22. data/lib/hps/entities/hps_check_holder.rb +10 -10
  23. data/lib/hps/entities/hps_check_response.rb +45 -45
  24. data/lib/hps/entities/hps_check_response_details.rb +9 -9
  25. data/lib/hps/entities/hps_credit_card.rb +34 -34
  26. data/lib/hps/entities/hps_direct_market_data.rb +5 -5
  27. data/lib/hps/entities/hps_encryption_data.rb +6 -6
  28. data/lib/hps/entities/hps_gift_card.rb +133 -133
  29. data/lib/hps/entities/hps_manage_tokens.rb +8 -8
  30. data/lib/hps/entities/hps_refund.rb +8 -8
  31. data/lib/hps/entities/hps_report_transaction_details.rb +10 -10
  32. data/lib/hps/entities/hps_report_transaction_summary.rb +6 -6
  33. data/lib/hps/entities/hps_reversal.rb +10 -10
  34. data/lib/hps/entities/hps_token_data.rb +10 -10
  35. data/lib/hps/entities/hps_track_data.rb +5 -5
  36. data/lib/hps/entities/hps_transaction.rb +161 -161
  37. data/lib/hps/entities/hps_transaction_details.rb +6 -6
  38. data/lib/hps/entities/hps_transaction_header.rb +8 -8
  39. data/lib/hps/entities/hps_transaction_type.rb +16 -16
  40. data/lib/hps/entities/hps_void.rb +8 -8
  41. data/lib/hps/infrastructure/api_connection_exception.rb +11 -11
  42. data/lib/hps/infrastructure/authentication_exception.rb +11 -11
  43. data/lib/hps/infrastructure/card_exception.rb +15 -15
  44. data/lib/hps/infrastructure/exceptions.json +547 -547
  45. data/lib/hps/infrastructure/hps_account_type.rb +11 -11
  46. data/lib/hps/infrastructure/hps_check_exception.rb +13 -13
  47. data/lib/hps/infrastructure/hps_check_type.rb +11 -11
  48. data/lib/hps/infrastructure/hps_data_entry_mode.rb +11 -11
  49. data/lib/hps/infrastructure/hps_exception.rb +25 -25
  50. data/lib/hps/infrastructure/hps_exception_mapper.rb +145 -145
  51. data/lib/hps/infrastructure/hps_gateway_response_validation.rb +20 -20
  52. data/lib/hps/infrastructure/hps_input_validation.rb +13 -13
  53. data/lib/hps/infrastructure/hps_sdk_codes.rb +48 -48
  54. data/lib/hps/infrastructure/hps_sec_code.rb +27 -27
  55. data/lib/hps/infrastructure/hps_track_data_method.rb +6 -6
  56. data/lib/hps/infrastructure/invalid_request_exception.rb +15 -15
  57. data/lib/hps/services/hps_batch_service.rb +29 -29
  58. data/lib/hps/services/hps_charge_service.rb +773 -773
  59. data/lib/hps/services/hps_check_service.rb +110 -110
  60. data/lib/hps/services/hps_gift_card_service.rb +301 -301
  61. data/lib/hps/services/hps_service.rb +141 -136
  62. data/lib/hps/version.rb +3 -3
  63. data/lib/hps.rb +63 -63
  64. data/tests/amex_tests.rb +292 -292
  65. data/tests/cert_tests.rb +80 -80
  66. data/tests/certification/card_present_spec.rb +320 -320
  67. data/tests/certification/gift_card_certification_test.rb +106 -106
  68. data/tests/certification/gift_card_certification_tests.rb +107 -107
  69. data/tests/check_tests.rb +50 -50
  70. data/tests/discover_tests.rb +386 -386
  71. data/tests/exception_mapper_tests.rb +311 -311
  72. data/tests/general_tests.rb +140 -140
  73. data/tests/giftcard_tests.rb +212 -212
  74. data/tests/hps_token_service.rb +56 -56
  75. data/tests/mastercard_tests.rb +387 -387
  76. data/tests/secret_key.rb +11 -11
  77. data/tests/test_check.rb +77 -77
  78. data/tests/test_data.rb +138 -138
  79. data/tests/test_helper.rb +179 -179
  80. data/tests/token_tests.rb +512 -512
  81. data/tests/visa_tests.rb +445 -445
  82. metadata +31 -11
@@ -1,301 +1,301 @@
1
- module Hps
2
- class HpsGiftCardService < HpsService
3
- def activate(giftcard, amount, currency = "USD")
4
- HpsInputValidation.check_amount(amount)
5
- txn_type = "GiftCardActivate"
6
-
7
- xml = Builder::XmlMarkup.new
8
- xml.hps :Transaction do
9
- xml.hps txn_type.to_sym do
10
- xml.hps :Block1 do
11
- xml.hps :Amt, amount
12
-
13
- if giftcard.is_a? HpsTokenData
14
- card_data = HpsGiftCard.new
15
- card_data.token_value = giftcard.token_value
16
- else
17
- card_data = giftcard
18
- end
19
-
20
- hydrate_gift_card_data(giftcard, xml)
21
- end
22
- end
23
- end
24
- submit_transaction(xml.target!, txn_type)
25
- end # activate
26
-
27
- def add_value(giftcard, amount, currency = "USD")
28
- HpsInputValidation.check_amount(amount)
29
- txn_type = "GiftCardAddValue"
30
-
31
- xml = Builder::XmlMarkup.new
32
- xml.hps :Transaction do
33
- xml.hps txn_type.to_sym do
34
- xml.hps :Block1 do
35
- xml.hps :Amt, amount
36
-
37
- if giftcard.is_a? HpsTokenData
38
- card_data = HpsGiftCard.new
39
- card_data.token_value = giftcard.token_value
40
- else
41
- card_data = giftcard
42
- end
43
-
44
- hydrate_gift_card_data(giftcard, xml)
45
- end
46
- end
47
- end
48
- submit_transaction(xml.target!, txn_type)
49
- end # add_value
50
-
51
- def balance(giftcard)
52
- txn_type = "GiftCardBalance"
53
-
54
- xml = Builder::XmlMarkup.new
55
- xml.hps :Transaction do
56
- xml.hps txn_type.to_sym do
57
- xml.hps :Block1 do
58
-
59
- if giftcard.is_a? HpsTokenData
60
- card_data = HpsGiftCard.new
61
- card_data.token_value = giftcard.token_value
62
- else
63
- card_data = giftcard
64
- end
65
-
66
- hydrate_gift_card_data(giftcard, xml)
67
- end
68
- end
69
- end
70
- submit_transaction(xml.target!, txn_type)
71
- end # balance
72
-
73
- def deactivate(giftcard)
74
- txn_type = "GiftCardDeactivate"
75
-
76
- xml = Builder::XmlMarkup.new
77
- xml.hps :Transaction do
78
- xml.hps txn_type.to_sym do
79
- xml.hps :Block1 do
80
-
81
- if giftcard.is_a? HpsTokenData
82
- card_data = HpsGiftCard.new
83
- card_data.token_value = giftcard.token_value
84
- else
85
- card_data = giftcard
86
- end
87
-
88
- hydrate_gift_card_data(giftcard, xml)
89
- end
90
- end
91
- end
92
- submit_transaction(xml.target!, txn_type)
93
- end # deactivate
94
-
95
- def replace(old_card, new_card)
96
- txn_type = "GiftCardReplace"
97
-
98
- xml = Builder::XmlMarkup.new
99
- xml.hps :Transaction do
100
- xml.hps txn_type.to_sym do
101
- xml.hps :Block1 do
102
-
103
- hydrate_gift_card_data(old_card, xml, 'OldCardData')
104
- hydrate_gift_card_data(new_card, xml, 'NewCardData')
105
-
106
- end
107
- end
108
- end
109
- submit_transaction(xml.target!, txn_type)
110
- end # replace
111
-
112
- def reward(giftcard, amount, currency = "USD", gratuity = nil, tax = nil)
113
- HpsInputValidation.check_amount(amount)
114
- txn_type = "GiftCardReward"
115
-
116
- xml = Builder::XmlMarkup.new
117
- xml.hps :Transaction do
118
- xml.hps txn_type.to_sym do
119
- xml.hps :Block1 do
120
- xml.hps :Amt, amount
121
-
122
- if giftcard.is_a? HpsTokenData
123
- card_data = HpsGiftCard.new
124
- card_data.token_value = giftcard.token_value
125
- else
126
- card_data = giftcard
127
- end
128
-
129
- hydrate_gift_card_data(giftcard, xml)
130
-
131
- if ["USD", "POINTS"].include? currency.upcase
132
- xml.hps :Currency, currency.upcase
133
- end
134
-
135
- if gratuity
136
- xml.hps :GratuityAmtInfo, gratuity
137
- end
138
-
139
- if tax
140
- xml.hps :TaxAmtInfo, tax
141
- end
142
-
143
- end
144
- end
145
- end
146
- submit_transaction(xml.target!, txn_type)
147
- end # reward
148
-
149
- def sale(giftcard, amount, currency = "USD", gratuity = nil, tax = nil)
150
- HpsInputValidation.check_amount(amount)
151
- txn_type = "GiftCardSale"
152
-
153
- xml = Builder::XmlMarkup.new
154
- xml.hps :Transaction do
155
- xml.hps txn_type.to_sym do
156
- xml.hps :Block1 do
157
- xml.hps :Amt, amount
158
-
159
- if giftcard.is_a? HpsTokenData
160
- card_data = HpsGiftCard.new
161
- card_data.token_value = giftcard.token_value
162
- else
163
- card_data = giftcard
164
- end
165
-
166
- hydrate_gift_card_data(giftcard, xml)
167
-
168
- if ["USD", "POINTS"].include? currency.upcase
169
- xml.hps :Currency, currency.upcase
170
- end
171
-
172
- if gratuity
173
- xml.hps :GratuityAmtInfo, gratuity
174
- end
175
-
176
- if tax
177
- xml.hps :TaxAmtInfo, tax
178
- end
179
-
180
- end
181
- end
182
- end
183
- submit_transaction(xml.target!, txn_type)
184
- end # sale
185
-
186
- def void(txn_id)
187
- txn_type = "GiftCardVoid"
188
-
189
- xml = Builder::XmlMarkup.new
190
- xml.hps :Transaction do
191
- xml.hps txn_type.to_sym do
192
- xml.hps :Block1 do
193
- xml.hps :GatewayTxnId, txn_id
194
- end
195
- end
196
- end
197
- submit_transaction(xml.target!, txn_type)
198
- end # void
199
-
200
- def reverse(giftcard, amount)
201
- HpsInputValidation.check_amount(amount)
202
- txn_type = "GiftCardReversal"
203
-
204
- xml = Builder::XmlMarkup.new
205
- xml.hps :Transaction do
206
- xml.hps txn_type.to_sym do
207
- xml.hps :Block1 do
208
- xml.hps :Amt, amount
209
-
210
- if giftcard.is_a? HpsTokenData
211
- xml.hps :TokenValue, giftcard.token_value
212
- elsif giftcard.is_a? HpsGiftCard
213
- card_data = giftcard
214
- hydrate_gift_card_data(card_data, xml)
215
- else
216
- xml.hps :GatewayTxnId, giftcard
217
- end
218
-
219
- end
220
- end
221
- end
222
- submit_transaction(xml.target!, txn_type)
223
- end # reverse
224
-
225
- private
226
- def hydrate_gift_card_data(gift_card, xml, element_name = 'CardData')
227
- xml.hps element_name.to_sym do
228
- if gift_card.number
229
- xml.hps :CardNbr, gift_card.number
230
- elsif gift_card.track_data
231
- xml.hps :TrackData, gift_card.track_data
232
- elsif gift_card.alias
233
- xml.hps :Alias, gift_card.alias
234
- elsif gift_card.token_value
235
- xml.hps :TokenValue, gift_card.token_value
236
- end
237
-
238
- if gift_card.encryption_data
239
- hydrate_encryption_data(gift_card.encryption_data, xml)
240
- end
241
-
242
- if gift_card.pin
243
- xml.hps :PIN, gift_card.pin
244
- end
245
- end
246
- end # hydrate_gift_card_data
247
-
248
- def hydrate_encryption_data(encryption_data, xml)
249
- xml.hps :EncryptionData do
250
- if encryption_data.encrypted_track_number
251
- xml.hps :EncryptedTrackNumber, encryption_data.encrypted_track_number
252
- end
253
- xml.hps :KSN, encryption_data.ksn
254
- xml.hps :KTB, encryption_data.ktb
255
- xml.hps :Version, encryption_data.version
256
- end
257
- end # hydrate_encryption_data
258
-
259
- def submit_transaction(transaction, txn_type, client_txn_id = nil)
260
- response = doTransaction(transaction, client_txn_id)
261
-
262
- header = response['Header']
263
- transaction_response = response["Transaction"][txn_type]
264
-
265
- if !transaction_response["RspCode"].eql? "0"
266
- raise @exception_mapper.map_gift_card_exception(header["GatewayTxnId"], transaction_response["RspCode"], transaction_response["RspText"])
267
- end
268
-
269
- if !header["GatewayRspCode"].eql? "0"
270
- raise @exception_mapper.map_gateway_exception(header["GatewayTxnId"], header["GatewayRspCode"], header["GatewayRspMsg"])
271
- end
272
-
273
- rvalue = ''
274
- case txn_type
275
- when 'GiftCardActivate'
276
- rvalue = HpsGiftCardActivate::from_response(response, txn_type)
277
- when 'GiftCardAddValue'
278
- rvalue = HpsGiftCardAddValue::from_response(response, txn_type)
279
- when 'GiftCardAlias'
280
- rvalue = HpsGiftCardAlias::from_response(response, txn_type)
281
- when 'GiftCardBalance'
282
- rvalue = HpsGiftCardBalance::from_response(response, txn_type)
283
- when 'GiftCardDeactivate'
284
- rvalue = HpsGiftCardDeactivate::from_response(response, txn_type)
285
- when 'GiftCardReplace'
286
- rvalue = HpsGiftCardReplace::from_response(response, txn_type)
287
- when 'GiftCardReward'
288
- rvalue = HpsGiftCardReward::from_response(response, txn_type)
289
- when 'GiftCardSale'
290
- rvalue = HpsGiftCardSale::from_response(response, txn_type)
291
- when 'GiftCardVoid'
292
- rvalue = HpsGiftCardVoid::from_response(response, txn_type)
293
- when 'GiftCardReversal'
294
- rvalue = HpsGiftCardReversal::from_response(response, txn_type)
295
- end
296
-
297
- return rvalue;
298
- end # submit_transaction
299
-
300
- end # HpsGiftCardService
301
- end # Hps
1
+ module Hps
2
+ class HpsGiftCardService < HpsService
3
+ def activate(giftcard, amount, currency = "USD")
4
+ HpsInputValidation.check_amount(amount)
5
+ txn_type = "GiftCardActivate"
6
+
7
+ xml = Builder::XmlMarkup.new
8
+ xml.hps :Transaction do
9
+ xml.hps txn_type.to_sym do
10
+ xml.hps :Block1 do
11
+ xml.hps :Amt, amount
12
+
13
+ if giftcard.is_a? HpsTokenData
14
+ card_data = HpsGiftCard.new
15
+ card_data.token_value = giftcard.token_value
16
+ else
17
+ card_data = giftcard
18
+ end
19
+
20
+ hydrate_gift_card_data(giftcard, xml)
21
+ end
22
+ end
23
+ end
24
+ submit_transaction(xml.target!, txn_type)
25
+ end # activate
26
+
27
+ def add_value(giftcard, amount, currency = "USD")
28
+ HpsInputValidation.check_amount(amount)
29
+ txn_type = "GiftCardAddValue"
30
+
31
+ xml = Builder::XmlMarkup.new
32
+ xml.hps :Transaction do
33
+ xml.hps txn_type.to_sym do
34
+ xml.hps :Block1 do
35
+ xml.hps :Amt, amount
36
+
37
+ if giftcard.is_a? HpsTokenData
38
+ card_data = HpsGiftCard.new
39
+ card_data.token_value = giftcard.token_value
40
+ else
41
+ card_data = giftcard
42
+ end
43
+
44
+ hydrate_gift_card_data(giftcard, xml)
45
+ end
46
+ end
47
+ end
48
+ submit_transaction(xml.target!, txn_type)
49
+ end # add_value
50
+
51
+ def balance(giftcard)
52
+ txn_type = "GiftCardBalance"
53
+
54
+ xml = Builder::XmlMarkup.new
55
+ xml.hps :Transaction do
56
+ xml.hps txn_type.to_sym do
57
+ xml.hps :Block1 do
58
+
59
+ if giftcard.is_a? HpsTokenData
60
+ card_data = HpsGiftCard.new
61
+ card_data.token_value = giftcard.token_value
62
+ else
63
+ card_data = giftcard
64
+ end
65
+
66
+ hydrate_gift_card_data(giftcard, xml)
67
+ end
68
+ end
69
+ end
70
+ submit_transaction(xml.target!, txn_type)
71
+ end # balance
72
+
73
+ def deactivate(giftcard)
74
+ txn_type = "GiftCardDeactivate"
75
+
76
+ xml = Builder::XmlMarkup.new
77
+ xml.hps :Transaction do
78
+ xml.hps txn_type.to_sym do
79
+ xml.hps :Block1 do
80
+
81
+ if giftcard.is_a? HpsTokenData
82
+ card_data = HpsGiftCard.new
83
+ card_data.token_value = giftcard.token_value
84
+ else
85
+ card_data = giftcard
86
+ end
87
+
88
+ hydrate_gift_card_data(giftcard, xml)
89
+ end
90
+ end
91
+ end
92
+ submit_transaction(xml.target!, txn_type)
93
+ end # deactivate
94
+
95
+ def replace(old_card, new_card)
96
+ txn_type = "GiftCardReplace"
97
+
98
+ xml = Builder::XmlMarkup.new
99
+ xml.hps :Transaction do
100
+ xml.hps txn_type.to_sym do
101
+ xml.hps :Block1 do
102
+
103
+ hydrate_gift_card_data(old_card, xml, 'OldCardData')
104
+ hydrate_gift_card_data(new_card, xml, 'NewCardData')
105
+
106
+ end
107
+ end
108
+ end
109
+ submit_transaction(xml.target!, txn_type)
110
+ end # replace
111
+
112
+ def reward(giftcard, amount, currency = "USD", gratuity = nil, tax = nil)
113
+ HpsInputValidation.check_amount(amount)
114
+ txn_type = "GiftCardReward"
115
+
116
+ xml = Builder::XmlMarkup.new
117
+ xml.hps :Transaction do
118
+ xml.hps txn_type.to_sym do
119
+ xml.hps :Block1 do
120
+ xml.hps :Amt, amount
121
+
122
+ if giftcard.is_a? HpsTokenData
123
+ card_data = HpsGiftCard.new
124
+ card_data.token_value = giftcard.token_value
125
+ else
126
+ card_data = giftcard
127
+ end
128
+
129
+ hydrate_gift_card_data(giftcard, xml)
130
+
131
+ if ["USD", "POINTS"].include? currency.upcase
132
+ xml.hps :Currency, currency.upcase
133
+ end
134
+
135
+ if gratuity
136
+ xml.hps :GratuityAmtInfo, gratuity
137
+ end
138
+
139
+ if tax
140
+ xml.hps :TaxAmtInfo, tax
141
+ end
142
+
143
+ end
144
+ end
145
+ end
146
+ submit_transaction(xml.target!, txn_type)
147
+ end # reward
148
+
149
+ def sale(giftcard, amount, currency = "USD", gratuity = nil, tax = nil)
150
+ HpsInputValidation.check_amount(amount)
151
+ txn_type = "GiftCardSale"
152
+
153
+ xml = Builder::XmlMarkup.new
154
+ xml.hps :Transaction do
155
+ xml.hps txn_type.to_sym do
156
+ xml.hps :Block1 do
157
+ xml.hps :Amt, amount
158
+
159
+ if giftcard.is_a? HpsTokenData
160
+ card_data = HpsGiftCard.new
161
+ card_data.token_value = giftcard.token_value
162
+ else
163
+ card_data = giftcard
164
+ end
165
+
166
+ hydrate_gift_card_data(giftcard, xml)
167
+
168
+ if ["USD", "POINTS"].include? currency.upcase
169
+ xml.hps :Currency, currency.upcase
170
+ end
171
+
172
+ if gratuity
173
+ xml.hps :GratuityAmtInfo, gratuity
174
+ end
175
+
176
+ if tax
177
+ xml.hps :TaxAmtInfo, tax
178
+ end
179
+
180
+ end
181
+ end
182
+ end
183
+ submit_transaction(xml.target!, txn_type)
184
+ end # sale
185
+
186
+ def void(txn_id)
187
+ txn_type = "GiftCardVoid"
188
+
189
+ xml = Builder::XmlMarkup.new
190
+ xml.hps :Transaction do
191
+ xml.hps txn_type.to_sym do
192
+ xml.hps :Block1 do
193
+ xml.hps :GatewayTxnId, txn_id
194
+ end
195
+ end
196
+ end
197
+ submit_transaction(xml.target!, txn_type)
198
+ end # void
199
+
200
+ def reverse(giftcard, amount)
201
+ HpsInputValidation.check_amount(amount)
202
+ txn_type = "GiftCardReversal"
203
+
204
+ xml = Builder::XmlMarkup.new
205
+ xml.hps :Transaction do
206
+ xml.hps txn_type.to_sym do
207
+ xml.hps :Block1 do
208
+ xml.hps :Amt, amount
209
+
210
+ if giftcard.is_a? HpsTokenData
211
+ xml.hps :TokenValue, giftcard.token_value
212
+ elsif giftcard.is_a? HpsGiftCard
213
+ card_data = giftcard
214
+ hydrate_gift_card_data(card_data, xml)
215
+ else
216
+ xml.hps :GatewayTxnId, giftcard
217
+ end
218
+
219
+ end
220
+ end
221
+ end
222
+ submit_transaction(xml.target!, txn_type)
223
+ end # reverse
224
+
225
+ private
226
+ def hydrate_gift_card_data(gift_card, xml, element_name = 'CardData')
227
+ xml.hps element_name.to_sym do
228
+ if gift_card.number
229
+ xml.hps :CardNbr, gift_card.number
230
+ elsif gift_card.track_data
231
+ xml.hps :TrackData, gift_card.track_data
232
+ elsif gift_card.alias
233
+ xml.hps :Alias, gift_card.alias
234
+ elsif gift_card.token_value
235
+ xml.hps :TokenValue, gift_card.token_value
236
+ end
237
+
238
+ if gift_card.encryption_data
239
+ hydrate_encryption_data(gift_card.encryption_data, xml)
240
+ end
241
+
242
+ if gift_card.pin
243
+ xml.hps :PIN, gift_card.pin
244
+ end
245
+ end
246
+ end # hydrate_gift_card_data
247
+
248
+ def hydrate_encryption_data(encryption_data, xml)
249
+ xml.hps :EncryptionData do
250
+ if encryption_data.encrypted_track_number
251
+ xml.hps :EncryptedTrackNumber, encryption_data.encrypted_track_number
252
+ end
253
+ xml.hps :KSN, encryption_data.ksn
254
+ xml.hps :KTB, encryption_data.ktb
255
+ xml.hps :Version, encryption_data.version
256
+ end
257
+ end # hydrate_encryption_data
258
+
259
+ def submit_transaction(transaction, txn_type, client_txn_id = nil)
260
+ response = doTransaction(transaction, client_txn_id)
261
+
262
+ header = response['Header']
263
+ transaction_response = response["Transaction"][txn_type]
264
+
265
+ if !transaction_response["RspCode"].eql? "0"
266
+ raise @exception_mapper.map_gift_card_exception(header["GatewayTxnId"], transaction_response["RspCode"], transaction_response["RspText"])
267
+ end
268
+
269
+ if !header["GatewayRspCode"].eql? "0"
270
+ raise @exception_mapper.map_gateway_exception(header["GatewayTxnId"], header["GatewayRspCode"], header["GatewayRspMsg"])
271
+ end
272
+
273
+ rvalue = ''
274
+ case txn_type
275
+ when 'GiftCardActivate'
276
+ rvalue = HpsGiftCardActivate::from_response(response, txn_type)
277
+ when 'GiftCardAddValue'
278
+ rvalue = HpsGiftCardAddValue::from_response(response, txn_type)
279
+ when 'GiftCardAlias'
280
+ rvalue = HpsGiftCardAlias::from_response(response, txn_type)
281
+ when 'GiftCardBalance'
282
+ rvalue = HpsGiftCardBalance::from_response(response, txn_type)
283
+ when 'GiftCardDeactivate'
284
+ rvalue = HpsGiftCardDeactivate::from_response(response, txn_type)
285
+ when 'GiftCardReplace'
286
+ rvalue = HpsGiftCardReplace::from_response(response, txn_type)
287
+ when 'GiftCardReward'
288
+ rvalue = HpsGiftCardReward::from_response(response, txn_type)
289
+ when 'GiftCardSale'
290
+ rvalue = HpsGiftCardSale::from_response(response, txn_type)
291
+ when 'GiftCardVoid'
292
+ rvalue = HpsGiftCardVoid::from_response(response, txn_type)
293
+ when 'GiftCardReversal'
294
+ rvalue = HpsGiftCardReversal::from_response(response, txn_type)
295
+ end
296
+
297
+ return rvalue;
298
+ end # submit_transaction
299
+
300
+ end # HpsGiftCardService
301
+ end # Hps