SDK pour Android / Suivi de l'état de la commande
  Retour à la documentation

SDK pour Android

Suivi de l’état de la commande

Avis
Le SDK vous permet de suivre l’état de la commande côté client de votre application. Cependant, nous vous recommandons d’implémenter un gestionnaire de webhooks Paiement pour recevoir des informations sur les commandes dans le back-end de votre application. Cela vous permet d’implémenter une validation supplémentaire des achats effectués.

Une fois que l’utilisateur a réalisé un achat, votre application peut effectuer les actions suivantes :

  • afficher le statut de la commande dans l’interface de l’application ;
  • créditer le solde de l’utilisateur après un paiement réussi ;
  • octroyer les objets achetés après un paiement réussi.

Pour suivre l’état de la commande lorsque vous utilisez le SDK pour implémenter la logique de ces actions, vous pouvez :

S'abonner aux changements d'état des commandes

Pour vous abonner aux changements d’état des commandes, utilisez la méthode SDK getOrderStatus de la bibliothèque Store et passez-lui les paramètres suivants :

  • listener — objet écouteur de type OrderStatusListener ;
  • orderId — ID de la commande reçu en tant que paramètre lors de l’achat via le panier, de l’achat en un clic ou de l’achat contre de la monnaie virtuelle.
Documentation de référence du SDK
En savoir plus sur les méthodes SDK et leurs paramètres.

Exemple d’appel à la méthode XStore.getOrderStatus :

Copy
Full screen
Small screen
XStore.getOrderStatus(object : OrderStatusListener() {

               override fun  onStatusUpdate(status: OrderResponse.Status) {

                   if(status == OrderResponse.Status.DONE) {

                       Log.d("MainActivity", "Success")

                   }

               }

               override fun  onFailure() {

                   Log.d("MainActivity", "Failure")

               }

           }, orderId)

Nous recommandons d’appeler la méthode XStore.getOrderStatus lors de l’ouverture de l’interface de paiement.

Les méthodes d’achat encapsulent plusieurs méthodes de suivi de l’état de la commande. Le suivi est effectué selon l’algorithme suivant :

  1. Une connexion WebSocket est établie.
  2. Si la connexion WebSocket est établie avec succès et que le statut de la commande passe à done ou à cancel, le suivi s'arrête. Si la connexion WebSocket échoue ou si la réponse contient des données incorrectes, l'état de la commande est suivi à l'aide de short-polling.
  3. Le suivi de l'état de la commande se poursuit à l'aide de short-polling. Une simple requête HTTP d'état de commande est envoyée toutes les 3 secondes. Le suivi s'arrête si le statut de la commande passe à done ou à cancel.

Demander l'état de la commande

Vous pouvez également demander l’état de la commande, par exemple, lorsque vous redirigez l’utilisateur vers l’application à partir de l’interface de paiement. Utilisez les statuts renvoyés par la classe XPayments pour suivre la fermeture de l’interface de paiement.

Avis
Les statuts renvoyés par la classe XPayments indiquent si l’utilisateur a terminé un flux d’achat dans l’interface de paiement et ne sont pas identiques aux statuts des transactions de paiement.

La classe XPayments peut renvoyer les statuts suivants :

  • XPayments.Status.COMPLETED — l’utilisateur a terminé le paiement et est retourné à l’application.
  • XPayments.Status.CANCELLED — l’utilisateur a fermé l’interface de paiement sans terminer le paiement.
  • XPayments.Status.UNKNOWN — une erreur s’est produite lors le paiement, par exemple, la transaction a été rejetée par la banque.

Pour récupérer le statut actuel d’une transaction de paiement, utilisez la méthode getOrder de la bibliothèque Store. Passez-lui l’ID de commande obtenu lors de l’achat via le panier, achat en un clic ou achat contre de la monnaie virtuelle en tant que paramètre.

Cet article vous a été utile ?
Merci !
Que pouvons-nous améliorer ? Message
Nous sommes désolés de l'apprendre
Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
Merci pour votre commentaire !
Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.
Évaluer cette page
Évaluer cette page
Que pouvons-nous améliorer ?

Préfère ne pas répondre

Merci pour votre commentaire !

Liens utiles

Dernière mise à jour: 26 Mars 2024

Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.

Signaler un problème
Nous améliorons continuellement notre contenu grâce à vos commentaires.
Indiquez votre adresse e-mail pour un suivi
Merci pour votre commentaire !