Configure o rastreamento de status de pedidos
Para conceder itens ao usuário, você precisa se certificar de que o pagamento foi bem-sucedido.
Escolha um método para rastrear o status do pedido:
Escolha o método mais adequado para o seu projeto para acessar os dados Xsolla:
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 API WebSocket
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.
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.