Payload do desenvolvedor

Historicamente, o payload do desenvolvedor tem sido usado para várias finalidades, incluindo a prevenção de fraudes e a atribuição de compras ao usuário correto. Com a versão 2.2 da Biblioteca do Google Play Faturamento e versões mais recentes, os casos de uso previstos que anteriormente dependiam do payload do desenvolvedor agora são completamente compatíveis com outras partes da biblioteca.

Com essa compatibilidade, o uso do payload do desenvolvedor foi suspenso a partir da versão 2.2 da Biblioteca do Google Play Faturamento. Os métodos associados ao payload do desenvolvedor foram suspensos na versão 2.2 e removidos na versão 3.0. Seu app pode continuar a recuperar o payload do desenvolvedor para compras realizadas usando versões anteriores da biblioteca ou AIDL.

Para ver uma lista detalhada das mudanças, consulte as notas da versão 2.2 da Biblioteca Google Play Faturamento e as notas da versão 3.0 da Biblioteca Google Play Faturamento.

Verificação de compra

Para garantir que as compras sejam autênticas e não falsificadas ou repetidas, o Google recomenda usar o token de compra (disponível no método getPurchaseToken() no objeto Purchase) com as APIs Google Play Developer. Para ver mais informações, consulte Combater fraude e abuso.

Atribuição de compra

Muitos apps, principalmente de jogos, precisam garantir que a compra seja atribuída corretamente ao personagem/avatar no jogo ou ao perfil do usuário no app. A partir da versão 2.2 da Biblioteca Google Play Faturamento, seu app pode transmitir identificadores ofuscados de perfil e conta para o Google ao iniciar a caixa de diálogo de compra e recebê-los de volta ao recuperar uma compra.

Use os parâmetros setObfuscatedAccountId() e setObfuscatedProfileId() em BillingFlowParams e recupere-os usando o método getAccountIdentifiers() no objeto Purchase.

Associar metadados a uma compra

O Google recomenda o armazenamento de metadados sobre uma compra em um servidor de back-end seguro mantido por você. Os metadados da compra precisam ser associados ao token de compra recebido ao usar o método getPurchaseToken no objeto Purchase. Esses dados podem ser mantidos pela transferência do token de compra e dos metadados para seu back-end quando seu PurchasesUpdatedListener for chamado após uma compra corretamente realizada.

Para garantir que os metadados sejam associados em casos de interrupções no fluxo de compra, o Google recomenda que eles sejam armazenados no servidor de back-end antes de abrir a caixa de diálogo de compra e que a compra seja associada ao ID da conta do usuário, ao SKU comprado e ao carimbo de data/hora atual.

Se o fluxo de compra for interrompido antes de PurchasesUpdatedListener ser chamado, o app descobrirá a compra assim que for retomado e chamar BillingClient.queryPurchasesAsync(). Você pode enviar os valores recuperados dos métodos getPurchaseTime(), getSku() e getPurchaseToken() do objeto Purchase para que seu servidor de back-end procure metadados, associe os metadados ao token de compra e continue processando a compra. O carimbo de data/hora armazenado inicialmente não corresponderá exatamente ao valor do getPurchaseTime() do objeto Purchase, então você precisaria compará-los de maneira aproximada. Por exemplo, é possível verificar se os valores estão dentro de um determinado período.