Manejo de errores
Presentación
Los errores del SDK móvil se reenvían mediante el objeto LyraException que posee los siguientes parámetros:
CARACTERÍSTICAS | Descripción |
---|---|
errorCode | Permite identificar el error actual (en formato [PREFIXE]_[CODE]). |
errorMessage | Explicita el error que corresponde al código. |
detailedErrorCode | Código del error subyacente que causa la excepción (o null). |
detailedErrorMessage | Mensaje del error subyacente (o null). |
El campo detailedError indica el motivo preciso del error para ayudarle a identificar el problema.
Tipos de errores
Hay que distinguir los errores que se producen durante el desarrollo de los que pueden producirse durante la ejecución del SDK.
Errores de desarrollo
En ese caso, el SDK arroja una excepción de tipo LyraException, que debe ser capturada por el desarrollador.
Estos son los casos en los que esto puede suceder.
Tras la llamada al método initialize():
Si el formato del parámetro publicKey es incorrecto, se lanzará una excepción MOBP_001-INVALID_KEY.
Si el formato del parámetro apiServerName es incorrecto, se levantará una excepción MOBP_012-UNKNOWN_API_SERVER_NAME.
Tras la llamada al método process():
- Si el SDK no se ha inicializado de antemano, se generará una excepción MOBP-002-INITIALIZATION_REQUIRED.
Errores de ejecución
Para otros errores, la información se transmitirá en el objeto LyraException a través de la función de devolución de llamada onError(), como se describe en la guía de integración.
Códigos de error
Se presenta un código de error bajo la forma [PREFIXE]_[CODE], en donde:
[PREFIJO] | define la capa de aplicación donde se ha producido el error |
[CÓDIGO] | es el código numérico del error. |
Existen distintos prefijos:
PREFIJO | Descripción | EJEMPLO DE ERROR |
---|---|---|
MOB | Error del SDK móvil | MOB_004 |
ACQ | Error del adquiriente | ACQ_001 |
AUTH | Error de autenticación | AUTH_149 |
INT | Error de integración (del vendedor) | INT_007 |
PSP | Error por parte del medio de pago | PSP_001 |
Cuidado, en el futuro pueden añadirse nuevos códigos de error (incluso si no actualizas tu SDK y tu aplicación móvil). Por lo tanto, tu implementación debe tener esto en cuenta e integrar un algoritmo genérico de gestión de errores.
Errores ACQ, AUTH, INT y PSP
Estos códigos de error se refieren a las comunicaciones con los servidores de pago (a la plataforma de pago, a su servidor de comercio, etc...). Consulte Códigos de error para conocer los detalles de este tipo de errores.
Recomendación de control de errores
Sea cual sea el caso de error, le recomendamos que siempre muestre un mensaje al usuario para informarle de que el pago no se ha producido. Te aconsejamos que lleves un registro de los ErrorCode, los DetailedErrorCode y sus mensajes asociados para que puedas analizar las incidencias que puedas encontrar y resolverlas de forma independiente. En caso de error, NUNCA debe suponer que el pago se ha realizado.
Errores de MOB
Estos errores ocurren si se ha producido un error del lado de la SDK móvil.
CÓDIGO DE ERROR | Definición |
---|---|
MOB_001 | Invalid public key |
MOB_002 | Se requiere la inicialización del SDK antes de llamar al proceso |
MOB_003 | Invalid formToken |
MOB_004 | Invalid formToken version |
MOB_005 | Impossible to communicate with server |
MOB_006 | Network is not available |
MOB_007 | Invalid response of Lyra Rest API |
MOB_008 | Payment refused |
MOB_009 | Payment cancelled |
MOB_010 | Server timeout error, check IPN |
MOB_011 | Unknown API Server Name |
MOB_012 | Unknown Order Status |
MOB_013 | Payment cannot be cancelled |
MOB_999 | Unexpected error |
Detalle de los códigos de error
MOB_001
Código | MOB_001 |
DEFINICIÓN | Invalid public key |
La clave pública proporcionada al inicializar el SDK no es correcta. Puede que haya intentado realizar una transacción de prueba con una clave de producción o viceversa. Consulte los Prerrequisitos
MOB_002
Código | MOB_002 |
DEFINICIÓN | Se requiere la inicialización del SDK antes de llamar al proceso |
Está intentando llamar al método process antes de haber llamado al método init. Consulte la Guía de integración de Android y la Guía de integración de IOS sobre la inicialización del SDK.
MOB_003
Código | MOB_003 |
DEFINICIÓN | Invalid formToken |
El identificador de formulario no parece ser correcto. Asegúrese de haber seguido las instrucciones de las guías de integración. Si no hay nada que pueda causar un error, llame a soporte*.
MOB_004
Código | MOB_004 |
DEFINICIÓN | Invalid formToken version |
La versión de la identificación del formulario no es correcta. Para asegurarse de que tiene la versión correcta, llame al método getFormTokenVersion del SDK y pase los resultados en el parámetro formTokenVersion de createPayment.
MOB_005
Código | MOB_005 |
DEFINICIÓN | Impossible to communicate with server |
Póngase en contacto con el soporte*.
MOB_006
Código | MOB_006 |
DEFINICIÓN | Network is not available |
El dispositivo no parece estar conectado a Internet. Un mensaje al usuario para asegurarse de que está conectado puede ser útil en este caso.
MOB_007
Código | MOB_007 |
DEFINICIÓN | Invalid response of Lyra Rest API |
Póngase en contacto con el soporte*.
MOB_008
Código | MOB_008 |
DEFINICIÓN | Payment refused |
El pago fue rechazado tras alcanzar el número máximo de intentos adicionales.
MOB_009
Código | MOB_009 |
DEFINICIÓN | Payment cancelled |
El pago fue abandonado. El comprador abandonó voluntariamente la pantalla de pago o se llamó a Lyra.cancelProcess().
MOB_010
Código | MOB_010 |
DEFINICIÓN | Server timeout error, check IPN |
El servidor de pagos no ha respondido en 60 segundos. Esto puede deberse simplemente a una ralentización del tiempo, por lo que se aconseja encarecidamente comprobar la notificación de IPN después, y cancelar la transacción para mantener la coherencia.
MOB_011
Código | MOB_011 |
DEFINICIÓN | Unknown API Server Name |
No se reconoce el valor enviado en el campo apiServerName , probablemente por un error de escritura.
MOB_012
Código | MOB_012 |
DEFINICIÓN | Unknown Order Status |
Este error se produce si la plataforma de pago devuelve un estado de pago distinto de RUNNING, PAID, PARTIALLY_PAID o UNPAID.
MOB_013
Código | MOB_013 |
DEFINICIÓN | Payment cannot be cancelled |
El pago no puede cancelarse tras la llamada a Lyra.cancelProcess().
MOB_999
Código | MOB_999 |
DEFINICIÓN | Unexpected error |
Se ha producido un error inesperado. Póngase en contacto con el soporte.
Cuando contacte al soporte técnico, indique:
- Su número de tienda de 8 dígitos
- OS y versión del SDK
- Dispositivo utilizado (iPhone 6S, computadora personal, iPad Pro, etc.)
- Versión del OS
- Fecha y hora del error.
- El errorCode y detailedErrorCode que encuentre, de ser el caso
Estos datos mejorarán el tiempo que lleva analizar y comprender su problema.