2012-07-09 9 views
6

Sto lavorando a questa app con l'acquisto in-app abilitato. Il percorso felice è tutto coperto, tutto è a posto, sto cercando di elaborare il percorso non felice.Per quanto tempo il kit di archiviazione manterrà le transazioni non completate?

Per semplificare, l'acquisto è associato a un componente lato server. Al momento dell'acquisto, quando la transazione è nello stato "Acquistato", dovrei andare sul server, che abiliterà l'account dell'utente. Quando la richiesta ritorna, quindi ripulisco alcune cose e alla fine chiamata -finishTransaction: su SKPaymentQueue.

Il percorso non felice è più o meno quando la chiamata al server non riesce per qualsiasi motivo. Rete non disponibile, timeout di rete, l'utente ha chiuso l'app subito dopo averla acquistata e appena prima che potessi effettuare la chiamata al server, la chiami tu.

I miei test nel simulatore 5.1 con un account sandbox mi mostrano che una transazione Acquistata incompleta tornerà in coda al prossimo avvio e il mio delegato verrà chiamato correttamente con esso. Ma, dopo un po ', ad esempio 5 minuti, ad esempio, boom, gone è la transazione. Considerando l'intera stabilità degli account sandbox, sono disposto a chiamarlo sull'implementazione del simulatore, ma è difficile dirlo.

Qual è il modo appropriato di affrontare questo problema?

Domanda bonus: quando la mela fa pagare qualcuno? Sembra che dovrebbe essere DOPO l'app chiamata -finishTransaction :, ma non ho potuto trovare alcuna prova di questo ovunque.

Grazie, /KRA

UPDATE: di test sul dispositivo fisico, quasi un'ora e la transazione è ancora lì. Sembra che le transazioni che scompaiono siano una cosa da simulatore.

risposta

0

Quando ho implementato gli acquisti in-app, ho rinunciato a provarlo nel simulatore. Il comportamento è troppo diverso. Provalo sul dispositivo e vedi se funziona lì.

Sono anche interessato alla tua domanda sulla ricarica, dal momento che non ne sono completamente sicuro (la mia app non è ancora stata rilasciata;)).

+0

Grazie per la risposta. Questa è praticamente la conclusione a cui sto arrivando, sandbox è completamente inaffidabile, e devi fare un salto di fede prima di andare al pungolo. Alcuni test precedenti sul dispositivo mi hanno fatto capire che sarebbero sempre tornati (e un po 'di buon senso indica anche questo). Anche i test sui dispositivi non sono esattamente affidabili, ho avuto la mia parte di disinstallazione, riavvio, reinstallazione, grazie al kit del negozio che ha dato di matto il temuto errore "Impossibile raggiungere l'appstore". – kra

+0

Devo dire che non ho avuto troppi problemi durante i test sul dispositivo. Ho seguito questa guida molto da vicino: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/. L'unica cosa che mi infastidisce a volte, è che restituisce gli id ​​dei prodotti non validi dopo aver fatto alcune ricompilazioni - quando ciò accade, devo solo cancellare e creare/eseguire nuovamente. Anche l'intera relazione codice-segno con gli ID prodotto è per me ancora magica, ad esempio non capisco perché funzioni quando si esegue un test-test ad hoc con la firma di debug. –

+0

Sì, quella parte è praticamente ok, il mio problema è stato più il passaggio da un account sandbox all'altro. Ad un certo punto, StoreKit si arrende, restituisce costantemente un errore fasullo, qualunque cosa tu faccia, e devi praticamente disinstallare/riavviare il telefono/reinstallare. Non ricordo alcun problema con la firma del codice, devi solo fare attenzione a utilizzare un profilo di provisioning specifico, non uno jolly. Finché gli articoli sono disponibili, dovrebbe funzionare indipendentemente dal certificato. – kra

Problemi correlati