Our iOS app uses in-app purchases, both one-time and an auto-renewing subscription. Both these are non-consumable.
iOS offers two APIs: refresh receipt, and restore completed transactions.
It seems that the latter works for all cases, while the former works in only some cases. Specifically, when we restore an auto-renewable purchase to a new device, restore purchased transactions will cause future renewals to generate a transaction that will be sent in the background to the new device, where as refreshing the receipt will not cause a transaction to be sent to this device the next time there is a renewal.
Given this, is there any reason to use refresh receipt?
Apple seems to say we can use either:
Retrieve information about past purchases by either refreshing the app receipt using the SKReceiptRefreshRequest class or restoring completed transactions using the restoreCompletedTransactions method of the SKPaymentQueue class.

