Gestire abbonamenti e acquisti una tantum

Potresti dover eseguire azioni di gestione sugli abbonamenti o sugli acquisti una tantum nell'ambito delle tue attività quotidiane. Ad esempio, l'assistenza clienti potrebbe dover emettere rimborsi totali o parziali per gli utenti, oppure revocare diritti in alcuni casi. Puoi gestire gli ordini da Play Console oppure, se vuoi gestirli dal tuo sistema, utilizzando l'API Google Play Developer.

Annullare gli abbonamenti

Gli utenti possono annullare un abbonamento Google Play in qualsiasi momento utilizzando il Play Store, ma devi anche offrire loro un'opzione per annullare i loro abbonamenti nella tua app e sul tuo sito web, se applicabile.

Il modo più semplice per consentire agli utenti di annullare volontariamente è tramite link diretti al Play Store, dove possono visualizzare e gestire il loro abbonamento.

Potresti anche dover attivare gli annullamenti dal tuo backend. Il metodo purchases.subscriptions.cancel ti consente di annullare l'acquisto di un abbonamento. Ad esempio, potresti utilizzare questo metodo per disattivare un servizio legacy. L'annullamento di un abbonamento non dà diritto al rimborso e l'utente continua ad avere accesso fino al termine del periodo di fatturazione corrente. L'annullamento di un abbonamento con questo metodo impedisce all'utente di ripristinarlo nel Play Store, ma gli utenti possono comunque registrarsi di nuovo tramite la tua app, se necessario.

Questa azione attiva una notifica SUBSCRIPTION_CANCELED per lo sviluppatore in tempo reale. Gestisci questi annullamenti come descritto nella sezione Annullamenti.

Rimanda fatturazione

Utilizza subscriptions.defer per estendere il periodo del diritto per un abbonamento. Durante il periodo di rinvio, l'utente rimane abbonato ai tuoi contenuti senza però ricevere addebiti per il tempo aggiuntivo. Quando rimandi la fatturazione di un abbonamento, le informazioni sullo stato vengono aggiornate di conseguenza e sono visibili nel campo expiryTime delle informazioni sullo stato degli acquisti:

  • Per gli abbonamenti ricorrenti attivi, la fatturazione differita estende la data di rinnovo successiva.
  • Per i piani prepagati, la fatturazione differita estende il tempo di scadenza.

Ecco alcuni esempi di come utilizzare la fatturazione differita:

  • Offri agli utenti l'accesso senza costi sotto forma di offerta speciale, ad esempio regalando una settimana senza costi agli abbonati esistenti per la compilazione di un sondaggio di feedback.
  • Concedi ai clienti l'accesso senza costi come azione di assistenza clienti, ad esempio dopo un'interruzione estesa che potrebbe aver influito sulla loro capacità di utilizzare il tuo servizio.

La fatturazione può essere differita di un solo giorno e fino a un anno per chiamata API. Per posticipare ulteriormente la fine del diritto, chiama di nuovo l'API prima dell'arrivo della nuova data di scadenza.

Questa azione attiva una notifica SUBSCRIPTION_DEFERRED per lo sviluppatore in tempo reale. Per scoprire come gestire questi eventi, consulta Rimandare la fatturazione di un abbonato in Informazioni sugli abbonamenti.

Esempio:

  1. Il servizio di streaming FitnessGoals vuole lanciare una promozione per incoraggiare l'allenamento regolare a febbraio.

  2. L'azienda decide di offrire un mese di servizio aggiuntivo a tutti gli abbonati che si allenano con FitnessGoals almeno 10 volte durante il mese di febbraio.

  3. Monitora i risultati della sfida e il 1° marzo chiama l'API subscriptions.defer per ogni abbonamento attivo acquistato dagli utenti che hanno affrontato la sfida a febbraio.

  4. Questi utenti possono usufruire di un mese extra di video di allenamento regolare senza costi e gli utenti dicono a tutti i loro amici come FitnessGoals li aiuta a rimanere in salute.

Emettere rimborsi e revoche

Esistono molte situazioni in cui potresti voler emettere un rimborso o revocare l'accesso a un abbonamento o a un acquisto una tantum.

Rimborso totale di un ordine in base all'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 emetti una revoca con la chiamata di rimborso per l'acquisto di un abbonamento, l'abbonamento viene interrotto immediatamente e viene attivata unaSUBSCRIPTION_REVOKED Notifica per lo sviluppatore in tempo reale. Leggi la sezione Revoca della guida alla gestione del ciclo di vita degli abbonamenti per scoprire come gestire questi eventi.

Esempio:

  1. Per celebrare l'inizio della nuova coppa del mondo, l'app di e-sport Football-Not-Soccer decide di togliere maglie virtuali senza costi per tutti gli utenti che acquistano nuove divise delle squadre nelle prime 24 ore.

  2. Football-Not-Soccer utilizza l'API orders.refund senza trasmettere un parametro di revoca per rimborsare le maglie acquistate ai vincitori.

Revocare e rimborsare un abbonamento tramite token di acquisto

Per alcuni casi d'uso, potrebbe essere necessario revocare l'accesso all'abbonamento di un utente e rimborsarlo. Fatturazione Play offre rimborsi parziali, inclusi quelli ripartiti proporzionalmente che puoi emettere utilizzando l'API subscriptionsv2.revoke. Con questo endpoint, puoi specificare revocationContext per determinare la modalità di calcolo del rimborso.

L'esecuzione di questa azione attiva una notifica SUBSCRIPTION_REVOKED per lo sviluppatore in tempo reale. La tua app dovrebbe gestire questi annullamenti come descritto nella sezione Revoche.

Esempio:

  • Acquista con il token di acquisto 1a2b3c4d5e6f7g8h9i0j
  • Applicazione con nome pacchetto com.your.app
  • Intenzione di emettere un rimborso proporzionale

Richiesta POST HTTP:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

Corpo della richiesta:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

Ripartirà proporzionalmente i rimborsi

Se devi terminare un abbonamento e rimborsare parzialmente il tempo rimanente del diritto, emetti un rimborso proporzionale. Utilizza la funzione purchases.subscriptionsv2.revoke e imposta "proratedRefund": {} come tipo di rimborso.

Esempio:

  1. Maria ha un abbonamento di 30 giorni con rinnovo automatico al piano mensile di streaming a SuperMovies. Usa felicemente il servizio da un po' di tempo. Il quindicesimo giorno del ciclo di fatturazione, Maria contatta l'assistenza clienti per comunicare che si trasferirà all'estero e non potrà più utilizzare il servizio a partire dal giorno successivo.

  2. L'assistenza clienti individua i dettagli dell'acquisto dell'abbonamento di Maria nel sistema e attiva una chiamata all'indirizzo purchases.subscriptionsv2.revoke per richiedere un rimborso proporzionale.

  3. L'assistenza clienti dice a Maria che dovrebbe ottenere circa il 50% del prezzo dell'abbonamento rimborsato e che l'accesso al servizio verrà interrotto immediatamente.