In App Purchase Restore Button

Let’s say you’ve created an IAP Subscription for some feature you’ve created.

You submit it but find your app gets rejected for a reason along the lines of:

We found that your app offers In-App Purchase/s that can be restored but it does not include a “Restore” feature to allow users to restore the previously purchased In-App Purchase/s. To restore previously purchased In-App Purchase products, it would be appropriate to provide a “Restore” button and initiate the restore process when the “Restore” button is tapped.

What’s lacking is actually pretty simple. Say a user has made a purchase for a 1 year subscription for feature A. Then, they delete the app but subsequently re-install it. Now they want feature A back. You need to let the user restore that subscription. You just need to implement a Restore button and the actual process of restoring the purchase is just add:

 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

Then, if you’ve implemented the SKPaymentTransactionObserver protocol correctly (see my earlier post – this method will get called:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

which gives you chance to make any settings required by your app and fire off NSNotifications to update Views, etc.

A good SO post:

Note: this is only for Subscriptions. Consumable products don’t require a restore.

Leave a Reply

Your email address will not be published. Required fields are marked *