2011-11-16 12 views
10

Sto sviluppando un'applicazione con un'opzione di abbonamenti di acquisto in-app Auto-rinnovabile. Anche l'app ha un'opzione 'Ripristina', lo scopo è quello di ripristinare le transazioni precedenti.SKPaymentTransaction.originalTransaction.transactionReceipt è nil

Ma sto affrontando un problema nel ripristino, sto ricevendo il 'transactionReceipt' come zero per il Transport originale per ogni transazione ripristinata. "SKPaymentTransaction.originalTransaction.transactionReceipt" è ricevuto come zero. Lì con la mia convalida della ricevuta della transazione contro AppStore non sta accadendo.

Qualcuno si trova di fronte allo stesso problema?

Qualsiasi input mi sarebbe di grande aiuto.

Si prega di notare che sto testando l'acquisto in-app in ambiente Sandbox.

Grazie in anticipo, Vasu N

+1

Hai risolto questo? –

risposta

3

ho avuto lo stesso problema, quindi quello che ho fatto è stato di prova il [transazione transactionReceipt] e Apple verifica. Non sono sicuro se questo è il modo corretto o meno, ma almeno lo sto verificando da Apple. Questo è davvero tutto ciò che mi interessa finché posso verificare che non è una transazione fraudolenta, sono felice.

La documentazione dice che dovresti essere in grado di ricevere ricevuta orig ma non sono stato in grado di farlo, lo trovo sempre == nil.

+0

Ancora più strano è che, sebbene NSLog dichiari che SKPaymentTransaction.originalTransaction.transactionReceipt è nullo, durante la mia routine SKPaymentTransactionStateRestored, per qualche strano motivo, la mia app riesce ad aggiungere la ricevuta corretta in [NSUserDefaults standardUserDefaults]. In realtà penso che originalTransaction non sia nullo, ma NSLog lo visualizza come null? –

+0

Dimentica quel commento. Avevo un altro frammento di codice di cui mi ero dimenticato, che utilizza effettivamente transaction.transactionReceipt, come back-up, per popolare le variabili di ricevuta [NSUserDefaults standardUserDefaults] rilevanti. Quindi, sì, dovremmo usare transaction.transactionReceipt NOT originalTransaction.transactionReceipt per la nostra routine di acquisti di ripristino. –