Search code examples
iosiphonein-app-purchasestorekitauto-renewable

How to fetch already purchased details of iOS IAP Auto Renewable product


I have created Auto renewable products and testing in sandbox environment. My question is I have purchased one product, and If I try to purchase same product with same Apple account it is showing alert as already purchased as expected but I could not able to fetch that transaction details as it is executing failed state in updated transactions. How I can get that purchased details (atleast original receiptID) as we get in Initial transaction.


Solution

  • There is two way to get user purchased transaction details:

    1. Refresh receipt
    2. Restore completed transaction

    To know more about difference between refreshing receipt & restore transaction in details, Please check:- SKReceiptRefreshRequest vs restoreCompletedTransactions

    In Simply,

    • Refreshing the receipt asks the App Store for the latest copy of the receipt.
    • Restoring completed transactions creates a new transaction for every completed transaction the user made, essentially replaying history for your transaction queue observer.

    Question: How I can get that purchased details (atleast original receiptID) as we get in Initial transaction.

    Answer: If you want to verify user with original receiptID every time each time than user SKReceiptRefreshRequest for validating user transaction.

    Note: Anytime if you validating user with RestoreCompletedTransactions, Your transactionID will change. Find list of parameter that change while restoreTransaction: https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW1