iosin-app-purchasestorekitrmstore

RMStore restore in-app purchase


Confused by several aspects of in-app purchase "restoration". Quick summary of my situation: have a paid app in store now, supports ios6 and ios7. Want to move to freemium model, with in-app purchase for "pro upgrade". So will need two bits of receipt functionality--check original install version, and restore in-app purchase. Found the promising looking RMStore, but have a couple of questions still:

  1. I see many examples online (non-RMStore examples) that say to call restoreCompletedTransactions to restore in-app purchases, but in RMStore there is the RMAppReceipt method containsInAppPurchaseOfProductIdentifier. If I'm using RMStore, do I need to call restoreCompletedTransactions, or can I just use the RMAppReceipt method above to verify prior in-app purchase?

  2. Can I use the above RMStore methods in ios6? Or is it ios7 only? I see info online that suggests "unified receipts" only available in ios7 or somesuch.

  3. Non-RMStore specific question: Is receipt validation required, or just recommended? I.e., will the above work if I skip validating the receipt, or will app store reject w/o validation code?


Solution

  • If I'm using RMStore, do I need to call restoreCompletedTransactions, or can I just use the RMAppReceipt method above to verify prior in-app purchase?

    In iOS 7, you can use on the app receipt. If you don't want to rely on the receipt, you can use your own transaction persistence. In RMStore, this is a simple as setting a default or custom transaction persistor and should work in all supported iOS versions.

    In general, it's best to avoid restoring purchases frequently as it forces users to enter their password. Only do it if the user requests it, or if you have no other option.

    Can I use the above RMStore methods in ios6? Or is it ios7 only? I see info online that suggests "unified receipts" only available in ios7 or somesuch.

    iOS 7, as the receipt does not work in iOS 6 or lower.

    Non-RMStore specific question: Is receipt validation required, or just recommended? I.e., will the above work if I skip validating the receipt, or will app store reject w/o validation code?

    Recommended.