I am implementing an application using in app purchase with non-consumables items, it was rejected by apple and the reason is:
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.
For more information about restoring transactions and verifying store receipts, please refer to the
and there is no link to refer to, I have already implemented the:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
with SKPaymentTransactionStateRestored
case.
but I didnt implement:
`restoreCompletedTransactions` or `paymentQueueRestoreCompletedTransactionsFinished`
are these methods necessary for the in app purchase to be approved, or what is the exact problem.
Thanks
To restore your purchases:Open the drawer from the upper left corner of the screen and select Support. Select Purchases and Paid App from the menu. Tap on the menu option, located in the upper right-hand corner of the screen. Tap on Recover Paid App.
Installing Previously Purchased Apps on iOSOn the Updates page, tap the “Purchased” button, located towards the top of the page, to proceed to your list of previously purchased iOS apps. You will then be presented with a comprehensive list of all the apps you have ever downloaded or purchased via your active Apple ID.
Restoring purchases prevents you from losing all the things that have been purchased on the old devices. All you need to do is sign in with your old Apple ID or Google Account credentials and you would have restored your purchases.
Use the following to restore the products ID's that user did purchased from your app
- (void) checkPurchasedItems { [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; }// Call This Function //Then this delegate Function Will be fired - (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { purchasedItemIDs = [[NSMutableArray alloc] init]; NSLog(@"received restored transactions: %i", queue.transactions.count); for (SKPaymentTransaction *transaction in queue.transactions) { NSString *productID = transaction.payment.productIdentifier; [purchasedItemIDs addObject:productID]; } }
the purchasedItemIDs will contain all the product IDs that the user purchased it .. you could put a button to call this function when it finished you show all these products to enable the user to download it again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With