Is receipt refresh needed when restore purchase is available?

If no receipt is found, it is normally recommended to issue a refresh request. However, it seems to me that a cleaner UI is offered by simply letting the user do "restore purchase".


I am wondering if there is some scenario in which a refresh request is needed?


EDIT: I am working with a non-consumable, non-subscription IAP.

Replies

>I am wondering if there is some scenario in which a refresh request is needed?


1) Non-renewing subscriptions. They don't respond to restoreCompletedTransactions.

2) for autorenewable transactions you run into the following N-squared problem:

"Restoring multiple times creates multiple restored transactions for each completed transaction."

So if you have 12 monthly renewals and you restoreCompletedTransactions 3 times then the next time you restoreCompletedTransactions you get either 36 or, perhaps (I'm not sure of the process or the combinatorial math), 96 transactions.

Thanks. Is there any scenario for a non-consumable (non-subscription) product?

If you are verifying receipts its cleaner to just get the receipt.

I appreciate the feedback, but that's the part I don't understand. Since a refresh request requires the user to login, I'd rather have the login be in response to tapping "Restore purchase" button, rather than at a random time when the app notices there is no receipt.


The chief scenario I am imagining is when a user restores a backup copy of the app from iTunes and has no receipt. In that case, it is perfectly appropriate to expect them to do restore purchase, don't you think?

> in response to tapping "Restore purchase" button, rather than at a random time when the app notices there is no receipt.


Both procedures would be in response to tapping the "Restore purchase" button.

It's 6 of one half a dozen of the other which you use - except for subscriptions where the receipt is better. Of course, that assumes you are verifying receipts. If you are not verifying receipts then just do the restoreCompletedTransactions.

Ah, I see .. thanks!