Payments / Descripción general

Establecer seguimiento del estado del pedido

Para conceder artículos al usuario, debe asegurarse de que el pago haya sido aceptado.

Aviso
Puede realizar un seguimiento del estado del pedido en el lado cliente de su aplicación. Sin embargo, le recomendamos establecer un controlador de webhook de Pago para recibir información del pedido en el back-end de su aplicación. Gracias a esto podrá implementar una validación adicional de las compras finalizadas.

Elija un método para hacer un seguimiento del estado del pedido:

Seleccione el método que mejor se adapte a su proyecto para acceder a los datos de Xsolla:

Si no dispone de servidor o implementa la lógica para el procesamiento de compras en el lado del cliente, puede utilizar los siguientes métodos:

  1. WebSocket API.
  2. Short-polling (Sondeo corto).

Nota
Utilice aplicaciones web de prueba como ejemplo de implementación:

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.

Nota
Si no tiene un servidor propio para gestionar los webhooks, o emplea una lógica de procesamiento de compra en el lado del cliente, puede usar la API de WebSocket mediante el SDK de Centrifuge.

Dé los siguientes pasos:

  1. Para permitir que el servidor de Websocket de Xsolla y su cliente identifiquen los mensajes de estado del pedido, cree una conexión:

Copy
Full screen
Small screen
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
  1. Para recibir nuevos mensajes sobre el estado del pedido, suscríbase a los eventos mediante la función client.on:
Copy
Full screen
Small screen
client.on('publication', (ctx) => {
   //handle the status
});
  1. Desencadenar el establecimiento de una conexión real:
Copy
Full screen
Small screen
client.connect()
  1. Para recibir el historial de cambios en los estados del pedido, conecte el método del historial de la API.
Copy
Full screen
Small screen
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:

Copy
Full screen
Small screen
{
order_id: 59614241,
status: 'new'
}

Están disponibles los siguientes estados de pedido:

  • New — pedido creado pero no pagado
  • Paid — pedido pagado
  • Done — 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 o Done.
  • 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.

    Nota
    Se 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.
¿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: 2 de Abril 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.