Postat den 2. februari 2022 av Jan Bunk
Det är lite komplicerat att sätta upp en egen slutpunkt för verifiering, så tyvärr har vi inte möjlighet att skriva en helt detaljerad steg för steg-guide om hur du gör det. Vi kommer dock att peka på de viktigaste stegen i den här guiden.
Appen skickar ett JSON-objekt som följande till din verifieringsslutpunkt:
Exempel på köp i Google Play 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"
}
}
}
Exempel på köp i 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"
}
}
Sedan, baserat på källan
måste du verifiera köpet med Google Play (if source==google_play
) eller med App Store (if source==app_store
).
Sedan, om köpet är giltigt, ska du ge användaren tillgång till den köpta produkten. Mer information om att låsa upp köpta produkter
Slutligen returnerar du en 200-statuskod och denna JSON, så att appen kan bekräfta köpet:
{
"complete_purchase": true
}
Eller, om köpet är ogiltigt, returnera en 200-statuskod och den här JSON-koden, i vilket fall appen inte bekräftar köpet:
{
"complete_purchase": false
}
Om du inte returnerar en 200-statuskod försöker appen upprepa begäran. Om appen inte kan få ett svar som visar att köpet har verifierats kommer den inte att bekräfta köpet. Detta leder till att köpet automatiskt återbetalas inom 3 dagar (om det faktiskt var giltigt).
Här finns en lista med relaterade sidor om köp i appen: