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

Veröffentlicht am 2. Februar 2022 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.