Les webhooks vous permettent de recevoir des notifications instantanées des événements configurés qui se produisent côté Xsolla. Vous pouvez utiliser des webhooks pour automatiser le back-end et d'autres fonctions de votre application.
Exemples d'événements pouvant être notifiés :
Lorsqu'un événement configuré se produit, Xsolla en notifie à votre système via des webhooks. À titre d'exemple, les opérations ci-dessous peuvent être effectuées après réception d'un webhook :
Exemple de fonctionnement d'un webhook de traitement des paiements :
Les paramètres suivants doivent être appliqués pour que les webhooks fonctionnent correctement :
185.30.20.0/24
,
185.30.21.0/24
, 185.30.23.0/24
.Remarque
Si votre écouteur reçoit un webhook avec un ID de transaction existant, il doit renvoyer le résultat précédent pour cette transaction. Il n'est pas recommandé de facturer deux fois l'utilisateur ou de créer des enregistrements dupliqués dans la base de données.
Note
L'API Xsolla accepte les codes de réponse HTTP classiques pour les requêtes réussies ou échouées. Le code 204 indique un traitement réussi.
Comme les connexions Internet ne sont pas toujours fiables à 100 %, il est possible que les webhooks se perdent ou soient retardés. Pour résoudre ce problème, Xsolla renvoie les webhooks qui ont échoué jusqu'à ce que votre écouteur les reçoive. Les tentatives de renvoi sont effectuées dans les 12 heures suivant la première tentative. Le nombre maximal de tentatives de renvoi est de 12.
Note
Bien que les problèmes de connexion puissent entraîner la perte, le retard ou la duplication de webhooks, la cause la plus courante est une logique incorrecte côté écouteur.
Les signatures numériques permettent de sécuriser la transmission des données. Pour générer une signature, procédez comme suit :
POST /your_uri HTTP/1.1
host: your.host
accept: application/json
content-type: application/json
content-length: 165
authorization: Signature 52eac2713985e212351610d008e7e14fae46f902
{
"notification_type":"user_validation",
"user":{
"ip":"127.0.0.1",
"phone":"18777976552",
"email":"email@example.com",
"id":1234567,
"name":"Xsolla User",
"country":"US"
}
}
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'authorization: Signature 52eac2713985e212351610d008e7e14fae46f902' \
-d '{
"notification_type":
"user_validation",
"user":
{
"ip": "127.0.0.1",
"phone": "18777976552",
"email": "email@example.com",
"id": 1234567,
"name": "Xsolla User",
"country": "US"
}
}'
Codes d'erreur pour le code HTTP 400 :
Code | Message |
---|---|
INVALID_USER | Utilisateur non valide |
INVALID_PARAMETER | Paramètre non valide |
INVALID_SIGNATURE | Signature non valide |
INCORRECT_AMOUNT | Montant incorrect |
INCORRECT_INVOICE | Facture incorrecte |
HTTP/1.1 400 Bad Request
{
"error":{
"code":"INVALID_USER",
"message":"Invalid user"
}
}