Postato su 2. febbraio 2022 da Jan Bunk
Impostare il tuo endpoint di verifica è un po' complicato, quindi purtroppo non abbiamo la capacità di scrivere una guida dettagliata passo dopo passo su come farlo. Tuttavia ti indicheremo i passi principali in questa guida.
L'applicazione invierà un oggetto JSON come il seguente al tuo endpoint di verifica:
Google Play acquisto esempio 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"
}
}
}
Esempio di acquisto su 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"
}
}
Poi, in base al source
, hai bisogno di verifica l'acquisto con Google Play (if source==google_play
) o con l'App Store (if source==app_store
).
In seguito, se l'acquisto è valido, dovresti concedere all'utente l'accesso al prodotto acquistato. Maggiori informazioni sullo sblocco dei prodotti acquistati
Infine, restituisce un codice di stato 200 e questo JSON, così l'app può confermare l'acquisto:
{
"complete_purchase": true
}
Oppure, se l'acquisto non è valido, restituisce un codice di stato 200 e questo JSON, nel qual caso l'applicazione non confermerà l'acquisto:
{
"complete_purchase": false
}
Se non restituisce un codice di stato 200, l'applicazione proverà a ripetere la richiesta. Se l'applicazione non è in grado di ottenere una risposta che indichi che l'acquisto è stato verificato, non confermerà l'acquisto. Questo porterà al rimborso automatico dell'acquisto in 3 giorni (se era effettivamente valido).
Ecco una lista di pagine correlate sugli acquisti in app: