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:
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: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.
Conclua as seguintes etapas:
- Para permitir que o servidor de websocket Xsolla e o seu cliente identifiquem mensagens de status de pedido, crie uma conexão:
- 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 receber novas mensagens sobre status de pedidos, inscreva-se em eventos usando a função
client.on
:
- javascript
client.on('publication', (ctx) => {
//handle the status
});
- Acione o estabelecimento de uma conexão:
- javascript
client.connect()
- Para receber o histórico de alterações nos status de pedidos, conecte o método API de histórico.
- 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
});
});
Exemplo de corpo de mensagem:
- javascript
{
order_id: 59614241,
status: 'new'
}
Os seguintes status de pedido são possíveis:
New
— o pedido foi criado mas não pagoPaid
— o pedido foi pagoDone
— 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
Recomendações de uso de websocket:
- O tempo máximo de espera por uma resposta via websocket é de 5 minutos.
- A conexão deve ser estabelecida ao abrir a interface de pagamento.
- A conexão deve ser abortada quando o status final do pedido for recebido, seja ele
Canceled
ouDone
. - Se o tempo de vida útil do websocket expirar, ou se houver qualquer problema com a conexão, utilize 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çãoUma 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.Última atualização: 8 de Novembro de 2024Este artigo foi útil?Obrigado pelo seu feedback!Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.