Abbiamo riscontrato problemi nel flusso di convalida della ricevuta in iOS.Informazioni sulla convalida della ricevuta e sull'aggiornamento della ricevuta in iOS
Ecco quello che attualmente facciamo (in fase di sviluppo):
In applicationDidFinishLaunching
e in applicationWillEnterForeground
convalidiamo la ricevuta sul lato server, se non v'è alcuna ricevuta o la ricevuta non è valido, cerchiamo di aggiornare la ricevuta e riconvalidarlo.
Qui sono alcuni problemi/domande:
Quali sono i casi in cui v'è nessuna ricevuta disponibili sul dispositivo?
Dovremmo sempre inviare una richiesta di aggiornamento ricevuta quando non c'è ricevuta?
Perché all'avvio viene visualizzata questa finestra di avviso? Capisco che questo è mostrato su una richiesta di aggiornamento della ricevuta?
- Quando dovrebbe accadere una verifica della ricevuta? Attualmente lo facciamo ogni volta che viene effettuato un acquisto per verificare l'acquisto, è questo l'uso corretto?
Penso che sia una risposta piuttosto solida, grazie. Quindi, se non siamo così severi da verificare la ricevuta all'avvio, dopo ogni acquisto sarebbe un buon punto per farlo? Inoltre, non vogliamo imbattersi nel punto 2) che hai menzionato. Quindi il flusso sarebbe: 1) L'abbonamento per l'acquisto degli utenti. 2) Verifica ricevuta 3) Verifica riuscita: pianificare una notifica locale per la data di scadenza (è un metodo sicuro?). 4) Notifica di scadenza ricevuta infornata -> Ripristina o blocca funzionalità premium. Sembra un buon modo per gestirlo? –
Dipendo davvero dal tipo di acquisto. Se non è un abbonamento una convalida subito dopo l'acquisto sembra ok per me. Se si tratta di un abbonamento è necessario conoscere la fine di esso, quindi il flusso si è presentato la sua multa, tranne per la notifica locale. Supponiamo che tu stia acquistando un abbonamento mensile auto rinnovabile, ogni mese se l'utente non interrompe il meccanismo di rinnovo automatico, l'abbonamento si rinnova automaticamente. Ho cercato di capire quando questo accade senza successo, probabilmente pochi giorni prima della data di scadenza reale. – Andrea
Automaticamente significa che non è necessario fare nulla. Salvo localmente (portachiavi) il giorno della scadenza, quando sono intorno a quella data invierei di nuovo la ricevuta per la convalida, fino a quando non è scaduta o aggiornata. Se la convalida vede un nuovo mese, aggiorno la data, se la ricevuta è scaduta, vorrei presentare un avviso come "il tuo abbonamento sembra essere scaduto $ fine data $ vorresti provare un aggiornamento"? È possibile inviare la ricevuta al server di convalida tutte le volte che si desidera senza chiedere all'utente, ma non è possibile aggiornare o ripristinare senza chiedere all'utente. – Andrea