4
4
namespace Innovaweb \Transbank \Helpers ;
5
5
6
6
7
+ use Exception ;
8
+
7
9
class HelperTransbankResponseCode
8
10
{
9
11
@@ -18,17 +20,40 @@ public static function VCI($code)
18
20
{
19
21
$ code = strtoupper (strval ($ code ));
20
22
try {
23
+
21
24
$ codes = [
22
- 'TSY ' => 'Autenticación exitosa. ' ,
23
- 'TSN ' => 'Autenticación fallida. ' ,
25
+ 'TSY ' => 'Autenticación Exitosa. ' ,
26
+ 'TSN ' => 'Autenticación Rechazada. ' ,
27
+ 'NP ' => 'No Participa, probablemente por ser una tarjeta extranjera que no participa en el programa 3DSecure, sin autenticación. ' ,
28
+ 'U3 ' => 'Falla conexión, Autenticación Rechazada. ' ,
29
+ 'INV ' => 'Datos Inválidos. ' ,
30
+ 'A ' => 'Intentó. ' ,
31
+ 'CNP1 ' => 'Comercio no participa. ' ,
32
+ 'EOP ' => 'Error operacional. ' ,
33
+ 'BNA ' => 'BIN no adherido. ' ,
34
+ 'ENA ' => 'Emisor no adherido. ' ,
24
35
'TO ' => 'Tiempo máximo excedido para autenticación. ' ,
25
36
'ABO ' => 'Autenticación abortada por tarjeta habiente. ' ,
26
- 'U3 ' => 'Error interno en la autenticación. ' ,
27
- 'NP ' => 'No Participa, probablemente por ser una tarjeta extranjera que no participa en el programa 3DSecure. ' ,
28
37
'ACS2 ' => 'Autenticación fallida extranjera. ' ,
38
+ // Para venta extranjera, estos son algunos de los códigos:
39
+
40
+ 'TSYS ' => 'Autenticación exitosa Sin fricción. Resultado autenticación: Autenticación Exitosa. ' ,
41
+ 'TSAS ' => 'Intento, tarjeta no enrolada / emisor no disponible. Resultado autenticación: Autenticación Exitosa. ' ,
42
+ 'TSNS ' => 'Fallido, no autenticado, denegado / no permite intentos. Resultado autenticación: Autenticación denegada. ' ,
43
+ 'TSRS ' => 'Autenticación rechazada - sin fricción. Resultado autenticación: Autenticación rechazada. ' ,
44
+ 'TSUS ' => 'Autenticación no se pudo realizar por problema técnico u otro motivo. Resultado autenticación: Autenticación fallida. ' ,
45
+ 'TSCF ' => 'Autenticación con fricción (No aceptada por el comercio). Resultado autenticación: Autenticación incompleta. ' ,
46
+ 'TSYF ' => 'Autenticación exitosa con fricción. Resultado autenticación: Autenticación exitosa. ' ,
47
+ 'TSNF ' => 'No autenticado. Transacción denegada con fricción. Resultado autenticación: Autenticación denegada. ' ,
48
+ 'TSUF ' => 'Autenticación con fricción no se pudo realizar por problema técnico u otro. Resultado autenticación: Autenticación fallida. ' ,
49
+ 'NPC ' => 'Comercio no Participa. Resultado autenticación: Comercio/BIN no participa. ' ,
50
+ 'NPB ' => 'BIN no participa. Resultado autenticación: Comercio/BIN no participa. ' ,
51
+ 'NPCB ' => 'Comercio y BIN no participan. Resultado autenticación: Comercio/BIN no participa. ' ,
52
+ 'SPCB ' => 'Comercio y BIN sí participan. Resultado autenticación: Autorización incompleta. ' ,
53
+
29
54
];
30
55
return $ codes [$ code ];
31
- } catch (\ Exception $ exception ) {
56
+ } catch (Exception $ exception ) {
32
57
return 'Exception : Código no encontrado. ' ;
33
58
}
34
59
}
@@ -53,7 +78,37 @@ public static function ResponseCode($code)
53
78
'-5 ' => 'Rechazo - Transacción con riesgo de posible fraude. ' ,
54
79
];
55
80
return $ codes [$ code ];
56
- } catch (\Exception $ exception ) {
81
+ } catch (Exception $ exception ) {
82
+ return 'Exception : Código no encontrado. ' ;
83
+ }
84
+ }
85
+
86
+ /**
87
+ * ResponseCommerceCode
88
+ *
89
+ * @param string $code response_commerce_code.
90
+ * @return string retorna el significado del código, Código de respuesta de la transacción al comercio.
91
+ *
92
+ */
93
+ public static function ResponseCommerceCode ($ code )
94
+ {
95
+ $ code = strval ($ code );
96
+ try {
97
+ $ codes = [
98
+ '-1 ' => 'Tarjeta inválida. ' ,
99
+ '-2 ' => 'Error de conexión. ' ,
100
+ '-3 ' => 'Excede monto máximo. ' ,
101
+ '-4 ' => 'Fecha de expiración inválida. ' ,
102
+ '-5 ' => 'Problema en autenticación. ' ,
103
+ '-6 ' => 'Rechazo general. ' ,
104
+ '-7 ' => 'Tarjeta bloqueada. ' ,
105
+ '-8 ' => 'Tarjeta vencida. ' ,
106
+ '-9 ' => 'Transacción no soportada. ' ,
107
+ '-10 ' => 'Problema en la transacción. ' ,
108
+ '-11 ' => 'Excede límite de reintentos de rechazos (Próximamente). ' ,
109
+ ];
110
+ return $ codes [$ code ];
111
+ } catch (Exception $ exception ) {
57
112
return 'Exception : Código no encontrado. ' ;
58
113
}
59
114
}
@@ -79,7 +134,7 @@ public static function Status($code)
79
134
'CAPTURED ' => 'Transacción capturada. ' ,
80
135
];
81
136
return $ codes [$ code ];
82
- } catch (\ Exception $ exception ) {
137
+ } catch (Exception $ exception ) {
83
138
return 'Exception : Código no encontrado. ' ;
84
139
}
85
140
}
@@ -105,7 +160,40 @@ public static function PaymentTypeCode($code)
105
160
'VP ' => 'Venta Prepago. ' ,
106
161
];
107
162
return $ codes [$ code ];
108
- } catch (\Exception $ exception ) {
163
+ } catch (Exception $ exception ) {
164
+ return 'Exception : Código no encontrado. ' ;
165
+ }
166
+ }
167
+
168
+ /**
169
+ * RefundCode
170
+ *
171
+ * @param string $code refund_code.
172
+ * @return string retorna el significado del código, Reembolso de la transacción.
173
+ *
174
+ */
175
+ public static function RefundCode ($ code )
176
+ {
177
+ $ code = strtoupper (strval ($ code ));
178
+ try {
179
+ $ codes = [
180
+ '304 ' => 'Validación de campos de entrada nulos. ' ,
181
+ '245 ' => 'Código de comercio no existe. ' ,
182
+ '22 ' => 'El comercio no se encuentra activo. ' ,
183
+ '316 ' => 'El comercio indicado no corresponde al certificado o no es hijo del comercio MALL en caso de transacciones MALL. ' ,
184
+ '308 ' => 'Operación no permitida. ' ,
185
+ '274 ' => 'Transacción no encontrada. ' ,
186
+ '16 ' => 'La transacción no permite anulación. ' ,
187
+ '292 ' => 'La transacción no está autorizada. ' ,
188
+ '284 ' => 'Periodo de anulación excedido. ' ,
189
+ '310 ' => 'Transacción anulada previamente. ' ,
190
+ '311 ' => 'Monto a anular excede el saldo disponible para anular. ' ,
191
+ '312 ' => 'Error genérico para anulaciones. ' ,
192
+ '315 ' => 'Error del autorizador. ' ,
193
+ '53 ' => 'La transacción no permite anulación parcial de transacciones con cuotas. ' ,
194
+ ];
195
+ return $ codes [$ code ];
196
+ } catch (Exception $ exception ) {
109
197
return 'Exception : Código no encontrado. ' ;
110
198
}
111
199
}
0 commit comments