2011-11-16 4 views
10

Je développe une application qui a une option d'abonnement d'achat in-app auto-renouvelable. En outre, l'application dispose d'une option «Restaurer», l'objectif est de restaurer les transactions précédentes.SKPaymentTransaction.originalTransaction.transactionReceipt est nul

Mais je suis confronté à un problème de restauration, j'obtiens le 'transactionReceipt' comme nul pour l'originalTransaction pour chaque transaction restaurée. i.e "SKPaymentTransaction.originalTransaction.transactionReceipt" est reçu comme nul. Là, par ma validation du ticket de transaction contre AppStore, ça ne se passe pas.

Est-ce que quelqu'un a le même problème?

Toutes les entrées m'aideraient grandement.

Veuillez noter que je suis en train de tester l'achat In-App dans l'environnement Sandbox.

Merci à l'avance, Vasu N

+1

Avez-vous résolu cela? –

Répondre

3

Je faisais la même question, donc ce que je l'ai fait a été testé la [transaction transactionReceipt] et Apple vérifie. Je ne sais pas si c'est la bonne façon ou non, mais au moins je le fais vérifier par Apple. C'est vraiment tout ce qui m'importe tant que je peux vérifier que ce n'est pas une transaction frauduleuse, je suis heureux.

La documentation indique que vous devriez pouvoir obtenir la réception d'orig mais je n'ai pas pu le faire, je le trouve toujours == nil.

+0

Encore plus étrange, c'est que bien que NSLog indique que SKPaymentTransaction.originalTransaction.transactionReceipt est null, pendant ma routine SKPaymentTransactionStateRestored, pour une raison bizarre, mon application parvient à ajouter le bon reçu dans [NSUserDefaults standardUserDefaults]. Je pense réellement originalTransaction n'est pas nul, mais NSLog l'affiche comme null? –

+0

Oubliez ce commentaire. J'avais un autre extrait de code que j'avais oublié, qui utilise en fait transaction.transactionReceipt, comme une sauvegarde, pour remplir les variables de réception [NSUserDefaults standardUserDefaults] pertinentes. Donc, oui, nous devrions utiliser transaction.transactionReceipt NOT originalTransaction.transactionReceipt pour notre routine d'achat de restauration. –