a) Auto-renewing subscriptions are inconsistent in the sandbox environment. Sometimes a subscription will renew multiple times (about 5) before ending. Other times it won’t renew at all.
b) (iOS6 transaction receipts only) You don’t need to call
restoreCompletedTransactions to check the status of a subscription if you’re storing previous receipts (preferably on your server). Just take any subscription receipt you’ve stored for that user and submit it to the App Store for verification. They’ll respond with the
latest_receipt_info including the
expires_date which you can use to determine current subscription status.
c) You should prompt new users to “Restore Previous Purchases” at which point you call restoreCompletedTransactions. Then submit one of those receipts (preferably from your server) to the App Store for verification to get decoded details about the transaction. Look for the key
original_transaction_id in the receipt info. This will always contain the id of the very first time this user initiated a subscription with you. If you compare this ID to others in your system, you should be able to determine which devices share an Apple account. (Since Apple doesn’t allow you to see a user’s Apple ID, this is the best way to identify an account that spans multiple devices).
Similar to this question:
iOS auto-renew expired at the end of current subscription period