Come Fare: Configurare un Endpoint di Verifica IAP

Aggiornato il 13. giugno 2025 da Jan Bunk


Inizia configurando un URL di verifica nella tua dashboard. L'app invierà un oggetto JSON come il seguente all'URL che hai configurato:

Esempio di acquisto con JSON su 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"
      }
    }
}
    

Esempio di acquisto con JSON su App Store:


{
  // your app's ID (only relevant if you have multiple apps using the same verification endpoint)
  "appId": 1234,
  // the userIdentifier you passed via Javascript
  "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"
  }
}
    

Poi, in base al source, hai bisogno di verificare l'acquisto con Google Play (if source==google_play) o con l'App Store (if source==app_store).

In seguito, se l'acquisto è valido, dovresti concedere all'utente l'accesso al prodotto acquistato.

Avrai principalmente bisogno del userIdentifier (che è la stringa che hai passato quando hai chiamato makeInAppPurchase nel JavaScript del tuo sito web) per determinare a chi sbloccare i prodotti e del productID per determinare quale prodotto sbloccare per l'utente.

Dopo che un acquisto in-app - specialmente un abbonamento - è stato completato, avrai bisogno di venire notificato su qualsiasi modifica che viene apportata. Per esempio sarai avvisato quando un abbonamento è stato cancellato o un acquisto in-app è stato rimborsato, così potrai revocare i benefici che l'utente ottiene dall'abbonamento.

Infine, restituisci un codice di stato 200 e questo JSON, così l'app può confermare l'acquisto:


{
    "complete_purchase": true
}
    

Oppure, se l'acquisto non è valido, restituisci un codice di stato 200 e questo JSON, nel qual caso l'applicazione non confermerà l'acquisto:


{
    "complete_purchase": false
}
    

Se non restituisci un codice di stato 200, l'applicazione proverà a ripetere la richiesta. Se l'applicazione non è in grado di ottenere una risposta che indichi che l'acquisto è stato verificato, non confermerà l'acquisto. Questo porterà al rimborso automatico dell'acquisto in 3 giorni (se era effettivamente valido).