Establecer seguimiento del estado del pedido
Para conceder artículos al usuario, debe asegurarse de que el pago haya sido aceptado.
Para hacer un seguimiento del estado de los pedidos creados y validarlos, deberá configurar el procesamiento de webhooks en el lado del servidor de su aplicación.
Para que funcione plenamente una tienda en el juego, es necesario implementar el procesamiento de los principales webhooks:
Webhook | Tipo de notificación | Descripción |
---|---|---|
User validation (Validación del usuario) | user_validation | Se envían en distintas fases del proceso de pago para garantizar que el usuario esté registrado en el juego. |
Payment (Pago) | payment | Se envía cuando se paga un pedido y contiene los detalles de pago y los detalles de la transacción. |
Successful payment of the order (Pago del pedido realizado con éxito) | order_paid | Se envía cuando se ha procesado correctamente un webhook Payment y contiene información sobre los artículos comprados y el ID de la transacción. Utilice los datos del webhook para añadir artículos al usuario. |
Refund (Reembolso) | refund | Se envía cuando se cancela un pedido, y contiene los detalles de pago y los detalles de la transacción. |
Cancelación de pedidos | order_canceled | Se envía cuando se ha procesado correctamente un webhook de Refund y contiene información sobre los artículos comprados y el ID de la transacción cancelada. Utilice los datos del webhook para eliminar los artículos comprados. |
Para obtener la lista completa de webhooks e información general sobre cómo operar con ellos, consulte la documentación de webhooks.
Establecer el envío de webhooks
Para configurar webhooks en el lado de Xsolla:
- Abra su proyecto en Cuenta del editor.
- Haga clic en Project settings en el menú lateral y vaya a la sección Webhooks.
- En el campo Webhook URL, especifique la URL a la cual Xsolla enviará los webhooks.
- Haga clic en Enable webhooks.
Agregar un agente de escucha de webhooks
El agente de escucha de webhooks es un código de programa que permite recibir webhooks entrantes en una dirección URL especificada, generar una firma, y enviar una respuesta al servidor de webhooks de Xsolla.
Generación de firma
Cuando reciba un webhook, se debe garantizar la seguridad de la transmisión de datos. Para conseguirlo, se debe generar una firma a partir de los datos del webhook y verificar que coincide con la firma enviada en el encabezado de la solicitud HTTP.
Para generar una firma:
- Concatene el JSON del cuerpo de la solicitud y la clave secreta del proyecto.
- Aplique la función hash criptográfica SHA-1 a la cadena obtenida en el primer paso.
Enviar respuestas al webhook
Para confirmar la recepción del webhook, su servidor debe devolver:
- código HTTP
200
,201
o204
en el caso de una respuesta correcta. - Código HTTP
400
con descripción del problema si no se ha encontrado el usuario especificado o se ha transmitido una firma no válida.
Su controlador de webhook también puede devolver un código 5xx
en caso de problemas temporales en su servidor.
Si no se recibió una respuesta para los webhooks Successful payment of the order y Order cancellation o si se ha recibido una respuesta con un código 5xx
, los webhooks se reenvían con arreglo al siguiente esquema temporal:
- 2 intentos con un intervalo de 5 minutos
- 7 intentos con un intervalo de 15 minutos
- 10 intentos con un intervalo de 60 minutos
Se realizan un máximo de 20 intentos de envío de webhooks en un plazo de 12 horas desde el primer intento.
Si para el webhook Pago no se recibió una respuesta o si se recibió una respuesta con un código 5xx
, los webhooks también se reenvían con un intervalo mayor. Se realiza un máximo de 12 intentos en 12 horas.
Si no se recibió una respuesta para el webhook Validación del usuario o si se recibió una respuesta con un código 400
o 5xx
, el webhook Validación del usuario no se reenvía.
En este caso, se muestra un error al usuario y no se envían los webhooks Pago y Successful payment of the order.
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.