How to avoid product change on iOS (especially with multiple accounts on same device)?
I have this scenario that I am trying to avoid as it is very confusing how to even manage such a subscription:
User1 logs into the app (app_user_id is configured)
User1 purchases the 1 month subscription
User1 logs out
User2 logs in (new app_user_id is configured)
User2 tries to purchase the 1 month subscription and gets “already purchased” error
BUT if User2 tries to purchase the 3 months subscription, iOS allows it (and treats it as product change?)
Will this mean same iOS account has actually made 2 purchases for 2 different users or now the lines are crossed and the first user has been upgraded?
FWIW, I have revenue cat configured to now allow transfers since the entire app is behind a login and each user should have their own subscription per one account.
Page 1 / 1
Hey @vic-a563d7!
This is expected behavior, unfortunately. RevenueCat associates the purchases from the underlying App Store account to the identified user ID - just logging out and logging in to a new app user ID doesn’t affect the underlying store account, but rather associates the purchases to the newly identified user ID.
If the customer would like to make another subscription purchase, they would have to log out of the App Store account/Apple ID, and sign into a different account on their device. Since Apple only allows a user to be subscribed to one subscription group at a time, there’s unfortunately not a workaround to allow the user to make another subscription purchase of the same product.
Let me know if you have any other questions!
OK thanks I understand how it works now. But I guess still trying to find out if there is a way (in the react native SDK) to find out of this scenario. So I can block it in the business logic of the app. Meaning, all I need to know if the same AppStore account already has a purchase in revenue cat tied to ANY app_user_id. This will help me just hide all the offerings for User2 when they log in and display a message telling them they need to log back to a different account to see/user their purchased subscriptions.
Basically need a mapping of device user ID vs application user ID. Does revenue cat at least expose something kinda of information about the OS user?
Hey @vic-a563d7!
This is expected behavior, unfortunately. RevenueCat associates the purchases from the underlying App Store account to the identified user ID - just logging out and logging in to a new app user ID doesn’t affect the underlying store account, but rather associates the purchases to the newly identified user ID.
If the customer would like to make another subscription purchase, they would have to log out of the App Store account/Apple ID, and sign into a different account on their device. Since Apple only allows a user to be subscribed to one subscription group at a time, there’s unfortunately not a workaround to allow the user to make another subscription purchase of the same product.
Let me know if you have any other questions!
Although it’s not subscription and it’s one time product which are consumable, I prevents transfer, (in ios) and login with account A to purchase then login with account to purchase, two products belongs to account A both. It’s ridiculous, it mean app user id is useless!!
And in android, it’s totally different, two products belongs account A and account B separately. I suppose android is the expected!
Hey @hangyu-cde31f,
That’s right - products purchased on iOS belong to the logged in Apple Account. Separate products can’t be attached to different app user IDs if they were purchased from the same Apple Account.
App user IDs allow us to link these transactions to an custom identifier, but the underlying transaction behavior (purchases all linked to one Apple Account) is a limitation on Apple’s end.
I have this scenario that I am trying to avoid as it is very confusing how to even manage such a subscription:
User1 logs into the app (app_user_id is configured)
User1 purchases the 1 month subscription
User1 logs out
User2 logs in (new app_user_id is configured)
User2 tries to purchase the 1 month subscription and gets “already purchased” error
BUT if User2 tries to purchase the 3 months subscription, iOS allows it (and treats it as product change?)
Will this mean same iOS account has actually made 2 purchases for 2 different users or now the lines are crossed and the first user has been upgraded?
FWIW, I have revenue cat configured to now allow transfers since the entire app is behind a login and each user should have their own subscription per one account.
However, if we examine it closely, it appears that two subscriptions (a one-month subscription plus a three-month subscription) are purchased from a single account by different users who share the same Apple ID.
I am using React Native CLI to develop my app for the Android Play Store, and everything is working fine. I am making the connection to the public API, but when I try to display the paywall screen, I get the error shown in the image. The error code is 23. There is no issue, and I have done the necessary steps, but why am I getting this error? Android Play Store React Native CLI
com.revenuecat.purchases.PurchasesException:There is an issue with your configuration. check the underlying error for more details.
Hi @netron50-1435f8,
I’ve checked your account and I can see that your credentials are not valid, you can find it in your project and inside your app on Service Account Credentials JSON. Google credentials can take up to 36h to propagate so it might be worth waiting that time to make sure that you’ve gave Google enough time. You can also have a look at our credentials checklist and make sure that you’ve done all the steps.
Best,
Hi @netron50-1435f8,
I’ve checked your account and I can see that your credentials are not valid, you can find it in your project and inside your app on Service Account Credentials JSON. Google credentials can take up to 36h to propagate so it might be worth waiting that time to make sure that you’ve gave Google enough time. You can also have a look at our credentials checklist and make sure that you’ve done all the steps.
Best,
Hello, I was getting the error 23, and you told me that my account was not approved.
? Could not validate subscriptions API permissions
Permissions to call inappproducts API
Permissions to call monetization API
These are as shown, only 'Could not validate subscriptions API permissions' is marked with a question mark."