Veröffentlicht am 2. Februar 2022 von Jan Bunk
Die Einrichtung deines eigenen Verifizierungsendpunkts ist etwas kompliziert, daher haben wir leider nicht die Möglichkeit, eine ausführliche Schritt-für-Schritt-Anleitung zu schreiben, wie das geht. Wir werden jedoch die wichtigsten Schritte in dieser Anleitung aufzeigen.
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:
{
"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"
}
}
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. Mehr Infos zur Freischaltung gekaufter Produkte
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: