Webhooks recomendados

Nota
Consulte la descripción detallada de los webhooks y sus parámetros en ladocumentacion.
Aviso
El código que se muestra abajo es un ejemplo. Para un entorno de producción, se recomienda utilizar una opción más adaptable al desarrollo y al servicio de asistencia.
Le recomendamos que establezca el procesamiento de los siguientes tipos de webhooks:
  • Validación del usuario
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 (cadena/‘string’): es un ID único de usuario en su aplicación. Puede ser un alias u otro parámetro que identifique a un usuario. Utilice el ID de usuario para crear una solicitud a la base de datos de su aplicación. Si ya existe un usuario con este ID, llame al método break. En caso contrario, lance la excepción InvalidUserException.

Ejemplo

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};
  • Pago
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;
Nota
Se transmite una lista de artículos comprados en la matriz purchaseArray. Sus opciones de contenido están disponibles en la descripción de los parámetros del webhook Pago.
¿Te ha resultado útil este artículo?
¡Gracias!
¿Hay algo en lo que podamos mejorar? Mensaje
Lo sentimos
Por favor, cuéntanos por qué no te ha resultado útil este artículo. Mensaje
¡Gracias por tu mensaje!
Nos ayudará a mejorar tu experiencia.
Última actualización: 29 de Agosto de 2025

¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.

Informar de un problema
Nos esforzamos por ofrecer contenido de calidad. Tus comentarios nos ayudan a mejorar.
Déjanos tu correo electrónico para que te podamos responder
¡Gracias por tu mensaje!
No hemos podido enviar sus comentarios
Vuelva a intentarlo más tarde o escríbanos a doc_feedback@xsolla.com.