Códigos de resultado y errores
El framework Get Mini reporta el estado de las transacciones y errores a través de objetos NSError estándar en los callbacks del delegado y propiedades de estado específicas dentro del resultado RespuestaTransaccionDTO.
Códigos de error del SDK
Los errores se devuelven mediante el parámetro NSError en métodos como onPaymentFinished o onInitFinished. La propiedad code corresponde a la tabla de errores interna de la biblioteca.
Errores comunes de biblioteca (NSError.code)
| Código | Constante de Estado | Descripción |
|---|---|---|
| 0 | STATUS_OK | Operación completada exitosamente. |
| 1 | STATUS_KO_ACCESO_DATOS | Error accediendo a la base de datos local (SQLite). |
| 11 | STATUS_KO_DATOS_MAL_FIRMADOS | La firma del mensaje es incorrecta. |
| 28 | STATUS_KO_USER_BLOQUEADO | La cuenta de usuario está bloqueada. |
| 78 | STATUS_KO_OPERACION_FALLIDA | La operación de Servicio Web falló. |
| 117 | — | Denegada por pin online incorrecto (PIN online incorrecto). |
| 999 | — | Error indeterminado. |
| 1040 | — | PIN pad no operativo. |
Errores específicos TPV-PC
Estos códigos aparecen a menudo al procesar devoluciones u operaciones específicas del terminal.
| Código | Código TPV-PC | Descripción |
|---|---|---|
| 200 | TPV-PC0009 | El monto de la devolución excede el monto de la transacción original. |
| 232 | TPV-PC0058 | La moneda especificada no coincide con la moneda del terminal. |
| 241 | TPV-PC0071 | El comercio no tiene habilitadas las Preautorizaciones. |
| 250 | TPV-PC0084 | Error de lectura de tarjeta (Verifique lector o estado de la tarjeta). |
| 252 | TPV-PC0087 | Sistema ocupado. Reintente después de unos momentos. |
| 258 | TPV-PC0094 | No se permiten más confirmaciones para esta preautorización. |
Valores de resultado de transacción
Para pagos finalizados, el resultado se entrega en un RespuestaTransaccionDTO. Debe evaluar los campos estado y resultado para determinar el desenlace.
Estado (estado de transacción)
| Valor | Descripción |
|---|---|
| “F” | Finalizada (El proceso alcanzó el servidor y finalizó). |
| “P” | En proceso (Aún siendo procesado). |
| “G” | Denegada (La transacción fue rechazada). |
| “A” | Anulada (La transacción fue cancelada/anulada). |
| “T” | Fallo técnico (Ocurrió un error técnico durante el procesamiento). |
Estado == "F" NO significa que el pago fue aprobado. Solo significa que la pasarela respondió. Siempre verifique el campo resultado.
Resultado (decisión)
| Valor | Descripción |
|---|---|
| “Autorizada” | La transacción fue aprobada por el emisor. |
| “Denegada” | La transacción fue rechazada por el emisor o la pasarela. |
Códigos de respuesta de autorización
La propiedad codigoRespuesta en RespuestaTransaccionDTO (o RespuestaBoletaDTO) contiene el código de autorización del host (para ventas aprobadas) o el código de denegación específico.
Ramifica por resultado, que devuelve "Autorizada" o "Denegada", en lugar de por el valor del código. Registra codigoRespuesta junto con la transacción para que soporte pueda rastrear una denegación.
Monitoreo de progreso
El SDK proporciona actualizaciones en tiempo real a través de dos callbacks principales. Úselos para actualizar su UI durante la interacción con el hardware.
onInitProcess (inicialización)
Reporta progreso durante connectAndConfigureDevice. Los mensajes son típicamente cadenas como:
- “Cargando claves…”
- “Configurando terminal…”
onPaymentProcess (pago)
Reporta progreso durante payWithPinpadBluetooth. Notifica a la UI de cambios de estado tales como:
- Esperando inserción de tarjeta.
- Entrada de PIN solicitada.
- Conectando con el host para autorización.
Mejores prácticas para el manejo de errores
- Evaluar NSError primero: Si el parámetro
NSErrorno es nil, la transacción falló antes de alcanzar la pasarela (ej., pérdida de Bluetooth o tiempo de espera de biblioteca). - Manejar Código 117: Siempre proporcione un mensaje específico para el código 117 (“PIN Incorrecto”) ya que este es el error corregible por el usuario más común.
- Verificar Perfil del Comercio: Si recibe errores 241 o 273 consistentemente, use
PerfilComercioManagerpara verificar las características habilitadas de su terminal (Preautorizaciones, Entrada Manual). - Registrar IdentificadorRTS: Para cualquier error que ocurra después de la fase de “Autorización”, registre el
identificadorRTSpara facilitar la solución de problemas de soporte con Get Mini.