Obtenir le statut de la commande de l’utilisateur
Obtenir le statut de la commande de l'utilisateur
Utilisez les moyens suivants pour obtenir le statut de la commande de l’utilisateur :
Obtenir le statut de la commande de l'utilisateur côté serveur via des webhooks
Après avoir configuré les webhooks sur votre serveur, vous pouvez les utiliser pour obtenir les détails et le statut de la commande.Obtenir le statut de la commande de l'utilisateur côté client via WebSocket API ou IGS API
Si vous n’avez pas de serveur ou si vous implémentez la logique de traitement des achats côté client, vous pouvez utiliser les moyens suivants :Obtenir l'état d'une commande côté client à l'aide de l'API WebSocket
La solution utilise WebSockets pour obtenir les statuts des commandes sans récupérer d’informations détaillées sur celles-ci. Cette méthode est préférable, car elle établit une seule connexion entre le client (par exemple, votre site web ou votre application mobile) et le serveur Xsolla, évitant ainsi une charge supplémentaire pour le client ou le serveur.
Effectuez les étapes suivantes:
- Pour permettre au serveur Xsolla WebSocket et à votre client d’identifier les messages d’état des commandes, créez une connexion :
- javascript
const client = new Centrifuge(
connectionURL,
{
data: {
user_external_id: user_external_id,
auth: auth,
project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
- Pour recevoir de nouveaux messages sur les statuts des commandes, abonnez-vous aux événements à l'aide de la fonction
client.on
:
- javascript
client.on('publication', (ctx) => {
//handle the status
});
- Déclenchez l'établissement effectif de la connexion :
- javascript
client.connect()
- Pour recevoir l'historique des changements de statuts des commandes, connectez la méthode API d'historique.
- javascript
client.on('subscribed', function (ctx) {
client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
/handle the status
});
}, function (err) {
//handle the status
});
});
Exemple de corps de message:
- javascript
{
order_id: 59614241,
status: 'new'
}
Les statuts de commande suivants sont possibles :
New
— la commande a été créée, mais n’est pas encore payée ;Paid
— la commande est payée ;Done
— la commande a été livrée (tous les reçus ont été envoyés, les livraisons ont été effectuées du côté de Xsolla, des plateformes externes, etc.) ;Canceled
— la commande a été annulée et le paiement a été remboursé à l’utilisateur.
Le temps nécessaire pour une réponse via websocket est de 5 minutes. Passé ce délai ou en cas de problème avec le websocket, il est recommandé d’utiliser un short-polling.
Short-polling
Pour obtenir des informations détaillées sur les biens de la commande après le passage au statut approprié, appelez l’API Get order.
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.