So geht's: Konfiguriere deinen IAP-Entsperrungs-Endpunkt

Aktualisiert am 22. Juni 2023 von Jan Bunk


Wenn du deine In-App-Kauf-Einstellungen so einrichtest, dass sie unseren verwalteten Endpunkt für die In-App-Kauf-Verifizierung nutzen, wird unser Verifizierungsendpunkt (nach der Verifizierung des Kaufs) ein JSON-Objekt wie das folgende an deinen Freischalt-Endpunkt POSTen:

Google Play Kauf Beispiel 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"
      }
    }
}
    

App Store Kauf Beispiel 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"
  }
}
    

Freischaltung der gekauften Produkte

Du brauchst vor allem den userIdentifier (das ist der userIdentifier, den du beim Aufruf von makeInAppPurchase im Javascript deiner Website übergeben hast), um zu bestimmen, für wen die Produkte freigeschaltet werden sollen, und die productID, um zu bestimmen, welches Produkt für den Benutzer freigeschaltet werden soll.

Nachdem ein In-App-Kauf - insbesondere ein Abonnement - durchgeführt wurde, musst du auf alle Änderungen achten, die daran vorgenommen werden. Du wirst zum Beispiel benachrichtigt, wenn ein Abonnement gekündigt oder ein In-App-Kauf zurückerstattet wurde, damit du die Vorteile, die der Nutzer aus dem Abonnement zieht, wieder zurücknehmen kannst.

Erwartetes Ergebnis

Sobald du fertig bist, sollte dein Endpunkt einen 200er Statuscode zurückgeben. Wenn er keinen 200-Statuscode zurückgibt, versucht unser Verifizierungsserver, die Anfrage zu wiederholen. Wenn der Verifizierungsserver keine Antwort erhält, die angibt, dass die Produkte freigeschaltet wurden, wird die App den Kauf nicht bestätigen. Dies führt dazu, dass der Kauf innerhalb von 3 Tagen automatisch zurückerstattet wird.

Du kannst unseren temporären No-op-Entsperrungsendpunkt zu Testzwecken verwenden. Auf diese Weise kannst du sicherstellen, dass In-App-Käufe nicht fehlschlagen, weil dein Server einen falschen Statuscode zurückgibt oder ähnliches. Hier ist die URL des Freischalt-Endpunkts, die du in deinen In-App-Kauf-Einstellungen verwenden kannst: https://webtoapp.design/apps/test_unlock_in_app_purchase/