I have two subscription set up in play store (Standard and Premium) and i have two base plans in each of these subscriptions ( Monthly and Premium ) . When i upgrade within the same subscription (ex: standard monthly to standard yearly) i use the Proration mode : IMMEDIATE_AND_CHARGE_FULL_PRICE and when i upgrading to a different tier (ex: Standard monthly to Premium monthly/yearly) I use the Proration mode : IMMEDIATE_AND_CHARGE_PRORATED_PRICE. Everything works fine.
The issue I have is that play store allows the user to have more than one subscription. It allows the user to have Standard and Premium subscription at the same time. The way i knew about this is that i signed into an account, bought a Standard Monthly subscription, then deleted the account and created a new account and on the paywall i clicked to buy the Premium Monthly subscription and it bought the premium monthly subscription also and I checked the google play store and the play store account is paying for Standard monthly and Premium Monthly subscription at the same time. This case happens when the person doesn’t actually restore purchases or forgot to restore purchases.
I have tried two ways to block this case from happening.
The first way i tried is that i was reading the restore purchases documentation (https://www.revenuecat.com/docs/getting-started/restoring-purchases) and this is what it says
Google Play on Android
Due to platform limitations, purchases will be transferred as soon as you call configure
if a user's purchases are already associated with another app user ID.
This may cause unexpected transfers of purchases between app user IDs, especially for apps with optional logins or users with multiple devices. To prevent this behavior, you should wait to call configure
until you have the appropriate app user ID for your customer.
So i tried to make it so that it automatically transfers his purchase when he logs in another account so the case of him buying another subscription doesn’t happen as it would have already be transferred. But the issue is, when i called configure early, the purchase doesn’t actually transfer on android. But rather, this only happens on ios ( docs might be wrong?). On android, the user would have to manually click restore for him to restore the subscription so this way of trying to block this case failed for me.
The second way i tried is by creating one subscription in google play store and create four base plans ( Standard monthly, Premium Monthly, Standard Yearly, Premium Yearly). When this happens, the proration mode i can use while upgrading is IMMEDIATE_AND_CHARGE_FULL_PRICE as IMMEDIATE_AND_CHARGE_PRORATED_PRICE doesn’t work. The issue with IMMEDIATE_AND_CHARGE_FULL_PRICE is that when he buys standard yearly, and he upgrades to premium monthly instantly, he will end up getting ~12 months of premium features for the price of just paying for the monthly plan of premium. So this way of trying to block this case have also failed for me.
Is there any way to solve this issue or any suggestions or is there a some type of setting to allow him to only have one subscription at a time? Could you please help? Thanks