I am working on an app that uses a backend (Playfab) to validate receipts of purchases on iOS. Though this works without issue with fresh purchases, when purchases are restored using RestoreTransactions() the transactions sent to ProcessPurchase() include the original transaction receipts and not the restored receipts. This results in a “Receipt already used” error from the backend.
This is an issue mentioned extensively in various forums here, here, and here, yet no answer has been provided. From what Ive read, youre supposed to use restoreCompletedTransactions() which I can see being used in Unity IAP’s native code. But then I cant figure out how to retrieve this restore receipt. Am I going to have to modify Unity IAP’s native code or is the restore receipt exposed somewhere I haven’t found?
It is important to note that this is a mandatory feature for all iOS apps so not supporting this functionality means that you cant use backend validation on iOS while using Unity IAPs.