Build With RevenueCat

Build a customized mobile subscription business with RevenueCat. We do the heavy lifting of normalizing subscribers from any source and maintain a single source of truth for subscription status, so you can get back to building your app.

RevenueCat is a powerful, secure, reliable, and free to use in-app purchase server with global support. All you need to get started is an API key.

Ask A Question



Handling upgrade and downgrade for same group

Hello Team, I am testing the subscription products using sandbox. I have below four auto renewable subscription products in one group in order of SLAs. I have read the blog post about subscriptions group. Elite Yearly Elite Monthly Premium Yearly Premium Monthly I want to allow user to purchase only one of the four subscriptions so do not have two subscription groups. I have tested purchasing individual products and it is a breeze with RevenueCat so thanks. Scenario i was testing is, I purchased Premium Yearly and then purchased Elite Monthly before first renewal of Premium Yearly. iOS shows a dialog as "Your upgrade will start now. You will receive refund ..." When I tried to process purchaserInfo, it showed both products as active. See below. Is this how it will also behave in production? i have below queries. 1. if upgrade is done immediately then till when will purchaserInfo keep showing both as active products? 2. I have to save Elite Monthly as upgraded product in my app immediately and apply business rules, right? So how do i pick the new active product? Even the expiresDate for activeEntitlements is for Premium Yearly. 3. In case of downgrade (say Elite Yearly to Premium Monthly), will purchaserInfo show Premium Monthly product after subscription period is over for Elite Yearly? When i tried testing this, iOS prompted me to cancel from settings but it doesnt work for sandbox test user so do i have to wait for one hour till first renewal happens at which point purchaserInfo will show only premium monthly as active product? Sample purchaserInfo for upgrade scenario for Premium Yearly to Elite Monthly <PurchaserInfo originalApplicationVersion: 1.0, latestExpirationDate: 2019-08-25 09:59:37 +0000 activeEntitlements: { "premium_entitlement" = { expiresDate = "2019-08-25 09:59:37 +0000"; }; }, activeSubscriptions: { "" = { expiresDate = "2019-08-25 09:44:02 +0000"; }; "" = { expiresDate = "2019-08-25 09:59:37 +0000"; }; }, nonConsumablePurchases: {( )}, requestDate: 2019-08-25 09:39:07 +0000 > Thanks Ashish

Posted by Ashish Naik 4 months ago