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 vai corresponder exatamente ao valor do getPurchaseTime()
do objeto
Purchase
.
Portanto, será necessário compará-los de forma aproximada. Por exemplo, é possível verificar
se os valores estão dentro de um determinado período entre si.