Los webhooks le permiten recibir notificaciones instantáneas de eventos configurados que se producen en el lado de Xsolla. Puede utilizar webhooks para automatizar funciones de back-end y complementarias de su aplicación.
Ejemplos de eventos sobre los que puede recibir notificaciones:
Cuando se produce un evento configurado, Xsolla se lo notifica a su sistema a través de webhooks. Por ejemplo, tras recibir un webhook, puede hacer lo siguiente:
A continuación se muestra un ejemplo de cómo funciona un webhook de procesamiento de pagos:
Para que los webhooks funcionen correctamente, deben aplicarse los siguientes ajustes:
185.30.20.0/24
,
185.30.21.0/24
y 185.30.23.0/24
.Aviso
Si su agente de escucha recibe un webhook con un ID de transacción existente, debe devolver el resultado anterior para esa transacción. No se recomienda cobrar dos veces al usuario ni crear registros duplicados en la base de datos.
Observación
La API de Xsolla acepta códigos de respuesta HTTP convencionales para las solicitudes realizadas correctamente y fallidas. El código 204 indica un procesamiento realizado correctamente.
Como las conexiones a Internet no son siempre 100 % fiables, los webhooks pueden perderse o retrasarse. Para abordar este problema, Xsolla reenvía los webhooks fallidos hasta que su agente de escucha los recibe. Los reenvíos de webhooks se realizan en el plazo de las 12 horas siguientes al anterior envío hasta que su agente de escucha confirme la recepción. El número máximo de reintentos es 12.
Observación
Aunque los problemas de conexión pueden resultar en webhooks perdidos, retrasados o duplicados, la causa más común es una lógica incorrecta en el lado del agente de escucha.
Las firmas digitales permiten la transmisión segura de datos. Para generar una firma:
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"
}
}'
Códigos de error para el código HTTP 400:
Código | Mensaje |
---|---|
INVALID_USER | Usuario no válido |
INVALID_PARAMETER | Parámetro no válido |
INVALID_SIGNATURE | Firma no válida |
INCORRECT_AMOUNT | Importe incorrecto |
INCORRECT_INVOICE | Factura incorrecta |
HTTP/1.1 400 Bad Request
{
"error":{
"code":"INVALID_USER",
"message":"Invalid user"
}
}