Come: Configurare il tuo endpoint di sblocco IAP

Postato su 2. febbraio 2022 da Jan Bunk


Se tu configura le tue impostazioni di acquisto in app per utilizzare il nostro endpoint gestito per la verifica degli acquisti in app, il nostro endpoint di verifica (dopo aver verificato l'acquisto) invierà un oggetto JSON come il seguente al tuo endpoint di sblocco:

Google Play acquisto esempio 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"
      }
    }
}
    

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

Sbloccare i prodotti acquistati

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

Dopo che un acquisto in app - specialmente un abbonamento - è stato fatto, avrai bisogno di ascoltare qualsiasi cambiamento che viene fatto. 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.

Risultato atteso

Una volta fatto, il tuo endpoint dovrebbe restituire un codice di stato 200. Se non restituisce un codice di stato 200, il nostro server di verifica proverà a ripetere la richiesta. Se il server di verifica non è in grado di ottenere una risposta che indica che i prodotti sono stati sbloccati, l'applicazione non confermerà l'acquisto. Questo porterà al rimborso automatico dell'acquisto entro 3 giorni.