Componentes do Faturamento do Google Play no seu servidor de back-end

Você acabou de implementar o Google Play Faturamento no seu app Android ou PWA, e os usuários já podem comprar seus produtos digitais. Agora é hora de implementar alguns componentes principais do Google Play Faturamento no seu servidor de back-end.

API Google Play Developer

A API Google Play Developer tem dois componentes: a API Subscriptions and In-app Purchases e a API Publishing. A API Subscriptions and In-app Purchases consiste nos seguintes recursos REST para ajudar a gerenciar produtos e compras:

É possível usar a API Google Play Developer diretamente como uma API REST ou as bibliotecas de cliente para começar a desenvolver rapidamente. As bibliotecas de cliente para todas as linguagens compatíveis podem ser encontradas aqui. Siga o guia de primeiros passos da API Google Play Developer para vincular seu projeto de API e configurar clientes de acesso à API.

Listar todos os produtos no app

Ao consultar detalhes de produtos disponíveis no front-end (no seu app Android ou PWA), especifique a lista de IDs de produtos. Você pode implementar isso no seu servidor de back-end com o método inappproducts.list da API Play Developer, que lista todos os produtos no app e assinaturas criados no Play Console. Verifique o status de cada produto e envie apenas os active para o cliente do app.

Verificar compras antes de conceder titularidade

Uma parte crucial da implementação do Play Faturamento no seu app Android ou PWA é garantir que você está verificando as compras antes de conceder direitos ao usuário. Ao conceder um direito a um usuário, você está acesso aos benefícios ou ao conteúdo associado ao item comprado. Como isso exige o tratamento de dados sensíveis, é necessário fazer isso no servidor de back-end.

A API Google Play Developer oferece os métodos purchases.products:get e purchases.subscriptions:get. Use esses dados com tokens de compra recuperados no app ou armazenados no servidor de back-end para verificar se uma compra é legítima. Você precisa acompanhar os tokens de compra no servidor de back-end para compras adicionais e verificação de direitos do usuário. Consulte a documentação do Google Play Faturamento sobre como verificar compras para mais detalhes sobre as etapas que você precisa seguir.

Compras no app

Depois de receber o token de compra do cliente, seu back-end precisa chamar a API Google Play Developer e validar se ele já foi consumido. O campo purchaseState de uma compra válida é 1.

Se a compra for válida, o cliente vai confirmar a compra e conceder o direito de acesso depois de receber a resposta do servidor.

Compras de assinaturas

Assim como na verificação de compras no app, seu servidor de back-end precisa chamar a API Google Play Developer depois de receber o token de compra do cliente e validar se a assinatura ainda está ativa.

O cliente precisa conceder o direito se o campo expiryTimeMillis da assinatura for maior que a hora atual.

Também é um bom momento para verificar o campo linkedPurchaseToken e atualizar o banco de dados de assinaturas adequadamente para lidar com upgrades, downgrades e outros fluxos de assinatura. O restante desta página vai entrar em mais detalhes.

Manter o estado do back-end atualizado

Se o app estiver disponível em diferentes plataformas (que também podem usar métodos de pagamento diferentes), acompanhar os usuários e as compras deles no servidor de back-end vai garantir que eles possam acessar os mesmos direitos em todos os dispositivos e plataformas em que usam o app.

Isso pode ser tão simples quanto ter um banco de dados em que você mantém um registro dos seus usuários e dos direitos atuais deles. Depois, à medida que eles fazem compras ou consomem os direitos, você atualiza o valor. Na próxima vez que eles acessarem seu app em uma plataforma diferente, você poderá recuperar os direitos adequados do seu back-end para que o usuário possa acessar.

Processar mudanças no estado da assinatura

Uma assinatura pode passar por várias mudanças de estado ao longo do ciclo de vida, e você precisa responder a cada uma delas. Saiba mais sobre como gerenciar o ciclo de vida da assinatura para manter seu back-end sempre atualizado.

Subscription linkedPurchaseToken

Conforme descrito na documentação de assinaturas, todo novo fluxo de compra do Google Play (compra inicial, upgrade ou downgrade) gera um novo token de compra. O campo linkedPurchaseToken permite reconhecer quando vários tokens de compra pertencem à mesma assinatura.

Sempre que você verificar uma assinatura, seu back-end precisará verificar se o campo linkedPurchaseToken está definido. Se for, o valor nesse campo representa o token anterior que foi substituído. Marque imediatamente o token anterior como inválido para que os usuários não possam usá-lo para acessar seu conteúdo.

Por exemplo, quando o back-end recebe o token de compra A para a compra inicial, com um campo linkedPurchaseToken vazio, ele ativa o direito para esse token. Mais tarde, quando o back-end receber o novo token de compra B após o upgrade, ele vai verificar o campo linkedPurchaseToken, ver que ele está definido como A e desativar o direito de acesso para o token de compra A.

Como processar tokens de compra vinculados durante um upgrade de assinatura.

Para uma discussão detalhada sobre a implementação de linkedPurchaseToken, acesse Implementar linkedPurchaseToken corretamente para evitar assinaturas duplicadas.

Notificações do desenvolvedor em tempo real

O método purchases.subscriptions:get da API Google Play Developer é a fonte de verdade para gerenciar assinaturas de usuários. Se você gerenciar o estado dos assinantes em um servidor de back-end seguro, mantenha o estado sincronizado com os servidores do Google. No entanto, a sondagem frequente da API Google Play Developer pode levar a restrições de cota da API e atrasos no recebimento de notificações de ações importantes do usuário (como cancelamento ou upgrade de uma assinatura).

As Notificações do desenvolvedor em tempo real (RTDN) são um recurso do Google Play Faturamento que envia uma notificação instantânea ao seu servidor quando o estado de direito de acesso de um assinante muda (por exemplo, assinatura comprada, cancelada ou em espera). Com as RTDNs, você pode manter seu banco de dados de assinantes sincronizado apenas respondendo a essas notificações, em vez de pesquisar a API Google Play Developer regularmente.

O servidor de back-end vai receber um SubscriptionNotification para eventos que afetam o estado da assinatura, como renovações e cancelamentos. Em seguida, chame a API Google Play Developer com o token de compra na notificação para conferir o status completo e atualizar seu próprio estado de back-end.

Siga estas instruções para configurar as RTDNs no seu app. Em seguida, configure o servidor de back-end para consumir essas mensagens.

Confira a referência completa do RTDN para saber mais.