1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace PagOnline; |
4
|
|
|
|
5
|
|
|
final class Errors |
6
|
|
|
{ |
7
|
|
|
// Ok statuses |
8
|
|
|
public const IGFS_000 = 'IGFS_000'; |
9
|
|
|
|
10
|
|
|
// Pending statuses |
11
|
|
|
public const IGFS_814 = 'IGFS_814'; |
12
|
|
|
|
13
|
|
|
// Fail statuses |
14
|
|
|
public const IGFS_001 = 'IGFS_001'; |
15
|
|
|
public const IGFS_00155 = 'IGFS_00155'; |
16
|
|
|
public const IGFS_00156 = 'IGFS_00156'; |
17
|
|
|
public const IGFS_00157 = 'IGFS_00157'; |
18
|
|
|
public const IGFS_00158 = 'IGFS_00158'; |
19
|
|
|
public const IGFS_00159 = 'IGFS_00159'; |
20
|
|
|
|
21
|
|
|
public const IGFS_002 = 'IGFS_002'; |
22
|
|
|
public const IGFS_00260 = 'IGFS_00260'; |
23
|
|
|
public const IGFS_00261 = 'IGFS_00261'; |
24
|
|
|
|
25
|
|
|
public const IGFS_003 = 'IGFS_003'; |
26
|
|
|
public const IGFS_004 = 'IGFS_004'; |
27
|
|
|
public const IGFS_00452 = 'IGFS_00452'; |
28
|
|
|
public const IGFS_00456 = 'IGFS_00456'; |
29
|
|
|
|
30
|
|
|
public const IGFS_005 = 'IGFS_005'; |
31
|
|
|
|
32
|
|
|
public const IGFS_006 = 'IGFS_006'; |
33
|
|
|
|
34
|
|
|
public const IGFS_007 = 'IGFS_007'; |
35
|
|
|
|
36
|
|
|
public const IGFS_00701 = 'IGFS_00701'; |
37
|
|
|
public const IGFS_00704 = 'IGFS_00704'; |
38
|
|
|
public const IGFS_00705 = 'IGFS_00705'; |
39
|
|
|
|
40
|
|
|
public const IGFS_008 = 'IGFS_008'; |
41
|
|
|
|
42
|
|
|
public const IGFS_009 = 'IGFS_009'; |
43
|
|
|
public const IGFS_00950 = 'IGFS_00950'; |
44
|
|
|
public const IGFS_00951 = 'IGFS_00951'; |
45
|
|
|
public const IGFS_00952 = 'IGFS_00952'; |
46
|
|
|
|
47
|
|
|
public const IGFS_010 = 'IGFS_010'; |
48
|
|
|
public const IGFS_01000 = 'IGFS_01000'; |
49
|
|
|
|
50
|
|
|
public const IGFS_011 = 'IGFS_011'; |
51
|
|
|
public const IGFS_014 = 'IGFS_014'; |
52
|
|
|
public const IGFS_015 = 'IGFS_015'; |
53
|
|
|
public const IGFS_016 = 'IGFS_016'; |
54
|
|
|
public const IGFS_018 = 'IGFS_018'; |
55
|
|
|
public const IGFS_020 = 'IGFS_020'; |
56
|
|
|
public const IGFS_021 = 'IGFS_021'; |
57
|
|
|
public const IGFS_029 = 'IGFS_029'; |
58
|
|
|
public const IGFS_030 = 'IGFS_030'; |
59
|
|
|
public const IGFS_032 = 'IGFS_032'; |
60
|
|
|
public const IGFS_033 = 'IGFS_033'; |
61
|
|
|
public const IGFS_083 = 'IGFS_083'; |
62
|
|
|
public const IGFS_085 = 'IGFS_085'; |
63
|
|
|
public const IGFS_086 = 'IGFS_086'; |
64
|
|
|
public const IGFS_087 = 'IGFS_087'; |
65
|
|
|
public const IGFS_088 = 'IGFS_088'; |
66
|
|
|
public const IGFS_091 = 'IGFS_091'; |
67
|
|
|
public const IGFS_092 = 'IGFS_092'; |
68
|
|
|
public const IGFS_093 = 'IGFS_093'; |
69
|
|
|
public const IGFS_095 = 'IGFS_095'; |
70
|
|
|
public const IGFS_096 = 'IGFS_096'; |
71
|
|
|
public const IGFS_097 = 'IGFS_097'; |
72
|
|
|
public const IGFS_098 = 'IGFS_098'; |
73
|
|
|
public const IGFS_10000 = 'IGFS_10000'; |
74
|
|
|
public const IGFS_101 = 'IGFS_101'; |
75
|
|
|
public const IGFS_102 = 'IGFS_102'; |
76
|
|
|
public const IGFS_104 = 'IGFS_104'; |
77
|
|
|
public const IGFS_107 = 'IGFS_107'; |
78
|
|
|
public const IGFS_108 = 'IGFS_108'; |
79
|
|
|
public const IGFS_112 = 'IGFS_112'; |
80
|
|
|
public const IGFS_115 = 'IGFS_115'; |
81
|
|
|
public const IGFS_117 = 'IGFS_117'; |
82
|
|
|
public const IGFS_118 = 'IGFS_118'; |
83
|
|
|
public const IGFS_119 = 'IGFS_119'; |
84
|
|
|
public const IGFS_121 = 'IGFS_121'; |
85
|
|
|
public const IGFS_122 = 'IGFS_122'; |
86
|
|
|
public const IGFS_123 = 'IGFS_123'; |
87
|
|
|
public const IGFS_125 = 'IGFS_125'; |
88
|
|
|
public const IGFS_129 = 'IGFS_129'; |
89
|
|
|
public const IGFS_160 = 'IGFS_160'; |
90
|
|
|
public const IGFS_164 = 'IGFS_164'; |
91
|
|
|
public const IGFS_180 = 'IGFS_180'; |
92
|
|
|
public const IGFS_181 = 'IGFS_181'; |
93
|
|
|
public const IGFS_1921 = 'IGFS_1921'; |
94
|
|
|
public const IGFS_1922 = 'IGFS_1922'; |
95
|
|
|
public const IGFS_1923 = 'IGFS_1923'; |
96
|
|
|
public const IGFS_20000 = 'IGFS_20000'; |
97
|
|
|
public const IGFS_20001 = 'IGFS_20001'; |
98
|
|
|
public const IGFS_20007 = 'IGFS_20007'; |
99
|
|
|
public const IGFS_20010 = 'IGFS_20010'; |
100
|
|
|
public const IGFS_20011 = 'IGFS_20011'; |
101
|
|
|
public const IGFS_20012 = 'IGFS_20012'; |
102
|
|
|
public const IGFS_20013 = 'IGFS_20013'; |
103
|
|
|
public const IGFS_20014 = 'IGFS_20014'; |
104
|
|
|
public const IGFS_20018 = 'IGFS_20018'; |
105
|
|
|
public const IGFS_20019 = 'IGFS_20019'; |
106
|
|
|
public const IGFS_20020 = 'IGFS_20020'; |
107
|
|
|
public const IGFS_20021 = 'IGFS_20021'; |
108
|
|
|
public const IGFS_20022 = 'IGFS_20022'; |
109
|
|
|
public const IGFS_20023 = 'IGFS_20023'; |
110
|
|
|
public const IGFS_20024 = 'IGFS_20024'; |
111
|
|
|
public const IGFS_20025 = 'IGFS_20025'; |
112
|
|
|
public const IGFS_20026 = 'IGFS_20026'; |
113
|
|
|
public const IGFS_20027 = 'IGFS_20027'; |
114
|
|
|
public const IGFS_20028 = 'IGFS_20028'; |
115
|
|
|
public const IGFS_20029 = 'IGFS_20029'; |
116
|
|
|
public const IGFS_20030 = 'IGFS_20030'; |
117
|
|
|
public const IGFS_20031 = 'IGFS_20031'; |
118
|
|
|
public const IGFS_20032 = 'IGFS_20032'; |
119
|
|
|
public const IGFS_20033 = 'IGFS_20033'; |
120
|
|
|
public const IGFS_20034 = 'IGFS_20034'; |
121
|
|
|
public const IGFS_20035 = 'IGFS_20035'; |
122
|
|
|
public const IGFS_20036 = 'IGFS_20036'; |
123
|
|
|
public const IGFS_20037 = 'IGFS_20037'; |
124
|
|
|
public const IGFS_20038 = 'IGFS_20038'; |
125
|
|
|
public const IGFS_20044 = 'IGFS_20044'; |
126
|
|
|
public const IGFS_20090 = 'IGFS_20090'; |
127
|
|
|
public const IGFS_20100 = 'IGFS_20100'; |
128
|
|
|
|
129
|
|
|
public const IGFS_400 = 'IGFS_400'; |
130
|
|
|
public const IGFS_800 = 'IGFS_800'; |
131
|
|
|
public const IGFS_801 = 'IGFS_801'; |
132
|
|
|
public const IGFS_802 = 'IGFS_802'; |
133
|
|
|
public const IGFS_803 = 'IGFS_803'; |
134
|
|
|
public const IGFS_804 = 'IGFS_804'; |
135
|
|
|
public const IGFS_805 = 'IGFS_805'; |
136
|
|
|
public const IGFS_807 = 'IGFS_807'; |
137
|
|
|
public const IGFS_808 = 'IGFS_808'; |
138
|
|
|
public const IGFS_809 = 'IGFS_809'; |
139
|
|
|
public const IGFS_810 = 'IGFS_810'; |
140
|
|
|
public const IGFS_811 = 'IGFS_811'; |
141
|
|
|
public const IGFS_812 = 'IGFS_812'; |
142
|
|
|
public const IGFS_813 = 'IGFS_813'; |
143
|
|
|
public const IGFS_815 = 'IGFS_815'; |
144
|
|
|
|
145
|
|
|
public const IGFS_90000 = 'IGFS_90000'; |
146
|
|
|
public const IGFS_90005 = 'IGFS_90005'; |
147
|
|
|
|
148
|
|
|
public const IGFS_902 = 'IGFS_902'; |
149
|
|
|
public const IGFS_903 = 'IGFS_903'; |
150
|
|
|
public const IGFS_907 = 'IGFS_907'; |
151
|
|
|
public const IGFS_908 = 'IGFS_908'; |
152
|
|
|
public const IGFS_909 = 'IGFS_909'; |
153
|
|
|
public const IGFS_910 = 'IGFS_910'; |
154
|
|
|
public const IGFS_911 = 'IGFS_911'; |
155
|
|
|
public const IGFS_912 = 'IGFS_912'; |
156
|
|
|
public const IGFS_913 = 'IGFS_913'; |
157
|
|
|
public const IGFS_990 = 'IGFS_990'; |
158
|
|
|
|
159
|
|
|
/** |
160
|
|
|
* Array with all messages. |
161
|
|
|
* |
162
|
|
|
* @var array |
163
|
|
|
*/ |
164
|
|
|
public const MESSAGES = [ |
165
|
|
|
self::IGFS_000 => 'TRANSACTION OK', |
166
|
|
|
|
167
|
|
|
// Pending statuses |
168
|
|
|
self::IGFS_814 => 'TRANSACTION PENDING', |
169
|
|
|
|
170
|
|
|
// Fail statuses |
171
|
|
|
self::IGFS_001 => 'UNKNOWN RECIPIENT', |
172
|
|
|
self::IGFS_00155 => 'INVALID BATCH ID', |
173
|
|
|
self::IGFS_00156 => 'NOT UNIQUE BATCH ID', |
174
|
|
|
self::IGFS_00157 => 'INVALID PAYMENT METHOD', |
175
|
|
|
self::IGFS_00158 => 'NOT NUMERIC CARD NUMBER', |
176
|
|
|
self::IGFS_00159 => 'NOT EXISTENT CARD NUMBER', |
177
|
|
|
|
178
|
|
|
self::IGFS_002 => 'EXPIRED CARD', |
179
|
|
|
self::IGFS_00260 => 'THE AMOUNT OF THE CLAIM EXCEEDS THE AMOUNT OF THE MOVEMENT', |
180
|
|
|
self::IGFS_00261 => 'THE AMOUNT OF THE MOVEMENT EXCEEDS THE AMOUNT OF THE AUTHORISATION', |
181
|
|
|
|
182
|
|
|
self::IGFS_003 => 'WRONG CARD', |
183
|
|
|
self::IGFS_004 => 'BLACKLISTED CARD', |
184
|
|
|
self::IGFS_00452 => 'NOT EXISTENT TERMINAL CODE', |
185
|
|
|
self::IGFS_00456 => 'WRONG TERMINAL CODE', |
186
|
|
|
self::IGFS_005 => 'FORMATTING ERROR', |
187
|
|
|
self::IGFS_006 => 'FILE SYSTEM ERROR', |
188
|
|
|
self::IGFS_007 => 'COMMUNICATION ERROR', |
189
|
|
|
self::IGFS_00701 => 'UNPROCESSED BATCH ID', |
190
|
|
|
self::IGFS_00704 => 'NOT NUMERIC BATCH ID', |
191
|
|
|
self::IGFS_00705 => 'NOT EXISTENT BATCH ID', |
192
|
|
|
|
193
|
|
|
self::IGFS_008 => 'AUTHORIZATION DENIED', |
194
|
|
|
|
195
|
|
|
self::IGFS_009 => 'WITHDRAW CARD', |
196
|
|
|
self::IGFS_00950 => 'BATCH UPLOAD DIRECTORY NOT EXISTS', |
197
|
|
|
self::IGFS_00951 => 'BATCH DOWNLOAD DIRECTORY NOT EXISTS', |
198
|
|
|
self::IGFS_00952 => 'BATCH ARCHIVE DIRECTORY NAME NOT EXISTS', |
199
|
|
|
|
200
|
|
|
self::IGFS_010 => 'UNAUTHORIZED MERCHANT', |
201
|
|
|
self::IGFS_01000 => 'TRANSACTION DENIED BY THE ANTI-FRAUD SYSTEM', |
202
|
|
|
|
203
|
|
|
self::IGFS_011 => 'CONTACT ACQUIRER', |
204
|
|
|
self::IGFS_014 => 'NON-CONTRACTED MERCHANT', |
205
|
|
|
self::IGFS_015 => 'UNMANAGED CARD', |
206
|
|
|
self::IGFS_016 => 'CARD IN NEGATIVE OR FOREIGN RANGE', |
207
|
|
|
self::IGFS_018 => 'CARD NON-EXISTENT', |
208
|
|
|
self::IGFS_020 => 'INVALID CARD', |
209
|
|
|
self::IGFS_021 => 'WRONG MERCHANT CODE', |
210
|
|
|
self::IGFS_029 => 'WRONG EXPIRATION DATE', |
211
|
|
|
self::IGFS_030 => 'INSUFFICIENT FUNDS', |
212
|
|
|
self::IGFS_032 => 'INVALID AMOUNT', |
213
|
|
|
self::IGFS_033 => 'ORIGINAL TRANSACTION NOT FOUND', |
214
|
|
|
self::IGFS_083 => 'TRANSACTION ENCRYPTION ERROR', |
215
|
|
|
self::IGFS_085 => 'WRONG CURRENCY CODE', |
216
|
|
|
self::IGFS_086 => 'SYSTEM MALFUNCTION', |
217
|
|
|
self::IGFS_087 => 'ACQUIRER NOT REACHABLE', |
218
|
|
|
self::IGFS_088 => 'NO RESPONSE FROM ACQUIRER', |
219
|
|
|
self::IGFS_091 => 'MALFUNCTION OF THE AQUIRER SYSTEM', |
220
|
|
|
self::IGFS_092 => 'UNKNOWN TRANSACTION', |
221
|
|
|
self::IGFS_093 => 'ALREADY PRESENT CONFIRMATION', |
222
|
|
|
self::IGFS_095 => 'CANCELLATION DUE TO NON-EXISTENT NOTIFICATION', |
223
|
|
|
self::IGFS_096 => 'CANCELLATION DUE TO NON-EXISTENT AUTHORISATION', |
224
|
|
|
self::IGFS_097 => 'CONFIRMATION FOR NON-EXISTENT AUTHORISATION', |
225
|
|
|
self::IGFS_098 => 'AMOUNT EXCEEDING THE AMOUNT AUTHORISED', |
226
|
|
|
self::IGFS_10000 => 'INVALID CHARACTERS', |
227
|
|
|
self::IGFS_101 => 'WRONG MAC', |
228
|
|
|
self::IGFS_102 => 'FRAUD SUSPECT', |
229
|
|
|
self::IGFS_104 => 'RESTRICTED CARD', |
230
|
|
|
self::IGFS_107 => 'CONTACT ISSUER', |
231
|
|
|
self::IGFS_108 => 'CONTACT ISSUER: SPECIAL CASE', |
232
|
|
|
self::IGFS_112 => 'INSERT PIN', |
233
|
|
|
self::IGFS_115 => 'FUNCTION NOT SUPPORTED ON CARD', |
234
|
|
|
self::IGFS_117 => 'WRONG PIN', |
235
|
|
|
self::IGFS_118 => 'ACCOUNT NOT FOUND OR NOT ENABLED', |
236
|
|
|
self::IGFS_119 => 'OPERATION NOT ALLOWED TO THE HOLDER', |
237
|
|
|
self::IGFS_121 => 'EXCEEDED LIMIT AMOUNT', |
238
|
|
|
self::IGFS_122 => 'SECURITY ERROR', |
239
|
|
|
self::IGFS_123 => 'FREQUENCY LIMIT EXCEEDED', |
240
|
|
|
self::IGFS_125 => 'CARD NOT ACTIVE', |
241
|
|
|
self::IGFS_129 => 'SUSPECTED FRAUD ON CARD', |
242
|
|
|
self::IGFS_160 => 'LOST CARD', |
243
|
|
|
self::IGFS_164 => 'DATE BEFORE THE CARD WAS BLOCKED', |
244
|
|
|
self::IGFS_180 => 'ERRORED DATA', |
245
|
|
|
self::IGFS_181 => 'INCORRECT SENSITIVE DATA', |
246
|
|
|
self::IGFS_1921 => '3DS: IMPOSSIBLE TO AUTHENTICATE CARD (PARES=U)', |
247
|
|
|
self::IGFS_1922 => '3DS: AUTHENTICATION FAILED (PARES=N)', |
248
|
|
|
self::IGFS_1923 => '3DS: IMPOSSIBLE TO VERIFY CARD REGISTRATION (VERES=U)', |
249
|
|
|
self::IGFS_20000 => 'MISSING DATA', |
250
|
|
|
self::IGFS_20001 => 'INVALID OPERATION CODE', |
251
|
|
|
self::IGFS_20007 => 'INVALID ORDER STATUS', |
252
|
|
|
self::IGFS_20010 => 'INVALID REPLY URL', |
253
|
|
|
self::IGFS_20011 => 'INVALID ERROR URL', |
254
|
|
|
self::IGFS_20012 => 'INVALID SHOP ID', |
255
|
|
|
self::IGFS_20013 => 'INVALID LANGUAGE CODE', |
256
|
|
|
self::IGFS_20014 => 'INVALID ADDITIONAL FIELD', |
257
|
|
|
self::IGFS_20018 => 'INVALID CVV2', |
258
|
|
|
self::IGFS_20019 => 'SHOPID NON VALIDO', // Duplicates IGFS_20012 |
259
|
|
|
self::IGFS_20020 => 'INVALID ADDITIONAL FIELD', // Duplicates IGFS_20014 |
260
|
|
|
self::IGFS_20021 => 'INVALID API VERSION FIELD', |
261
|
|
|
self::IGFS_20022 => 'INVALID SIGNATURE FIELD', |
262
|
|
|
self::IGFS_20023 => 'INVALID PAYMENT ID FIELD', |
263
|
|
|
self::IGFS_20024 => 'MISSING AUTHORISATION CODE', |
264
|
|
|
self::IGFS_20025 => 'INVALID REFERENCE DATA FIELD', |
265
|
|
|
self::IGFS_20026 => 'DUPLICATED SHOP ID', |
266
|
|
|
self::IGFS_20027 => 'INVALID BATCH REQUEST', |
267
|
|
|
self::IGFS_20028 => 'MISSING BATCH DATA', |
268
|
|
|
self::IGFS_20029 => 'INVALID BATCH DATA', |
269
|
|
|
self::IGFS_20030 => 'INVALID BATCH DATA DIRECTORY', |
270
|
|
|
self::IGFS_20031 => 'DUPLICATED BATCH DATA', |
271
|
|
|
self::IGFS_20032 => 'INVALID BATCH FILE NAME', |
272
|
|
|
self::IGFS_20033 => 'BATCH DATA NOT FOUND', |
273
|
|
|
self::IGFS_20034 => 'INVALID BATCH SHOPID', |
274
|
|
|
self::IGFS_20035 => 'INVALID ORDER ID', |
275
|
|
|
self::IGFS_20036 => 'INVALID PAN', |
276
|
|
|
self::IGFS_20037 => 'INVALID CVV2', |
277
|
|
|
self::IGFS_20038 => 'WRONG EXPIRATION DATE', |
278
|
|
|
self::IGFS_20044 => 'INVALID PAYMENT DESCRIPTION', |
279
|
|
|
self::IGFS_20090 => 'TRANSACTION DELETED BY THE USER', |
280
|
|
|
self::IGFS_20100 => 'ERROR IN MERCHANT NOTIFICATION', |
281
|
|
|
|
282
|
|
|
self::IGFS_400 => 'CANCELLATION OK', // "Storno" |
283
|
|
|
self::IGFS_800 => 'TERMINAL NOT ENABLED', |
284
|
|
|
self::IGFS_801 => 'WRONG SELECTED BANK', |
285
|
|
|
self::IGFS_802 => 'PIN ATTEMPTS EXHAUSTED', |
286
|
|
|
self::IGFS_803 => 'WRONG TERMINAL CODE', |
287
|
|
|
self::IGFS_804 => 'MISALIGNED KEY', |
288
|
|
|
self::IGFS_805 => 'ENCRYPTION ERROR', |
289
|
|
|
self::IGFS_807 => 'CLOSED TERMINAL', |
290
|
|
|
self::IGFS_808 => 'TERMINAL NOT CLOSED', |
291
|
|
|
self::IGFS_809 => 'SEQUENCE FAILURE', |
292
|
|
|
self::IGFS_810 => 'TERMINAL NOT RECOGNIZED', |
293
|
|
|
self::IGFS_811 => 'TERMINAL LOCKED', |
294
|
|
|
self::IGFS_812 => 'TERMINAL FORCEDLY CLOSED', |
295
|
|
|
self::IGFS_813 => 'OPERATION NOT PERMITTED', |
296
|
|
|
self::IGFS_815 => 'LOCKED CARD', |
297
|
|
|
|
298
|
|
|
self::IGFS_90000 => 'DATABASE ERROR', |
299
|
|
|
self::IGFS_90005 => 'WRONG TIMESTAMP', |
300
|
|
|
|
301
|
|
|
self::IGFS_902 => 'INVALID TRANSACTION', |
302
|
|
|
self::IGFS_903 => 'RESEND TRANSACTION', |
303
|
|
|
self::IGFS_907 => 'NON ADHERING ISSUER', |
304
|
|
|
self::IGFS_908 => 'DESTINATION NOT FOUND', |
305
|
|
|
self::IGFS_909 => 'SYSTEM ERROR', |
306
|
|
|
self::IGFS_910 => 'ISSUER SYSTEM NOT ACTIVE', |
307
|
|
|
self::IGFS_911 => 'TIME OUT', |
308
|
|
|
self::IGFS_912 => 'ISSUER NOT REACHABLE', |
309
|
|
|
self::IGFS_913 => 'DUPLICATED TRANSACTION', |
310
|
|
|
self::IGFS_990 => 'INACTIVE PAYMENT TOOL', |
311
|
|
|
]; |
312
|
|
|
|
313
|
|
|
/** |
314
|
|
|
* Get message. |
315
|
|
|
* |
316
|
|
|
* @param string $errorCode |
317
|
|
|
* |
318
|
|
|
* @return null|string |
319
|
|
|
*/ |
320
|
2 |
|
public static function getMessage(string $errorCode): ?string |
321
|
|
|
{ |
322
|
2 |
|
return self::MESSAGES[$errorCode] ?? null; |
323
|
|
|
} |
324
|
|
|
} |
325
|
|
|
|