Promotional subscription overrides normal subscription in `customerInfo.entitlements`
- [x] I have updated Purchases SDK to the latest version
- [x] I have read the Contribution Guidelines
- [x] I have searched the Community
- [x] I have read docs.revenuecat.com
- [x] I have searched for existing Github issues
Hi all,
When I have both normal and promotional subscriptions active (and they have the same entitlement), I naturally see only one of them (only promotional) in the customerInfo.entitlements, since it is a dictionary with unique keys. But there is no way that I can get information about both subscriptions, because there is no customerInfo.subscriptions field.
And for Play Store it's important to know some information about a normal subscription, since it influences the googleProductChangeInfo for purchasePackage method.
The CustomerInfo interface (https://revenuecat.github.io/react-native-purchases-docs/7.15.0/interfaces/CustomerInfo.html).
- Environment
- Platform:Android
- SDK version: 7.6.0
- OS version: 14
- Xcode/Android Studio version: using expo
- React Native version: 0.72.5
- SDK installation (CocoaPods + version or manual): expo
- How widespread is the issue. Percentage of devices affected: Testing on my own device before pushing to production at the moment
- Debug logs that reproduce the issue
- Steps to reproduce, with a description of expected vs. actual behavior
- Other information (e.g. stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc.)
Additional context Add any other context about the problem here.
👀 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!
Great question. It is true that entitlements cannot disambiguate this because of their format. You mentioned that "there is no customerInfo.subscriptions field". Would activeSubscriptions work for you?
Hi @NachoSoto , I use activeSubscriptions for now. But this array has only identifiers. I need to get a periodType from the subscription.
With those you can fetch the product and look at their subscriptionPeriod. Would that work?
With those you can fetch the product and look at their
subscriptionPeriod. Would that work?
I meant a periodType, which is TRIAL, NORMAL or INTRO. It's not an attribute of the product. It's an attribute of a specific user's subscription
I need this field to make a correct change of subscription for Play Store. I need to know, whether the current subscription is in TRIAL at the moment or not.
Sorry for the confusion, I see what you were saying now. This is indeed a limitation because that information is only available in the entitlement, and there can only be one entitlement active with an identifier. Is it not giving you the expected type?
Hi @NachoSoto , no, because entitlement shows me the PROMO subscription. PROMO subscription overrides the one from the Play Store, if they have the same entitlement. And PROMO subscription is always periodType=NORMAL.