SDKs para Android / Acompanhamento do status do pedido
  Voltar aos Documentos

SDKs para Android

Acompanhamento do status do pedido

Aviso
O SDK permite que você rastreie o status do pedido no lado do cliente do seu aplicativo. Porém, recomendamos configurar um gerenciador de webhook Payment para receber informações no back-end do seu aplicativo. Isso permite que você implemente validações adicionais das compras concluídas.

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 tipo OrderStatusListener.
  • 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.
Documentação de referência do SDK
Saiba mais sobre os métodos SDK e seus parâmetros.

Exemplo de chamada do método XStore.getOrderStatus:

Copy
Full screen
Small screen
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:

  1. Uma conexão de websocket é estabelecida.
  2. Se a conexão for estabelecida com sucesso e o status do pedido for alterado para done ou cancel, o rastreamento é interrompido. Se uma conexão de websocket falhar ou a resposta contiver dados incorretos, o status do pedido é rastreado usando short-polling.
  3. 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 ou cancel.

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.

Aviso
Os status retornados à classe 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?
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.
Avalie esta página
Avalie esta página
Podemos melhorar alguma coisa?

Não quero responder

Obrigado pelo seu feedback!

Links úteis

Última atualização: 26 de Março 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!