Hai appena implementato la fatturazione Google Play nella tua app per Android o PWA e i tuoi utenti possono acquistare i tuoi prodotti digitali. Ora è il momento di implementare alcuni componenti chiave di Google Play Billing nel server di backend.
API Google Play Developer
L'API Google Play Developer è composta da due componenti: l'API Subscriptions and In-app Purchases e l'API Publishing. L'API Abbonamenti e acquisti in-app è costituita dalle seguenti risorse REST per aiutarti a gestire prodotti e acquisti:
inappproducts: gestione del catalogo di abbonamenti e prodotti in-apppurchases.products: stato dell'acquisto di prodotti in-apppurchases.subscriptions: stato di acquisto e gestione degli abbonamenti
Puoi utilizzare l'API Google Play Developer direttamente come API REST oppure le librerie client possono aiutarti a iniziare rapidamente lo sviluppo. Le librerie client per tutti i linguaggi supportati sono disponibili qui. Segui la guida introduttiva per l'API Google Play Developer per collegare il tuo progetto API e configurare i client di accesso all'API.
Elenca tutti i prodotti in-app
Quando esegui query per i dettagli dei prodotti disponibili nel frontend (nella tua app per Android o PWA), devi specificare l'elenco degli ID prodotto. Puoi implementarlo nel server di backend con il metodo inappproducts.list dell'API Play Developer, che elenca tutti gli abbonamenti e i prodotti in-app che hai creato in Play Console. Assicurati di controllare il status di ogni prodotto e di inviare al client dell'app solo quelli active.
Verificare gli acquisti prima di concedere i diritti
Una parte fondamentale dell'implementazione di Google Play Billing nella tua app per Android o PWA è la verifica degli acquisti prima di concedere i diritti all'utente. Quando concedi un diritto a un utente, gli dai accesso ai vantaggi o ai contenuti associati all'articolo che ha acquistato. Poiché questa operazione richiede la gestione di dati sensibili, deve essere gestita sul server di backend.
L'API Google Play Developer fornisce i metodi purchases.products:get e purchases.subscriptions:get. Utilizzali con i token di acquisto recuperati in-app o memorizzati sul server di backend per verificare che un acquisto sia legittimo. Devi tenere traccia dei token di acquisto sul server di backend per ulteriori acquisti e per la verifica dei diritti degli utenti. Per ulteriori dettagli sui passaggi da seguire, consulta la documentazione di Google Play Billing sulla verifica degli acquisti.
Acquisti in-app
Dopo aver ricevuto il token di acquisto dal client, il backend deve chiamare l'API Google Play Developer e verificare che non sia già stato utilizzato. Il campo purchaseState di un acquisto valido è 1.
Se l'acquisto è valido, il client deve riconoscerlo e concedere il diritto dopo aver ricevuto la risposta dal server.
Acquisti di abbonamenti
Analogamente alla verifica degli acquisti in-app, il server di backend deve chiamare l'API Google Play Developer dopo aver ricevuto il token di acquisto dal client e verificare che l'abbonamento sia ancora valido.
Il cliente deve concedere il diritto se il campo expiryTimeMillis dell'abbonamento è maggiore dell'ora attuale.
Questo è anche un buon momento per controllare il campo linkedPurchaseToken e aggiornare il database degli abbonamenti in modo appropriato per gestire upgrade, downgrade e altri flussi di abbonamento. Il resto di questa pagina fornirà ulteriori dettagli.
Mantenere aggiornato lo stato del backend
Se la tua app è disponibile su piattaforme diverse (che potrebbero utilizzare anche metodi di pagamento diversi), tenere traccia degli utenti e dei loro acquisti sul server di backend garantirà che gli utenti possano accedere agli stessi diritti su tutti i dispositivi e le piattaforme su cui utilizzano la tua app.
Può trattarsi semplicemente di un database in cui tieni traccia dei tuoi utenti e dei loro diritti attuali. Poi, man mano che effettuano acquisti o consumano i loro diritti, lo aggiorni di conseguenza. La volta successiva che accede alla tua app da un'altra piattaforma, puoi recuperare i suoi diritti corretti dal backend in modo che l'utente possa accedervi.
Gestire le modifiche dello stato dell'abbonamento
Un abbonamento può subire varie modifiche di stato durante il suo ciclo di vita e devi assicurarti di rispondere di conseguenza a ciascuna. Scopri di più sulla gestione del ciclo di vita degli abbonamenti per mantenere sempre aggiornato il backend.
Subscription. linkedPurchaseToken
Come indicato nella documentazione sugli abbonamenti, ogni nuovo flusso di acquisto su Google Play (acquisto iniziale, upgrade o downgrade) genera un nuovo token di acquisto. Il campo linkedPurchaseToken consente di riconoscere quando più token di acquisto appartengono allo stesso abbonamento.
Ogni volta che verifichi un abbonamento, il backend deve controllare se il campo linkedPurchaseToken è impostato. In questo caso, il valore nel campo rappresenta il token precedente che è stato sostituito. Devi contrassegnare immediatamente il token precedente come non valido, in modo che gli utenti non possano utilizzarlo per accedere ai tuoi contenuti.
Ad esempio, quando il backend riceve il token di acquisto A per l'acquisto iniziale, con un campo linkedPurchaseToken vuoto, attiva il diritto per quel token. In un secondo momento, quando il backend riceve il nuovo token di acquisto B dopo l'upgrade, controlla il campo linkedPurchaseToken, vede che è impostato su A e disattiva il diritto per il token di acquisto A.

Per una discussione dettagliata sull'implementazione di linkedPurchaseToken, visita Implementazione linkedPurchaseToken corretta per evitare abbonamenti duplicati.
Notifiche in tempo reale per lo sviluppatore
Il metodo purchases.subscriptions:get dell'API Google Play Developer è la fonte di riferimento per la gestione degli abbonamenti degli utenti. Se gestisci lo stato dei tuoi abbonati su un server di backend sicuro, devi mantenerlo sincronizzato con i server di Google. Tuttavia, il polling frequente dell'API Google Play Developer può comportare il raggiungimento delle limitazioni della quota API e ritardi nella ricezione delle notifiche per azioni importanti degli utenti (come l'annullamento o l'upgrade di un abbonamento).
Le notifiche in tempo reale per lo sviluppatore (RTDN) sono una funzionalità di Google Play Billing che invia al tuo server una notifica istantanea quando lo stato del diritto di un abbonato cambia (ad es. abbonamento acquistato, abbonamento annullato, abbonamento in sospensione). Con RTDN, puoi mantenere sincronizzato il database degli abbonati rispondendo solo a queste notifiche, anziché chiamare regolarmente l'API Google Play Developer.
Il tuo server di backend riceverà un SubscriptionNotification per gli eventi che influiscono sullo stato dell'abbonamento, come rinnovi e annullamenti. Dopodiché, chiama l'API Google Play Developer con il token di acquisto nella notifica per ottenere lo stato completo e aggiornare il tuo stato del backend.
Puoi configurare RTDN per la tua app seguendo queste istruzioni. Poi devi configurare il server di backend per eliminare questi messaggi.
Per saperne di più, consulta il riferimento RTDN completo.