In base alla documentazione di sottoscrizione in-app non è disponibile alcun meccanismo per rilevare quando l'utente annulla la sottoscrizione. Dal momento che non è cancellato immediatamente. Aspetta invece la fine del ciclo per la scadenza dell'abbonamento.
Estratto dal documento (source)
Quando l'utente annulla un abbonamento, Google Play non offre un rimborso per il ciclo di fatturazione corrente. Invece, consente all'utente di di avere accesso all'abbonamento annullato fino alla fine del ciclo di fatturazione corrente, momento in cui termina l'abbonamento. Ad esempio, se un utente acquista un abbonamento mensile e lo annulla sul il 15 ° giorno del ciclo, Google Play prenderà in considerazione la sottoscrizione valido fino alla fine del 30 ° giorno (o altro giorno, a seconda del mese )
L'app non riceverà alcun tipo di notifica quando l'utente annulla l'abbonamento.
Il comportamento dell'abbonamento è quando si interroga l'inventario nell'app. L'SKU verrà restituito se l'abbonamento è valido. Alla scadenza dell'abbonamento, lo SKU non verrà restituito quando si esegue una query sull'inventario.
Secondo la documentazione in questo link
E 'bene eseguire una query lotto ogni volta abbonamento si avvicina alla fine
Estratto dal documento (source):
query per lo stato della sottoscrizione solo alla scadenza: una volta che il server ha recuperato la data di scadenza dei token di abbonamento, è necessario che non interroghi i server di Google Play per l'abbonamento stato di nuovo fino a quando l'abbonamento ha raggiunto o ha superato la data di scadenza. In genere, i server potrebbero eseguire una query lotto ogni giorno per controllare lo stato degli abbonamenti in scadenza, quindi aggiornare il database
Il seguente server API ti permette di interrogare lo stato di sottoscrizione:
https://developers.google.com/android-publisher/api-ref/purchases/subscriptions#resource-representations
Le variabili autoRenewing
e cancelReason
ti informano se l'abbonamento è stato annullato.
Utilizzando l'API di cui sopra si sarebbe in grado di implementare un sistema in cui la scadenza dell'abbonamento in scadenza può essere interrogata per lo stato e quindi determinare se sono stati annullati o meno.
I dettagli completi per la cancellazione della sottoscrizione sono disponibili in questo link.
Nota:
documentazione afferma che si dovrebbe continuare a fornire il contenuto fino a quando l'utente ha di sottoscrizione valido. Se avete intenzione di negare l'accesso al contenuto se qualcuno aveva disdetto l'abbonamento andrà contro la privacy di Google
Estratto dal documento (source)
Importante: In tutti i casi, è necessario continuare a offrire i contenuti che i tuoi abbonati hanno acquistato tramite i loro abbonamenti, come lungo qualsiasi utente è in grado di accedervi. Cioè, non devi rimuovere alcun contenuto mentre un utente ha ancora una sottoscrizione attiva ad esso, anche se quell'abbonamento terminerà alla fine del ciclo di fatturazione corrente .
Grazie Anirudha. Se un utente ha una sottoscrizione che si rinnova una volta all'anno, ma per la quale paga mensilmente, dovremmo interrogare l'API per l'abbonamento scaduto mensilmente alla sua data di fatturazione? –
Non penso che Google Play ti consenta di pagare mensilmente per l'abbonamento annuale. Se lo fa, puoi fornire il link ad esso? –
Penso che tu abbia ragione, appena visto questo: "Per gli abbonamenti mensili e annuali, i cicli di fatturazione corrisponderanno sempre ai cicli di abbonamento, in base alla data di acquisto." su https://developer.android.com/google/play/billing/billing_subscriptions.html –