Publicado en 2. febrero 2022 por Jan Bunk
Configurar tu propio punto final de verificación es un poco complicado, por lo que, lamentablemente, no tenemos capacidad para escribir una guía detallada paso a paso sobre cómo hacerlo. Sin embargo, señalaremos los principales pasos en esta guía.
La aplicación publicará un objeto JSON como el siguiente a tu punto final de verificación:
JSON de ejemplo de compra en Google Play:
{
// 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"
}
}
}
JSON de ejemplo de compra en la App Store:
{
"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"
}
}
A continuación, basándote en la fuente
, debes verifica la compra con Google Play (if source==google_play
) o con la App Store (if source==app_store
).
Después, si la compra es válida, debes conceder al usuario el acceso al producto adquirido. Más información sobre el desbloqueo de productos comprados
Por último, devuelve un código de estado 200 y este JSON, para que la aplicación pueda confirmar la compra:
{
"complete_purchase": true
}
O, si la compra no es válida, devuelve un código de estado 200 y este JSON, en cuyo caso la aplicación no confirmará la compra:
{
"complete_purchase": false
}
Si no devuelve un código de estado 200, la aplicación intentará repetir la solicitud. Si la aplicación no consigue obtener una respuesta que indique que la compra ha sido verificada, no confirmará la compra. Esto hará que la compra se reembolse automáticamente en 3 días (si realmente fue válida).
Aquí tienes una lista de páginas relacionadas con las compras en la aplicación: