Restore transaction for non-purchased user

Hi All,



I have the issue in In-App Purchase feature, my steps is as below


I built an app and submit to AppStore successfully. There are movie list in my app and they are registered In-App Purchase

1. Install my app from AppStore with AppleID (A)

2. Movie 1 is not purchased and I purchased movie 1 with AppleID (A) and then play it

3. Switch AppleID (B) (it did not purchase movie 1) without re-installing my app

4. Next, I choose movie 1 to purchase, it show error message

"To restore a purchase for this app you must be signed in with the Apple ID that was used to purchase the app".

Some time it show other error message "Please purchase the software application first."


My question:

1. Whether or not I must re-install my app with new AppleID (B) so that I be able to buy movie 1?

2. If it don't need to re-install app, whether or not I can prevent to show these error message and perform In-App Purchase feature?

3. What event in In-App Purchase that I can catch to prevent show error messages above?


Thank you so much

Answered by PBK in 212736022

The better security is to require that the user who installs the app is also the user who makes new purchases and is the user who is currently logged into the app store. That way a user (A) can't "share" his purchases with a user (B) unless the devioce that is being used has current access to the user ID and password of A. There is no way of stopping user B from handing his device to user A and letting user A load the app and the IAPs into the device. But the device must remain logged into user A's account to be used. Note that this 'security' is not 'best' - just 'better'.

You wrote:


>4. Next, I choose movie 1 to purchase, it show error message

"To restore a purchase for this app you must be signed in with the Apple ID that was used to purchase the app".

Some time it show other error message "Please purchase the software application first."


Are you tyrying to 'purchase' the movie or are you trying to restore the original purchase? If the later then the error message is reasonable. The App Store has detected that user B has not installed the app and so it will not let user B restore any purchases by user B. Consider this - suppose user B (a friend of user A) offers to 'share' their purchases with user A - user A hands user B their device and says 'restore your purchases to my device'. The App Store is saying no, the app was installed on the device by User A and so it is not entitled to a restore of user B's purchases.


The second error message is saying that if user B wants to restore their purchases then user B needs to install the app on the device.

Thank you for your answer.


I means that I am trying to buy the movie 1 using AppleID (B) without re-installing my app with new AppleID (B).


Whether or not when I code for In-App Purchase feature, I can prevent to show the messages above and perform "purchase" movie 1 again?


It look like AppleID (A) can purchase movie 1 in the first.


Thank you again

Accepted Answer

The better security is to require that the user who installs the app is also the user who makes new purchases and is the user who is currently logged into the app store. That way a user (A) can't "share" his purchases with a user (B) unless the devioce that is being used has current access to the user ID and password of A. There is no way of stopping user B from handing his device to user A and letting user A load the app and the IAPs into the device. But the device must remain logged into user A's account to be used. Note that this 'security' is not 'best' - just 'better'.

Restore transaction for non-purchased user
 
 
Q