Obtener el estado del pedido del usuario
Obtener el estado del pedido del usuario
Puede utilizar las siguientes formas para obtener el estado del pedido de un usuario:
Obtener el estado del pedido del usuario en el lado del servidor mediante webhooks
Cuando haya configurado los webhooks en su servidor, podrá utilizarlos para obtener los detalles y el estado del pedido.Obtener el estado del pedido del usuario en el lado del cliente a través de WebSocket API o IGS API
Si no dispone de servidor o implementa la lógica para el procesamiento de compras en el lado del cliente, puede utilizar las siguientes formas:Obtener el estado de un pedido en el lado del cliente usando la API de WebSocket
La solución usa websockets para obtener los estados del pedido sin recuperar información detallada sobre este. Este método es preferente: solo se crea una conexión entre el cliente (por ejemplo, su sitio web o aplicación móvil) y el servidor de Xsolla, por lo que no hay carga adicional ni en el cliente ni en el servidor.
Dé los siguientes pasos:
- Para permitir que el servidor de Websocket de Xsolla y su cliente identifiquen los mensajes de estado del pedido, cree una conexión:
- javascript
const client = new Centrifuge(
connectionURL,
{
data: {
user_external_id: user_external_id,
auth: auth,
project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
- Para recibir nuevos mensajes sobre el estado del pedido, suscríbase a los eventos mediante la función
client.on
:
- javascript
client.on('publication', (ctx) => {
//handle the status
});
- Desencadenar el establecimiento de una conexión real:
- javascript
client.connect()
- Para recibir el historial de cambios en los estados del pedido, conecte el método del historial de la API.
- javascript
client.on('subscribed', function (ctx) {
client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
/handle the status
});
}, function (err) {
//handle the status
});
});
Ejemplo de cuerpo de mensaje:
- javascript
{
order_id: 59614241,
status: 'new'
}
Están disponibles los siguientes estados de pedido:
New
— pedido creado pero no pagadoPaid
— pedido pagadoDone
— pedido entregado (todos los recibos enviados, entregas realizadas por parte de Xsolla, plataformas externas, etc.)Canceled
— pedido cancelado y pago reembolsado a un usuario
Recomendaciones de uso de Websocket:
- El tiempo de espera máximo de una respuesta mediante websocket es de 5 minutos.
- La conexión debería establecerse al abrir la interfaz de pago.
- La conexión debería interrumpirse cuando se reciba el estado final del pedido, ya sea
Canceled
oDone
. - Si se agota la vida útil del websocket o si hay cualquier problema con la conexión, recurra al sondeo corto.
Sondeo corto
Para obtener información detallada sobre los artículos del pedido después de cambiar el estado, llame a la API Obtener pedido.
NotaSe utiliza un sondeo periódico del estado del pedido: una simple solicitud HTTP que recibe el estado del pedido e información sobre el mismo. El retardo recomendado entre solicitudes es de 3 segundos.Última actualización: 8 de Noviembre de 2024¿Te ha resultado útil este artículo?¡Gracias por tu mensaje!Nos ayudará a mejorar tu experiencia.¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.