Webhooks recommandés

Note
Voir la description détaillée des webhooks et de leurs paramètres dans la documentation.
Avis
Le code affiché ci-dessous est un exemple. Pour un environnement de production, il est recommandé d’utiliser une option plus adaptée au développement et au support.
Nous vous recommandons de configurer le traitement des types de webhook suivants :
  • Validation utilisateur
Copy
Full screen
Small screen
 1<?php
 2
 3case Message::USER_VALIDATION:
 4/** @var Xsolla\SDK\Webhook\Message\UserValidationMessage $message */
 5$userArray = $message->getUser();
 6$userId = $message->getUserId();
 7$messageArray = $message->toArray();
 8// TODO if user not found, you should throw
 9Xsolla\SDK\Exception\Webhook\InvalidUserException
10break;

user_id (string) — est un ID utilisateur unique dans votre application. Il peut s’agir d’un pseudo ou d’un autre paramètre permettant d’identifier l’utilisateur. Utilisez l’ID utilisateur pour créer une requête vers la base de données de votre application. Si l’utilisateur portant cet ID existe déjà, appelez la méthode break. Sinon, lancez l’exception InvalidUserException.

Exemple :

Copy
Full screen
Small screen
 1<?php
 2
 3DEFINE('DB_USER', 'root'); // specify
 4DEFINE('DB_PASSWORD', 'yourpasswordhere'); // specify
 5DEFINE('DB_HOST', '127.0.0.1'); // specify
 6DEFINE('DB_NAME','127.0.0.1'); //specify
 7
 8$callback = function (Message $message) {
 9$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
10OR die('Could not connect to MySQL '. mysqli_connect_error());
11
12switch ($message->getNotificationType()) {
13case Message::USER_VALIDATION:
14$userId = $message->getUserId();
15$query = "SELECT * FROM user_db.users u WHERE userID IN ('{$userId}') ";
16$response = @mysqli_query($dbc, $query);
17
18if (mysqli_num_rows($response) == 0){
19throw new InvalidUserException('User not found');
20}
21break;
22
23use Xsolla\SDK\Exception\Webhook\InvalidUserException;
24use Xsolla\SDK\Webhook\Message\Message;
25
26DEFINE('DB_USER', 'dbuser'); // specify
27DEFINE('DB_PASSWORD', 'dbpassword'); // specify
28DEFINE('DB_HOST', '127.0.0.1'); // specify
29DEFINE('DB_NAME', 'dbname'); //specify
30
31$callback = function (Message $message) {
32$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
33if (mysqli_connect_errno()) {
34printf("Connect failed: %s\n", mysqli_connect_error());
35exit;
36}
37
38switch ($message->getNotificationType()) {
39case Message::USER_VALIDATION:
40$userId = mysqli_real_escape_string($dbc, $message->getUserId());
41
42$query = "SELECT COUNT(user_id) FROM dbname.users WHERE user_id =
43
44'{$userId}'";
45
46$response = @mysqli_query($dbc, $query) or die(mysqli_error($dbc));
47
48if ((int)mysqli_fetch_row($response)[0] === 0) {
49throw new InvalidUserException('User not found');
50}
51break;
52default:
53break;
54}
55};
  • Paiement
Copy
Full screen
Small screen
 1<?php
 2
 3case Message::PAYMENT:
 4/** @var Xsolla\SDK\Webhook\Message\PaymentMessage $message */
 5$userArray = $message->getUser();
 6$paymentArray = $message->getTransaction();
 7$purchaseArray =$message->getPurchase();
 8$paymentId = $message->getPaymentId();
 9$externalPaymentId = $message->getExternalPaymentId();
10$paymentDetailsArray = $message->getPaymentDetails();
11$customParametersArray = $message->getCustomParameters();
12$isDryRun = $message->isDryRun();
13$messageArray = $message->toArray();
14// TODO if the payment delivery fails for some reason, you should throw
15Xsolla\SDK\Exception\Webhook\XsollaWebhookException
16break;
Note
Une liste d’objets achetés est passée dans le tableau purchaseArray. Ses options de contenu sont disponibles dans la description des paramètres du webhook Paiement.
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.
Dernière mise à jour: 3 Juin 2025

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 !
Impossible d'envoyer votre commentaire
Réessayez plus tard ou contactez-nous à doc_feedback@xsolla.com.