Ciclo de vida de compras únicas

Os produtos de compra única têm um ciclo de vida mais simples do que os por assinatura, mas ainda há vários estados e eventos de transição que o back-end precisa para processar corretamente.

Estados de ciclo de vida e eventos de transição para compras únicas.
Figura 1 : estados de ciclo de vida e eventos de transição para compras únicas.

Novas compras de produtos únicos

Depois que o usuário conclui o fluxo de faturamento, o app pode acessar informações sobre a nova compra de uma destas maneiras:

Depois de receber a nova compra, use o getPurchaseState método ou purchases.productsv2.getproductpurchasev2 in Play Developer API

para determinar o estado de pagamento da nova compra.

Notificações do desenvolvedor em tempo real

Quando um usuário compra ou cancela a compra de um produto único, o Google Play envia uma OneTimeProductNotification mensagem. Para atualizar o estado de compra do back-end, use o token fornecido no OneTimeProductNotification objeto para chamar o purchases.productsv2.getproductpurchasev2 método. Esse método fornece o status de compra e consumo mais recente, considerando um token de compra.

Quando uma pré-encomenda é atendida e o estado da compra muda para COMPRADO, uma RTDN é enviada ao cliente. Depois de receber a RTDN, processe a compra de pré-encomenda conforme descrito em Processar compras de produtos únicos no back-end.

Processe os RTDNs relacionados a transações no back-end seguro.

Processar transações concluídas

Quando um usuário conclui uma compra de produto único, o Google Play envia uma mensagem OneTimeProductNotification com o tipo ONE_TIME_PRODUCT_PURCHASED. Quando você receber esse RTDN, processe a compra conforme descrito em Processar compras de produtos únicos no back-end.

Processar transações canceladas

Quando uma compra de produto único é cancelada, o Google Play envia uma mensagem OneTimeProductNotification com o tipo ONE_TIME_PRODUCT_CANCELED se você tiver configurado para receber notificações do desenvolvedor em tempo real. Por exemplo, isso poderá ocorrer se o usuário não concluir o pagamento dentro do período necessário ou se a compra for revogada pelo desenvolvedor ou por solicitação do cliente. Quando o servidor de back-end receber essa notificação, chame o purchases.productsv2.getproductpurchasev2 método para conferir o estado mais recente da compra e atualize o back-end de acordo com ele, incluindo os direitos do usuário.

Se uma compra de produto único no estado Purchased for reembolsada, você também vai receber uma notificação usando a API Voided Purchases.

Processar compras de produtos únicos no back-end

Se você detectou uma nova compra usando uma ONE_TIME_PRODUCT_PURCHASED RTDN ou recebeu um aviso no app usando PurchasesUpdatedListener ou buscando manualmente compras no método onResume() do app, será preciso processar a nova compra. Recomendamos processar as compras no back-end para maior segurança.

Siga estas etapas para processar uma nova compra única:

  1. Consulte o purchases.productsv2.getproductpurchasev2 endpoint para conferir o status mais recente da compra do produto único. Para chamar esse método para uma compra, você precisa do purchaseToken correspondente do seu app ou do RTDN ONE_TIME_PRODUCT_PURCHASED.
  2. Chame getPurchaseState() e verifique se o estado da compra é PURCHASED.
  3. Verifique a compra.
  4. Conceda ao usuário o acesso ao conteúdo. A conta de usuário associada à compra poderá ser identificada com o obfuscatedExternalAccountId campo de purchases.productsv2.getproductpurchasev2, se um código tiver sido definido usando setObfuscatedAccountId() quando a compra foi feita.
    1. Para compras de produtos que não são de consumo, confirme o envio do conteúdo chamando o purchases.products.acknowledge método. Verifique se a compra não foi confirmada anteriormente verificando o campo acknowledgementState.
    2. Se o produto for de consumo, marque o item como consumido chamando o purchases.products.consume método. Assim, o usuário poderá comprar o item novamente depois de consumi-lo. Esse método também confirma a compra.

A Biblioteca Play Faturamento também tem disponíveis confirmações de compra e métodos de consumo que permitem processar compras no seu app, mas recomendamos processá-la no back-end, se você tiver um, para ter uma implementação mais segura.