Suivi de l’état de la commande
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 typeOrderStatusListener
;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.
Exemple d’appel à la méthode XStore.getOrderStatus :
- kotlin
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 :
- Une connexion WebSocket est établie.
- 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. - 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.
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 ?
Évaluer cette page
Préfère ne pas répondre
Merci pour votre commentaire !
Liens utiles
Dernière mise à jour: 26 Mars 2024Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.