Potresti dover eseguire azioni di gestione su abbonamenti o acquisti una tantum nell'ambito della normale attività quotidiana. Ad esempio, l'assistenza clienti potrebbe dover emettere rimborsi totali o parziali per gli utenti oppure, in alcuni casi, potrebbe essere necessario revocare i diritti. Puoi gestire gli ordini da Play Console oppure, se preferisci, puoi utilizzare l'API Google Play Developer per gestirli dal tuo sistema.
Annullare gli abbonamenti
Gli annullamenti degli abbonamenti possono essere avviati da utenti o sviluppatori.
Annullamenti avviati dall'utente
Gli utenti possono annullare un abbonamento a Google Play in qualsiasi momento utilizzando il Play Store. Se applicabile, devi anche fornire un'opzione per consentire agli utenti di annullare i loro abbonamenti nella tua app e sul tuo sito web.
Il modo più semplice per consentire agli utenti di annullare l'abbonamento volontariamente è fornire nella tua app link diretti al Play Store, dove possono visualizzare e gestire i propri abbonamenti.
Annullamenti avviati dallo sviluppatore
In qualità di sviluppatore, potresti anche dover attivare le cancellazioni dal tuo backend.
L'API purchases.subscriptions.cancel
consente di annullare l'acquisto di un abbonamento.
Ad esempio, puoi utilizzare questo metodo per disattivare un servizio precedente.
L'annullamento di un abbonamento non comporta alcun rimborso e l'utente mantiene l'accesso
fino alla fine del periodo di fatturazione corrente.
Questo metodo ti consente di specificare i seguenti tipi di annullamenti nel parametro del corpo della richiesta cancellationType
:
USER_REQUESTED_STOP_RENEWALS: annulla l'abbonamento come se gli utenti avessero annullato l'abbonamento dal Play Store. Gli eventuali pagamenti rateizzati continueranno per il resto del periodo di impegno corrente. Dal Play Store, gli utenti possono ripristinare l'abbonamento prima della scadenza o riabbonarsi dopo la scadenza, se questa opzione è attivata per il piano base.
DEVELOPER_REQUESTED_STOP_PAYMENTS: annulla l'abbonamento e impedisce ulteriori pagamenti. Gli utenti non possono ripristinare o riabbonarsi dall'app Play Store, ma puoi consentire loro di riabbonarsi all'interno della tua app.
Consentire agli utenti di ripristinare gli abbonamenti non scaduti
In alcuni casi, potresti trovare utile consentire agli utenti di ripristinare gli abbonamenti non scaduti dal Centro abbonamenti Google Play dopo aver attivato l'annullamento come sviluppatore. Ad esempio, potresti fornire un flusso di annullamento in-app personalizzato. In base alla tua logica di business, puoi decidere quali annullamenti attivati dal tuo backend possono essere ripristinati dagli utenti.
Per indicare che un utente può ripristinare l'annullamento, invia una richiesta POST
all'API purchases.subscriptions.cancel
e imposta il parametro di richiesta cancellationType
sul valore USER_REQUESTED_STOP_RENEWAL
.
Esempio:
- Token di acquisto dell'abbonamento
1a2b3c4d5e6f7g8h9i0j
- Nome del pacchetto dell'applicazione
com.your.app
- ID abbonamento
your-subscription-product
Richiesta HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
Corpo della richiesta:
{
"cancellationType": "USER_REQUESTED_STOP_RENEWAL"
}
Consentire agli utenti di riabbonarsi agli abbonamenti scaduti
Per consentire il rinnovo di un abbonamento scaduto, devi attivare l'opzione Riabbonati nel piano base dell'abbonamento e poi annullare l'abbonamento impostando il parametro cancellationType
sul valore USER_REQUESTED_STOP_RENEWAL
.
Consentire agli utenti di riabbonarsi solo nella tua applicazione
Se hai impostato il parametro cancellationType
su DEVELOPER_REQUESTED_STOP
_PAYMENTS
o non lo hai impostato, gli utenti non possono recuperare il proprio abbonamento dal Centro abbonamenti di Google Play.cancellationType
Tuttavia, se necessario, gli utenti possono registrarsi di nuovo per l'abbonamento tramite la tua app.
Questa azione attiva una SUBSCRIPTION_CANCELED
notifica in tempo reale per lo sviluppatore. Gestisci questi annullamenti come descritto in
Annullamenti.
Rimandare la fatturazione
Utilizza subscriptions.defer
per estendere il periodo di diritto di un abbonamento. Durante il periodo di differimento,
l'utente rimane abbonato ai tuoi contenuti, ma non gli viene addebitato il periodo aggiuntivo. Quando differisci la fatturazione di un abbonamento, le informazioni sullo stato vengono aggiornate di conseguenza e vengono visualizzate nel campo expiryTime
delle informazioni sullo stato dell'acquisto:
- Per gli abbonamenti ricorrenti attivi, la fatturazione differita prolunga la data del prossimo rinnovo.
- Per i piani prepagati, la fatturazione differita prolunga la data di scadenza.
Ecco alcuni esempi di come utilizzare la fatturazione differita:
- Offrire agli utenti l'accesso senza costi come offerta speciale, ad esempio una settimana senza costi agli abbonati esistenti per la compilazione di un sondaggio di feedback.
- Offrire ai clienti l'accesso senza costi come azione di assistenza clienti, ad esempio dopo un'interruzione prolungata che potrebbe aver influito sulla loro capacità di utilizzare il tuo servizio.
La fatturazione può essere differita da un minimo di un giorno a un massimo di un anno per chiamata API. Per posticipare ulteriormente la fine del diritto, chiama di nuovo l'API prima della nuova data di scadenza.
Questa azione attiva una SUBSCRIPTION_DEFERRED
notifica in tempo reale per lo sviluppatore. Per scoprire come gestire questi eventi, consulta la sezione Rinviare la fatturazione per un abbonato in Informazioni sugli abbonamenti.
Esempio:
Il servizio di streaming FitnessGoals vuole lanciare una promozione per stimolare l'esercizio fisico regolare a febbraio.
Decide di offrire un mese aggiuntivo di servizio a tutti gli abbonati che fanno esercizio con FitnessGoals almeno 10 volte durante il mese di Febbraio.
Monitorano i risultati della sfida e il 1° marzo chiamano l'API
subscriptions.defer
per ogni acquisto di abbonamento attivo appartenente agli utenti che hanno superato la sfida a febbraio.Questi utenti usufruiscono di un mese intero extra di video di esercizi regolari senza costi e raccontano a tutti i loro amici in che modo FitnessGoals li aiuta a mantenersi in salute.
Emettere rimborsi e revoca
Esistono molte situazioni in cui potresti voler emettere un rimborso o revocare l'accesso a un abbonamento o a un acquisto una tantum.
Rimborsare completamente un ordine tramite l'ID ordine
Con l'API orders.refund
, puoi emettere rimborsi totali per qualsiasi ordine entro tre anni dall'acquisto.
Il metodo orders.refund
riceve un parametro di revoca che indica se l'accesso deve essere revocato o meno, oltre a fornire il rimborso.
Se richiedi una revoca con la chiamata di rimborso per l'acquisto dell'abbonamento, l'abbonamento viene interrotto immediatamente e viene attivata unaSUBSCRIPTION_REVOKED
notifica in tempo reale per lo sviluppatore. Per scoprire come gestire questi eventi, consulta la sezione Revocazioni della guida alla gestione del ciclo di vita degli abbonamenti.
Esempio:
Per celebrare l'inizio della nuova Coppa del Mondo, l'app di e-sport Football-Not-Soccer decide di mettere in palio maglie virtuali senza costi per tutti gli utenti che acquistano nuovi kit delle squadre nelle prime 24 ore.
Football-Not-Soccer utilizza l'API
orders.refund
senza passare un parametro di revoca per rimborsare gli acquisti delle maglie ai vincitori.
Revocare e rimborsare un abbonamento tramite token di acquisto
Per determinati casi d'uso, potresti dover revocare l'accesso all'abbonamento di un utente
e fornire un rimborso. Fatturazione Google Play offre metodi di revoca, tra cui rimborsi completi e rimborsi proporzionali tramite l'API subscriptionsv2.revoke
. Con questo endpoint, puoi specificare revocationContext
per determinare il modo in cui viene calcolato il rimborso.
Questa azione attiva una SUBSCRIPTION_REVOKED
notifica in tempo reale per lo sviluppatore. L'app deve gestire questi annullamenti come descritto in
Revocazioni.
Esempio:
- Acquista con il token di acquisto
1a2b3c4d5e6f7g8h9i0j
- Applicazione con il nome del pacchetto
com.your.app
- Intento di emettere un rimborso proporzionale
Richiesta HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
Corpo della richiesta:
{
"revocationContext": {
"proratedRefund": {}
}
}
Rimborsi totali
Se devi annullare un abbonamento e rimborsare l'intero importo del
periodo di fatturazione in corso, esegui un rimborso totale. Utilizza la funzione
purchases.subscriptionsv2.revoke
e imposta "fullRefund": {}
come tipo di rimborso.
Esempio:
Maria ha un abbonamento di 30 giorni con rinnovo automatico al piano mensile di streaming di SuperMovies. Maria ha riscontrato alcuni problemi tecnici che le impediscono di accedere ai contenuti. Contatta l'assistenza clienti il terzo giorno del suo ciclo di fatturazione affermando di non aver mai ottenuto l'accesso all'abbonamento.
L'assistenza clienti individua i dettagli di acquisto dell'abbonamento di Maria nel suo sistema e avvia una chiamata a
purchases.subscriptionsv2.revoke
per richiedere un rimborso totale.L'assistenza clienti dice a Maria che dovrebbe ricevere il 100% del prezzo dell'abbonamento rimborsato e che non ha più un abbonamento al piano.
Rimborsi proporzionali
Se devi terminare un abbonamento e rimborsare parzialmente il tempo rimanente del diritto, esegui un rimborso proporzionale. Utilizza la funzione
purchases.subscriptionsv2.revoke
e imposta "proratedRefund": {}
come tipo di rimborso.
Esempio:
Maria ha un abbonamento di 30 giorni con rinnovo automatico al piano mensile di streaming di SuperMovies. Utilizza il servizio con soddisfazione da un po' di tempo. Maria contatta l'assistenza clienti il giorno 15 del ciclo di fatturazione per comunicare che si sta trasferendo all'estero e che non potrà più utilizzare il servizio a partire dal giorno successivo.
L'assistenza clienti individua i dettagli dell'acquisto dell'abbonamento di Maria nel suo sistema e attiva una chiamata a
purchases.subscriptionsv2.revoke
per richiedere un rimborso proporzionale.L'assistenza clienti comunica a Maria che dovrebbe ricevere circa il 50% del prezzo dell'abbonamento rimborsato e che l'accesso al servizio è stato interrotto immediatamente.