react-native-purchases icon indicating copy to clipboard operation
react-native-purchases copied to clipboard

Promotional subscription overrides normal subscription in `customerInfo.entitlements`

Open Bi0max opened this issue 2 years ago • 7 comments

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).

  1. Environment
    1. Platform:Android
    2. SDK version: 7.6.0
    3. OS version: 14
    4. Xcode/Android Studio version: using expo
    5. React Native version: 0.72.5
    6. SDK installation (CocoaPods + version or manual): expo
    7. How widespread is the issue. Percentage of devices affected: Testing on my own device before pushing to production at the moment
  2. Debug logs that reproduce the issue
  3. Steps to reproduce, with a description of expected vs. actual behavior
  4. 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.

Bi0max avatar Jan 16 '24 13:01 Bi0max

👀 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!

RCGitBot avatar Jan 16 '24 13:01 RCGitBot

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?

NachoSoto avatar Jan 16 '24 17:01 NachoSoto

Hi @NachoSoto , I use activeSubscriptions for now. But this array has only identifiers. I need to get a periodType from the subscription.

Bi0max avatar Jan 17 '24 15:01 Bi0max

With those you can fetch the product and look at their subscriptionPeriod. Would that work?

NachoSoto avatar Jan 17 '24 17:01 NachoSoto

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.

Bi0max avatar Jan 18 '24 11:01 Bi0max

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?

NachoSoto avatar Jan 19 '24 18:01 NachoSoto

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.

Bi0max avatar Jan 19 '24 19:01 Bi0max