Publicado em 2. fevereiro 2022 por Jan Bunk
Configurar seu próprio ponto final de verificação é um pouco complicado, então, infelizmente, nós não temos a capacidade de escrever um guia com o passo a passo completamente detalhado sobre como fazê-lo. No entanto, nós iremos apontar os principais passos neste guia.
O aplicativo irá colocar um objeto JSON como o seguinte para o seu ponto final de verificação:
Exemplo de compra no Google Play JSON:
{
// the userIdentifier you passed via Javascript
"userIdentifier": "user123",
// your app's ID (only relevant if you have multiple apps using the same verification endpoint)
"appId": 1234,
"purchaseDetails": {
"verificationData": {
"serverVerificationData": "abcdefghijklmnopqrstuvwx.AO-J1Oyabcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopq",
// the "autoRenewing" property in localVerificationData is only sent if the product is a subscription
"localVerificationData": "{\"orderId\":\"GPA.1234-1234-1234-12345\",\"packageName\":\"example.package.name\",\"productId\":\"exampleProductId\",\"purchaseTime\":1643389081662,\"purchaseState\":0,\"purchaseToken\":\"abcdefghijklmnopqrstuvwx.AO-J1Oyabcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopqrstuvwxyz123456789_-abcdefghijklmnopq\",\"autoRenewing\":true,\"acknowledged\":false}",
"source": "google_play"
},
"productID": "consumable",
"purchaseID": "GPA.1234-1234-1234-12345",
// can also be "restored" if triggered by a call to restorePurchases()
"status": "purchased",
"transactionDate": "1643389081662"
}
}
}
Exemplo de compra na App Store JSON:
{
"appId": 1234,
"userIdentifier": "user123",
"purchaseDetails": {
"verificationData": {
"serverVerificationData": "veryLongBase64String",
"localVerificationData": "veryLongBase64String",
"source": "app_store"
},
"productID": "consumable",
"purchaseID": "123",
// can also be "restored" if triggered by a call to restorePurchases()
"status": "purchased",
"transactionDate": "1644239123000"
}
}
Então, baseado no source
, você precisa verificar a compra com o Google Play (if source==google_play
) ou com a App Store (if source==app_store
).
Depois disso, se a compra for válida, você deve conceder ao usuário acesso ao produto comprado. Mais informações sobre como desbloquear produtos comprados
Finalmente, devolva um código de status 200 e esse JSON, para que o aplicativo possa confirmar a compra:
{
"complete_purchase": true
}
Ou, se a compra for inválida, devolva um código de status 200 e esse JSON, caso em que o aplicativo não irá confirmar a compra:
{
"complete_purchase": false
}
Se você não devolver um código de status 200, o aplicativo tentará repetir o pedido. Se o aplicativo não conseguir obter uma resposta indicando que a compra foi verificada, ele não irá confirmar a compra. Isto fará com que a compra seja automaticamente reembolsada em 3 dias (se realmente foi válida).
Aqui está uma lista de páginas relacionadas sobre as compras in-app: