Gestion des erreurs
Présentation
Les erreurs du SDK mobile sont renvoyées au travers de l'objet LyraException
qui possède les paramètres suivants :
PARAMETRE | DESCRIPTION |
---|---|
errorCode | Il permet d'identifier l'erreur courante (au format [PREFIXE]_[CODE]). |
errorMessage | Explicite l'erreur correspondant au code. |
detailedErrorCode | Code de l'erreur sous-jacente à l'origine de l'exception (ou null). |
detailedErrorMessage | Message de l'erreur sous-jacente (ou null). |
Le champ detailedError
indique la cause précise de l'erreur.
Types d'erreurs
Il faut différencier les erreurs qui se produisent pendant le développement, de celles qui peuvent se produire pendant l'exécution du SDK.
Erreurs de développement
Dans ce cas, le SDK lance une exception de type LyraException, qui doit être capturée par le développeur.
Cela peut se produire dans les cas suivants :
Après l'appel à la méthode initialize() :
Si le format du paramètre publicKey est incorrect, une exception
MOBP_001-INVALID_KEY
sera levée.Si le format du paramètre apiServerName est incorrect, une exception
MOBP_012-UNKNOWN_API_SERVER_NAME
sera levée.
Après l'appel à la méthode process() :
- Si le SDK n'est pas initialisé au préalable, une exception
MOBP-002-INITIALIZATION_REQUIRED
sera levée.
Erreurs d'exécution
Pour les autres erreurs, les informations seront transmises dans l'objet LyraException via la fonction de callback onError(), comme décrit dans le guide d'intégration.
Codes d'erreur
Un code d'erreur se présente sous la forme [PREFIXE]_[CODE] :
[PREFIXE] | définit la couche applicative où l'erreur a eu lieu |
[CODE] | est le code numérique de l'erreur. |
Il existe différents préfixes :
PREFIXE | DESCRIPTION | EXEMPLE D'ERREUR |
---|---|---|
MOB | Erreur du SDK mobile | MOB_004 |
ACQ | Erreur du côté acquéreur | ACQ_001 |
AUTH | Erreur d'authentification | AUTH_149 |
INT | Erreur d'intégration (du côté du marchand) | INT_007 |
PSP | Erreur du côté de la plateforme de paiement | PSP_001 |
Erreurs ACQ, AUTH, INT et PSP
Ces codes d'erreur concernent les communications avec les serveurs du paiement (vers la plateforme de paiement, votre serveur marchand, etc.). Consultez Codes d'erreur pour les détails de ce type d'erreur.
Préconisation de gestion d'erreur
Quel que soit le cas d'erreur, nous vous recommandons :
- de toujours afficher un message pour informer l'utilisateur que le paiement n'a pas eu lieu.
- de bien tracer les
errorCode
, lesdetailedErrorCode
et leurs messages associés afin de pouvoir analyser les incidents que vous pouvez rencontrer et les résoudre de manière autonome. En cas d'erreur, vous ne devez JAMAIS considérer que le paiement a été effectué.
Erreurs MOB
Ces erreurs ont lieu si une erreur se produit coté SDK mobile.
ERROR CODE | DEFINITION |
---|---|
MOB_001 | Invalid public key |
MOB_002 | SDK initialization is required before calling process |
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_014 | Payment by Apple Pay not available |
MOB_999 | Unexpected error |
Détail des codes d'erreur
MOB_001
Code | MOB_001 |
Définition | Invalid public key |
La clé publique fournie à l'initialisation du SDK n'est pas bonne. Il est possible que vous essayiez d'effectuer une transaction de test avec une clé de production ou inversement. Voir : Prérequis
MOB_002
Code | MOB_002 |
Définition | SDK initialization is required before calling process |
Vous tentez d'appeler la méthode process
avant d'avoir appelé la méthode init
. Voir : Guide d'intégration Android et Guide d'integration iOS sur l'initialisation du SDK.
MOB_003
Code | MOB_003 |
Définition | Invalid formToken |
L'identifiant de formulaire semble incorrect. Assurez-vous d'avoir bien suivi les instructions données dans les guides d'intégration. Si rien n'est susceptible de provoquer une erreur, contactez l'assistance technique.
MOB_004
Code | MOB_004 |
Définition | Invalid formToken version |
La version de l'identifiant de formulaire n'est pas bonne. Pour s'assurer d'avoir la bonne version, appelez la méthode getFormTokenVersion
du SDK et passez les résultats dans le paramètre formTokenVersion
du createPayment
.
MOB_005
Code | MOB_005 |
Définition | Impossible to communicate with server |
Contactez l'assistance technique.
MOB_006
Code | MOB_006 |
Définition | Network is not available |
Le périphérique ne semble pas être connecté à Internet. Envoyez un message à l'utilisateur afin de s'assurer qu'il est bien connecté .
MOB_007
Code | MOB_007 |
Définition | Invalid response of Lyra Rest API |
Contactez l'assistance technique.
MOB_008
Code | MOB_008 |
Définition | Payment refused |
Le nombre de tentatives supplémentaires est atteint et le paiement est refusé.
MOB_009
Code | MOB_009 |
Définition | Payment cancelled |
Le paiement a été volontairement annulé. L'acheteur a volontairement quitté l'écran de paiement ou le Lyra.cancelProcess()
a été appelé.
MOB_010
Code | MOB_010 |
Définition | Server timeout error, check IPN |
Le serveur de paiement n'a pas répondu dans un délai de 60 secondes. Cela peut être dû simplement à un ralentissement temporel, donc il est fortement recommandé de vérifier a posteriori la notification IPN et annuler la transaction pour garder la cohérence.
MOB_011
Code | MOB_011 |
Définition | Unknown API Server Name |
La valeur envoyée dans le champ apiServerName
n'est pas reconnue, probablement suite à un erreur de frappe.
MOB_012
Code | MOB_012 |
Définition | Unknown Order Status |
Cette erreur est levée si la plateforme de paiement retourne un statut de paiement différent de RUNNING, PAID, PARTIALLY_PAID ou UNPAID.
MOB_013
Code | MOB_013 |
Définition | Payment cannot be cancelled |
Le paiement ne peut pas être annulé suite à l'appel au Lyra.cancelProcess()
.
MOB_014
Code | MOB_014 |
Définition | Payment by Apple Pay not available |
Cette erreur est levée suite à l'appel au Lyra.cancelProcess()
avec l'option [LyraPaymentOptions.paymentMethodType: LyraPaymentMethods.applePay]
et que le payment via Apple Pay n'est pas disponible.
MOB_999
Code | MOB_999 |
Définition | Unexpected error |
Une erreur inattendue s'est produite. Merci de contacter le support.
Lorsque vous contactezl'assistance technique, communiquez :
- Votre numéro de boutique à 8 chiffres
- OS et version du SDK
- Périphérique utilisé (Iphone 6S, PC, Ipad Pro …)
- Version de l'OS
- Date et Heure de l'erreur
- Le
errorCode
etdetailedErrorCode
que vous rencontrez si c'est le cas
Ces informations facilitent le temps d'analyse et de compréhension de votre problème.