updatedTransactions is not called on restore.

Many our customer are facing a problem on restore process.


- They bought several in-app purchase products.

- In some case they need to restore products to download contents from Apple server.

- We're of course offering restore function in which we use SKPaymentQueue restoreCompletedTransactions.

- Restore transaction is finished immediately after customers push the restore button.

- From my investigation, paymentQueueRestoreCompletedTransactionsFinished is called, but updatedTransactions is not called.

- Actually there is no transaction in the queue when paymentQueueRestoreCompletedTransactionsFinished is called although they have bought products and have a valid receipt.

- So there is no transaction to restore, and updatedTransactions is not called. I cannot get any SKDownload objects. That's why we cannot download any contents from Apple server.

I spent many days to find a solution in the web, and found many developers had a similar problem with the sandbox account. But I cannot find any real (live) case.

Is there people who has a similar problem in the real case?


You wrote "Actually there is no transaction in the queue when paymentQueueRestoreCompletedTransactionsFinished is called although they have bought products and have a valid receipt."


two comments -

1) just for clarity, can you confirm that a) you look for and respond to all transactions that appears in updatedTransactions rather than look in the queue when you get a call to paymentQueueRestoreCompletedTransactionsFinished and b) you handle multiple transactions that might get delivered in one call to updatedTransactions.


2) are you certain that your users, who tell you "they have bought products" (but on a different device or app install), have actually bought the products under the same iTunes Account they used to install the current version of the app and were logged into when they executed the restoreCompletedTransactions? If they downloaded and installed the app under a diffferent iTunes Account (e.g. their spouse) or if they were logged into a different iTunes Account (e.g. their neighbor's) when they did the restore then iTunes will not find "their" earlier purchase. A classic example is the neighbor who downloads the app under their iTunes Account and then logs into your account to restore your IAPs to their device - that won't work.

Hi PBK,


(1-a, b) I'm sure that all the transactions are handled in updatedTransactions, and in that case all the transactions are finalized by finishTransaction.

But the current issue is that paymentQueueRestoreCompletedTransactionsFinished is called but updatedTransactions is NOT called. I think this is because there might be no transaction to be handeled with updatedTransactions for Apple Appstore server. But this is weird because the user actually has in-app purchase products.


(2)

I cannot say I'm 100% sure, but I think this is not my case.. Our customers bought IAP products under their Apple ID and they try to restore with the same ID.

updatedTransactions is not called on restore.
 
 
Q