Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No restore button for in app purchase causes rejection

Tags:

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

like image 247
Nidal Saed Avatar asked Jun 11 '12 06:06

Nidal Saed


People also ask

Can in-app purchases be restored?

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.

How do I restore purchased apps on app Store?

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.

What happens if you click restore purchases?

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.


1 Answers

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.

like image 117
Malek_Jundi Avatar answered Nov 09 '22 15:11

Malek_Jundi