Aktualisiert am 18. Februar 2024 von Jan Bunk
Die Einrichtung deines eigenen Verifizierungsendpunkts ist zwar etwas kompliziert, aber wir gehen in diesem Leitfaden die wichtigsten Schritte durch, um dich auf den richtigen Weg zu bringen.
Die App wird ein JSON-Objekt wie das folgende an deinen Verifizierungsendpunkt 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:
{
// 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"
}
}
Dann musst du, basierend auf der source
, Folgendes tun
überprüfe den Kauf bei Google Play
(if source==google_play
)
oder beim App Store
(if source==app_store
).
Wenn der Kauf gültig ist, solltest du dem Nutzer anschließend Zugriff auf das gekaufte Produkt gewähren.
Du brauchst vor allem den userIdentifier
(das ist der String, 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.
Zum Schluss gibst du einen 200-Statuscode und dieses JSON zurück, damit die App den Kauf bestätigen kann:
{
"complete_purchase": true
}
Oder, wenn der Kauf ungültig ist, gib einen 200 Statuscode und dieses JSON zurück. In diesem Fall wird die App den Kauf nicht bestätigen:
{
"complete_purchase": false
}
Wenn du keinen Statuscode 200 zurückgibst, versucht die App, die Anfrage zu wiederholen. Wenn die App keine Antwort erhält, die angibt, dass der Kauf verifiziert wurde, wird sie den Kauf nicht bestätigen. Dies führt dazu, dass der Kauf nach 3 Tagen automatisch zurückerstattet wird (falls er tatsächlich gültig war).
Hier ist eine Liste mit verwandten Seiten über In-App-Käufe: