Revenuecat team: Thank you for providing such a good service.
Condition
- SDK: react-native-purchases@^4.5.2: version "4.5.3"
Restore setting: Block Restore
- SDK login timing: at App initializing and before purchase
- Runs restorePurchase internally before makePurchase to check if product is already purchased by different Member. (Shows message to re-login by purchased member)
Usecase
- iPhone user (App ID = X)log in to app as Member: A=app_user_id. Then purchase Monthly subscription.
- User log out Member: A.
- User log in as Member: B.
- User Try to purchase Monthly subscription (internally runs restore for checking before purchase), “Receipt already in use” error occurs and prevent Member: B from purchasing. This behavior is as we expected.
- But after above, When User try to purchase again as Member: B( internally runs restore for checking before purchase), this time “Receipt already in use” does not occur goes through restorePurchase and "Product already purchased" occurs AND SDK's APP_USER_ID IS CHANGED TO MEMBER: A !! ( as I checked from debug information)
Question
- Why this happens? The first try (restore) we have “Receipt already in use” and it is as we expected, but once “Receipt already in use” happens once, restore occurs with purchased app_user_id and SDK’s app_user_id seems switched.
Thank you in advance.