Cómo: Configurar tu punto final de desbloqueo IAP

Publicado en 2. febrero 2022 por Jan Bunk


Si tú configura tu configuración de compras en la aplicación para utilizar nuestro punto final de verificación de compras en la aplicación gestionado, nuestro punto final de verificación (después de verificar la compra) POSTARÁ un objeto JSON como el siguiente a su punto final de desbloqueo:

Ejemplo de compra en 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"
      }
    }
}
    

Ejemplo de compra en la 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"
  }
}
    

Desbloquear los productos comprados

Necesitarás principalmente el identificador de usuario (que es el identificador de usuario que pasaste cuando llamaste a makeInAppPurchase en el Javascript de tu sitio web) para determinar a quién hay que desbloquear los productos y el identificador de producto para determinar qué producto hay que desbloquear para el usuario.

Después de que se haya realizado una compra en la aplicación -especialmente una suscripción-, tendrás que estar atento a cualquier cambio que se haga en ella. Por ejemplo, se te notificará cuando se cancele una suscripción o se reembolse una compra dentro de la aplicación, para que puedas revocar los beneficios que el usuario obtiene de la suscripción.

Resultado esperado

Una vez que hayas terminado, tu punto final debería devolver un código de estado 200. Si no devuelve un código de estado 200, nuestro servidor de verificación intentará repetir la solicitud. Si el servidor de verificación no puede obtener una respuesta que indique que los productos fueron desbloqueados, la aplicación no confirmará la compra. Esto hará que la compra se reembolse automáticamente en 3 días.