Bijgewerkt op 22. juni 2023 door Jan Bunk
Als je je in-app-aankoop-instellingen instelt om het door ons beheerde in-app-aankoop verificatie eindpunt te gebruiken, zal ons verificatie-eindpunt (na het verifiëren van de aankoop) een JSON-object als het volgende POSTEN naar je ontgrendelingseindpunt:
Google Play-aankoop voorbeeld 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-aankoop voorbeeld 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"
}
}
Je zult vooral de userIdentifier
nodig hebben (dat is de userIdentifier die je doorgaf toen je makeInAppPurchase in je website's Javascript opriep) om te bepalen voor wie de producten ontgrendeld moeten worden en de productID
om te bepalen welk product voor de gebruiker ontgrendeld moet worden.
Nadat een in-app-aankoop - met name een abonnement - gedaan is, zul je moeten luisteren naar alle veranderingen die er in aangebracht worden. Je krijgt bijvoorbeeld een melding als een abonnement werd geannuleerd of een in-app-aankoop werd terugbetaald, zodat je dan de voordelen die de gebruiker van het abonnement krijgt kunt intrekken.
Als je klaar bent, zou je eindpunt een 200-status code moeten teruggeven. Als het geen 200-status code terugstuurt, zal onze verificatieserver proberen het verzoek te herhalen. Als de verificatieserver geen antwoord kan krijgen dat aangeeft dat de producten ontgrendeld werden, zal de app de aankoop niet bevestigen. Dit leidt ertoe dat de aankoop na 3 dagen automatisch wordt terugbetaald.
Je kunt ons tijdelijke no-op ontgrendelingseindpunt gebruiken voor testdoeleinden. Op die manier kun je ervoor zorgen dat in app-aankopen niet mislukken omdat je server een onjuiste statuscode of iets dergelijks retourneert. Hier is de URL van het ontgrendelingseindpunt die je kunt gebruiken in je instellingen voor in app-aankopen: https://webtoapp.design/apps/test_unlock_in_app_purchase/
Hier volgt een lijst van verwante pagina's over in-app-aankopen: