Configurer le suivi de l’état de la commande
Pour attribuer des objets à l’utilisateur, vous devez vous assurer que le paiement est un succès.
Pour suivre l’état des commandes créées et les valider, vous devrez configurer le traitement des webhooks côté serveur de votre application.
Pour exploiter pleinement In-Game Store, il est nécessaire d’implémenter le traitement des principaux webhooks :
Webhook | Type de notification | Description |
---|---|---|
Validation utilisateur | user_validation | Est envoyé à différentes étapes du paiement pour s’assurer que l’utilisateur est bel et bien enregistré dans le jeu. |
Paiement | payment | Est envoyé lorsqu’une commande est payée, et contient les informations sur le paiement et les détails de la transaction. |
Paiement de commande réussi | order_paid | Est envoyé lorsqu’un webhook Paiement est traité avec succès, et contient les informations sur les objets achetés et l’ID de transaction. Utilisez les données du webhook pour octroyer les objets à l’utilisateur. |
Remboursement | refund | Est envoyé lorsqu’une commande est annulée, et contient les informations sur le paiement annulé et les détails de la transaction. |
Annulation de commande | order_canceled | Est envoyé lorsqu’un webhook Remboursement est traité avec succès, et contient les informations sur les objets achetés et l’ID de la transaction annulée. Utilisez les données du webhook pour supprimer les objets achetés. |
Pour accéder à la liste complète des webhooks et obtenir des informations générales sur leur utilisation, consultez la documentation sur les webhooks.
Configurer l'envoi de webhooks
Pour configurer les webhooks côté Xsolla :
- Ouvrez votre projet dans le Compte éditeur.
- Dans le menu latéral, cliquez sur Project settings et accédez à la section Webhooks.
- Dans le champ Webhook URL, spécifiez l’URL vers laquelle Xsolla enverra les webhooks.
- Cliquez sur Enable webhooks.
Ajouter un écouteur webhook
L’écouteur webhook est un code de programme qui permet de recevoir des webhooks entrants à une adresse URL spécifiée, de générer une signature et d’envoyer une réponse au serveur webhook de Xsolla.
Génération d'une signature
Lorsque vous recevez un webhook, vous devez vous assurer de la sécurité de la transmission des données. Pour cela, vous devez générer une signature à partir des données du webhook et vérifier qu’elle correspond à la signature envoyée dans l’en-tête de la requête HTTP.
Pour générer une signature :
- Concaténez le JSON du corps de la requête avec la clé secrète du projet.
- Appliquez la fonction de hachage cryptographique SHA-1 à la chaîne obtenue lors de la première étape.
Envoi de réponses au webhook
Pour confirmer la réception du webhook, votre serveur doit renvoyer :
- Un code HTTP
200
,201
ou204
en cas de réponse positive ; - Un code HTTP
400
avec description du problème au cas où l’utilisateur spécifié n’a pas été trouvé ou une signature non valide a été passée.
Votre gestionnaire de webhooks peut également renvoyer un code 5xx
en cas de problèmes temporaires sur votre serveur.
Si aucune réponse n’a été reçue pour les webhooks Successful payment of the order et Order cancellation ou si une réponse contenant un code 5xx
a été reçue, les webhooks sont renvoyés selon le calendrier suivant :
- 2 tentatives à intervalles de 5 minutes ;
- 7 tentatives à intervalles de 15 minutes ;
- 10 tentatives à intervalles de 60 minutes.
Un maximum de 20 tentatives d’envoi de webhooks sont effectuées dans les 12 heures suivant la première tentative.
Si aucune réponse n’a été reçue pour le webhook Payment ou si une réponse contenant un code 5xx
a été reçue, les webhooks sont également renvoyés à intervalles de temps croissants. Un maximum de 12 tentatives sont effectuées dans les 12 heures.
Si aucune réponse n’a été reçue pour le webhook User validation ou si une réponse contenant un code 400
ou 5xx
a été reçue, le webhook User validation n’est pas renvoyé.
Dans ce cas, une erreur est affichée à l’utilisateur et les webhooks Payment et Successful payment of the order ne sont pas envoyés.
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.