I prodotti acquistati una tantum hanno un ciclo di vita più semplice rispetto ai prodotti in abbonamento, ma esistono comunque diversi stati ed eventi di transizione che il backend deve essere in grado di gestire correttamente.
Nuovi acquisti di prodotti una tantum
Dopo che l'utente ha completato il flusso di fatturazione, la tua app può visualizzare le informazioni sul nuovo acquisto in uno dei seguenti modi:
- Configura
Real-time developer notifications
e attivaGet all notifications for subscriptions and one-time products
per ricevere aggiornamenti sullo stato degli acquisti. - Implementa l'interfaccia
PurchasesUpdatedListener
daBillingClient
per ricevere automaticamente gli aggiornamenti relativi agli acquisti. - Richiama il metodo
BillingClient.queryPurchasesAsync()
.
Dopo aver ricevuto il nuovo acquisto, utilizza il metodo getPurchaseState
o purchases.products.get in Play Developer API
per determinare lo stato di pagamento del nuovo acquisto.
Notifiche in tempo reale per lo sviluppatore
Quando un utente acquista o annulla l'acquisto di un prodotto una tantum,
Google Play invia un
messaggio
OneTimeProductNotification
. Per aggiornare lo stato di acquisto del backend, utilizza il token di acquisto fornito nell'oggetto OneTimeProductNotification
per chiamare il metodo purchases.products.get
. Questo metodo fornisce lo stato di acquisto e di consumo più recente per un token di acquisto.
Devi gestire gli RTDN relativi alle transazioni nel tuo backend sicuro.
Gestire le transazioni completate
Quando un utente completa un acquisto una tantum di un prodotto, Google Play invia un
messaggio OneTimeProductNotification
di tipo ONE_TIME_PRODUCT_PURCHASED
.
Quando ricevi questa RTDN, elabora l'acquisto come descritto in Elaborare
acquisti una tantum di prodotti nel tuo backend.
Gestire le transazioni annullate
Quando l'acquisto di un prodotto una tantum viene annullato, Google Play invia un messaggio OneTimeProductNotification
di tipo ONE_TIME_PRODUCT_CANCELED
se hai configurato la ricezione di notifiche in tempo reale per lo sviluppatore.
Ciò può verificarsi, ad esempio, se l'utente non completa il pagamento entro il periodo di tempo richiesto o se l'acquisto viene revocato dallo sviluppatore o da una richiesta del cliente. Quando il tuo server di backend riceve questa notifica, chiama il metodo purchases.products.get
per ottenere lo stato di acquisto più recente, quindi aggiorna il backend di conseguenza, inclusi i diritti dell'utente.
Se l'acquisto di un prodotto una tantum nello stato Purchased
viene rimborsato, ti verrà comunicato anche tramite l'API Voided Purchases.
Elabora gli acquisti una tantum dei prodotti nel tuo backend
Se hai rilevato un nuovo acquisto tramite un RTDN ONE_TIME_PRODUCT_PURCHASED
o ne sei stato informato in-app tramite
PurchasesUpdatedListener
o recuperi manualmente gli acquisti nel
metodo onResume()
della tua app, devi elaborare il nuovo acquisto. Ti consigliamo di gestire l'elaborazione degli acquisti nel backend per una maggiore sicurezza.
Per elaborare un nuovo acquisto una tantum:
- Esegui una query sull'endpoint
purchases.products.get
per ottenere lo stato più recente di acquisto del prodotto una tantum. Per chiamare questo metodo per un acquisto, devi avere il valorepurchaseToken
corrispondente dalla tua app o dall'RTDNONE_TIME_PRODUCT_PURCHASED
. - Chiama il numero
getPurchaseState()
e assicurati che lo stato di acquisto siaPURCHASED
. - Verifica l'acquisto.
- Concedere all'utente l'accesso ai contenuti. L'account utente associato all'acquisto può essere identificato con il campo
obfuscatedExternalAccountId
dapurchases.products.get
, se è stato impostato utilizzandosetObfuscatedAccountId()
al momento dell'acquisto.- Per gli acquisti di prodotti non consumabili, conferma la consegna dei contenuti
chiamando il metodo
purchases.products.acknowledge
. Assicurati che l'acquisto non sia stato confermato in precedenza controllando il campoacknowledgementState
. - Se il prodotto è utilizzabile, contrassegna l'articolo come consumato chiamando il metodo
purchases.products.consume
in modo che l'utente possa acquistarlo di nuovo dopo averlo consumato. Anche questo metodo conferma l'acquisto.
- Per gli acquisti di prodotti non consumabili, conferma la consegna dei contenuti
chiamando il metodo
Nella Libreria Fatturazione Play sono disponibili anche metodi di conferma degli acquisti e di utilizzo che ti consentono di elaborare gli acquisti dalla tua app, ma ti consigliamo di gestire l'elaborazione nel tuo backend se ne hai uno per un'implementazione più sicura.