Skip to main content

For IOS, we can create a subscription group with multiple products. For example, say we have a group with two products: Premium Monthly and Premium Yearly. The subscription group makes sure that the user can only have one at a time. Changing from one to another is a crossgrade.

How is this supposed to be done with Android? I couldn’t find anything in the Google play console for subscription groups.

Is it a correct assumption that if the user purchased Premium Monthly product, they cannot switch to Premium Yearly product in Android account since there is no such thing as subscription groups? They can only cancel their product?

And does this mean that we would have to create a screen in our Android app to handle the situation if the user wanted to change from monthly to yearly? My app is react native. Is the functionality to do this in the react native purchases library or should I be using the RevenueCat’s API?

Hi @Joshua 

Have you checked out this community post?

Interface of the upgradeInfo:  https://github.com/RevenueCat/react-native-purchases/blob/main/src/offerings.ts#L283 

Your call would end up looking like 

Purchases.purchasePackage(package, {oldSKU: sku_name, prorationMode: 1}

Where sku_name would be the product identifier (string) the subscriber has currently active. To find this, you can call the getPurchaserInfo method and retrieve the active product identifier. Docs for reference: https://docs.revenuecat.com/docs/purchaserinfo#get-user-information 


It looks like in react native I can use this method:

 

            const result = await Purchases.purchasePackage(item, upgradeInfo);

However, I’m not sure how to the oldSku which is needed for UpgradeInfo


Hey @tina , how about lifetime “subscription” which is actually not a subscription but consumable product. What is the best practice to switch users from existing subscription to life time product on iOS and Android?

As I understand you cannot cancel subscription on iOS , so the only thing is to show link to the user and notify that he should cancel current subscription? Little bit not user friendly approach.

And for Android seems like you can revoke + refund via api, but only revoke is needed actually not a refund. Or same as iOS to show link to user for cancellation.

Thanks


Reply