Obtenção do status do pedido do usuário

Obtenção do status do pedido do usuário

Você pode usar as seguintes maneiras de obter um status de pedido do usuário:

  1. No lado do servidor via webhooks.
  2. No lado do cliente via WebSocket API ou IGS API.

Obtenha o status do pedido do usuário no lado do servidor por meio de webhooks

Depois de configurar webhooks em seu servidor, você pode usá-los para obter os dados e o status do pedido.

Obtenha o status do pedido do usuário no lado do cliente via WebSocket API ou IGS API

Se você não tiver nenhum servidor ou implementar a lógica para processamento de compras no lado do cliente, você poderá usar as seguintes maneiras:
  1. WebSocket API.
  2. Short-polling.

Obtenção de status de pedido no lado do cliente usando WebSocket API

A solução utiliza websockets para obter diversos status do pedido sem obter informações detalhadas sobre ele. Esse método é preferível: apenas uma conexão é criada entre o cliente (por exemplo, seu site ou aplicativo móvel) e o servidor Xsolla, e portanto não há carga adicional no cliente ou no servidor.

Observação
Se você não tiver seu próprio servidor para lidar com webhooks, ou se você usar a lógica de processamento de compra do lado do cliente, você poderá usar o WebSocket API utilizando o Centrifuge SDK.

Conclua as seguintes etapas:

  1. Para permitir que o servidor de websocket Xsolla e o seu cliente identifiquem mensagens de status de pedido, crie uma conexão:

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 receber novas mensagens sobre status de pedidos, inscreva-se em eventos usando a função client.on:
Copy
Full screen
Small screen
client.on('publication', (ctx) => {
   //handle the status
});
  1. Acione o estabelecimento de uma conexão:
Copy
Full screen
Small screen
client.connect()
  1. Para receber o histórico de alterações nos status de pedidos, conecte o método API de histórico.
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
   });
});

Exemplo de corpo de mensagem:

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

Os seguintes status de pedido são possíveis:

  • New — o pedido foi criado mas não pago
  • Paid — o pedido foi pago
  • Done — o pedido foi entregue (todos os recibos enviados, entregas feitas do lado da Xsolla, plataformas externas, etc.)
  • Canceled — o pedido é cancelado e o pagamento reembolsado a um usuário

O tempo necessário para uma resposta via websocket é de 5 minutos. Depois disso ou se houver algum problema com o websocket, recomenda-se usar short-polling.

Short-polling

Para obter informações detalhadas sobre itens no pedido depois de alternar para o status, chame a API Obter pedido.

Observação
Uma pesquisa periódica de status do pedido é usada — uma solicitação HTTP simples que recebe o status do pedido e informações sobre o pedido. O atraso recomendado entre as solicitações é de 3 segundos.
Este artigo foi útil?
Obrigado!
Podemos melhorar alguma coisa? Mensagem
Que pena ouvir isso
Explique porque este artigo não foi útil para você. Mensagem
Obrigado pelo seu feedback!
Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
Última atualização: 8 de Novembro de 2024

Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

Relatar um problema
Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
Forneça um e-mail para que possamos responder
Obrigado pelo seu feedback!