2011-04-06 17 views
7

Sto implementando gli abbonamenti auto rinnovabili nella mia app e mi chiedo se c'è un modo per simulare quando un periodo di abbonamento si esaurisce e viene creata una nuova transazione.Come testare gli abbonamenti rinnovabili (App Store)

L'app è collegata a un servizio online che tiene sempre traccia degli utenti e se hanno "accesso premium" o meno. Come capisco, ci sono due modi per rilevare quando viene effettuata una transazione.

  1. L'applicazione è lanciata e updatedTransactions: è chiamato a mio PaymentObserver come SKPaymentTransactionStateRestored. Quindi, dall'app, inviamo queste informazioni al server che aggiorna l'abbonamento.

  2. Controllo regolarmente l'API di App Store e confronta "l'ultima ricevuta" con quella nel mio database. Se ce n'è uno nuovo, è stata effettuata una transazione ed estendo l'abbonamento.

Ad ogni modo, ho bisogno di simulare che il periodo di sottoscrizione si esaurisce e una nuova transazione è fatta da App Store. Come faccio a fare questo?

risposta

2

Sei sicuro di aver bisogno di simulare questo? Penso che scoprirai che nella sandbox le lunghezze degli abbonamenti sono molto brevi, quindi tutto ciò che devi fare è prendere un caffè o qualcosa del genere e scadranno e quindi potrai testare cosa succede.

la quantità di tempo varia in base alla durata dell'abbonamento, ma penso che l'abbonamento di 7 giorni scada in pochi minuti nella sandbox.

+0

Ah, non l'avevo notato, grazie! – oskob

+0

a destra, un abbonamento di 7 giorni dura * 3 minuti * nell'env sandbox. – yonel

+2

Un avvertimento: gli abbonamenti si rinnoveranno automaticamente solo 5 volte. Dopodiché, se acquisti, non verranno più rinnovati automaticamente. Devi creare un nuovo utente di prova per farlo! – Jarson

3

L'ambiente sandbox simula automaticamente il rinnovo dell'abbonamento. Gli abbonamenti di 1 anno si rinnoveranno ogni 1 ora. Gli abbonamenti di 1 mese sembrano rinnovarsi ogni 5-6 minuti.

Ogni abbonamento sembra rinnovare 5 volte. A quel punto, l'abbonamento è annullato. Ogni rinnovo attiva una transazione ripristinata inviata all'app client.

Questo è tutto basato sulla mia esperienza. Non riesco a trovare alcuna documentazione ufficiale per questo da Apple.

+2

Qui tutto è documentato (è richiesto l'accesso allo sviluppatore): http://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf – TomSwift

0

In realtà il rinnovo non sembra funzionare in Sandbox. Sembra che tu sia sempre nel processo di acquisto. Il rinnovo automatico dovrebbe essere "oscurato", in quanto AppStore lo ricondurrà automaticamente fino a quando l'utente non lo "annullerà" esplicitamente. Nella Sandbox, ogni 5 minuti devi acquistare di nuovo.

Infine, c'è un errore nella sezione "Hai già acquistato quell'app in-app" in quanto si suppone che invii una transazione corretta ma invia solo un codice di errore.

0

In realtà, il rinnovo in Sandbox è molto imprevedibile. A volte funziona come descritto, a volte funziona in modo molto diverso, a volte non funziona affatto (dicendo che come sviluppatore con un'app in negozio utilizza effettivamente gli acquisti in-app con abbonamenti autorinnovabili, apparentemente con successo nella produzione). Al momento ho un abbonamento mensile nella sandbox che ha una data di acquisto originale da 27 ore indietro e una data di scadenza di tre ore indietro. Mi chiedo davvero come si dovrebbe verificare questo se le risposte sono così assurde.

Problemi correlati