Aprove answer

You are not required to implement paymentQueueRestoreCompletedTransactionsFinished. As you note, this is not the place to actually restore completed transactions.

What I do suggest you consider is providing appropriate user feedback when they tap the "Restore" button; Restoring transactions can take some time, so you might want to consider showing an activity spinner or other UI element to indicate that restoration is taking place. paymentQueueRestoreCompletedTransactionsFinished is where you should remove this UI.

You can also keep track of whether any purchases were actually restored and then display an appropriate message in this function. e.g. "No purchases were found" or "3 purchases have been restored"

Credit Goes to: stackoverflow.com

Related question with same questions but different answers