Acompanhamento do status do pedido
Depois que um usuário faz uma compra, seu aplicativo pode executar as seguintes ações:
- mostrar o status do pedido na interface do aplicativo
- creditar o saldo de um usuário após um pagamento bem-sucedido
- conceder os itens comprados após um pagamento bem-sucedido
Ao usar o SDK para implementar a lógica dessas ações, você pode rastrear o status do pedido das seguintes maneiras:
Inscrevendo-se nas alterações de status do pedido
Para se inscrever nas alterações de status de pedido, use o método SDK getOrderStatus
da biblioteca Store e passe os seguintes parâmetros ao método:
listener
— objeto do ouvinte do tipoOrderStatusListener
.orderId
— ID do pedido recebido da compra através do carrinho de compras, compras com um clique ou compras com moedas virtuais como parâmetro.
Exemplo de chamada do método XStore.getOrderStatus:
- kotlin
XStore.getOrderStatus(object : OrderStatusListener() {
override fun onStatusUpdate(status: OrderResponse.Status) {
if(status == OrderResponse.Status.DONE) {
Log.d("MainActivity", "Success")
}
}
override fun onFailure() {
Log.d("MainActivity", "Failure")
}
}, orderId)
Recomendamos chamar o método XStore.getOrderStatus
ao abrir a interface de pagamento.
Esses métodos de compra encapsulam vários métodos para controlar o status do pedido. O rastreamento é realizado de acordo com o seguinte algoritmo:
- Uma conexão de websocket é estabelecida.
- Se a conexão for estabelecida com sucesso e o status do pedido for alterado para
done
oucancel
, o rastreamento é interrompido. Se uma conexão de websocket falhar ou a resposta contiver dados incorretos, o status do pedido é rastreado usando short-polling. - O rastreamento do status do pedido continua com short-polling. Uma solicitação de status de pedido HTTP simples é enviada a cada 3 segundos. O rastreamento é interrompido se o status do pedido for alterado para
done
oucancel
.
Solicitando o status do pedido
Você também pode solicitar status de pedido, por exemplo, ao redirecionar o usuário ao aplicativo a partir da interface de pagamento. Use os status retornados pela casse XPayments
para rastrear quando a interface de pagamento é fechada.
XPayments
indicam se o usuário concluiu o fluxo de compra na interface de pagamento e se não está no mesmo status de transação.A classe XPayments
pode retornar os seguintes status:
XPayments.Status.COMPLETED
— o usuário concluiu o pagamento e retornou ao aplicativo.XPayments.Status.CANCELLED
— o usuário fechou a interface de pagamento sem concluir o pagamento.XPayments.Status.UNKNOWN
— ocorreu um erro durante o pagamento. Por exemplo, quando o banco rejeitou a transação.
Para obter o status de uma transação atual, use o método getOrder
da biblioteca Store. Passe o ID do pedido recebido da compra através do carrinho de compras, compra com um clique ou compra com moedas virtuais como parâmetro.
Este artigo foi útil?
Avalie esta página
Não quero responder
Obrigado pelo seu feedback!
Links úteis
Última atualização: 26 de Março de 2024Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.