Restore in-app purchase

I have an app where I want to implement in-app purchase for non-consumable product. Per Apple's in-app purchase guidelines, I have to provide option to restore purchases. Also in my app each user needs to register with an account, and this is what bothers me:


Let's say Jon Doe has registered in my app with account X and made purchase, and on my server side I have created record of this. Now Jon decides to create new account in my app - X1 and he decides to restore purchases and he enters his iTunes password and everything is fine, but account X1 is not aacount X in my app, he should not receive this product again (for different account) based on same iTunes purchase.


I could not find anything in apple guidelines about this, so my question is can I reject restoring purchase for account X1 because initial purchase was made by account X even though X and X1 are actually same person - Jon (using different accounts in my app) but using same iTunes account to make purchase / restore purchase ? Will this fail on Apple's review ?

You may want to move this/ask again in the In-App Purchase forum.

You cannot stop a user from restoring the IAP on his device. You can prevent a user from using an IAP purchased under one iTunes Account from logging onto your server using more than one iTunesAccount. The IAP has an original_transaction_identifier. When a user tries to credit an IAP to an account on your server you require that original_transaction_identifier. If it has already been used then reject the credit. Alternatively you can write the user's account info for your server on the user's iCloud key-value file.

Thank you for your answer 🙂

Restore in-app purchase
 
 
Q