Skip to main content

Sending app-userid to connect purchase without purchasing still gives user access

  • October 23, 2025
  • 2 replies
  • 31 views

Forum|alt.badge.img

Hey guys,

I have a bit of a weird situation: I have one offering configured in RC, containing two products:

  • monthly Sub
  • lifetime item

When testing, everything seems to work properly. Especially the lifetime item works as expected.

Funnily, when I hit the purchase button in my app for the Sub on Android and DO NOT purchase the item, I throw the correct error at the user, but the user still gets access to the premium features somehow.

This does not happen on a lifetime item.

When I checked my app behaviour, I found, that the difference in my app is, that on a monthly sub I already send the apps userID to RC before doing the purchase (which I do not on the lifetime item).

As I use FlutterFlow for my app (with the RC integration), I added some custom code before the purchase action.

This is the code I call:

 await Purchases.configure(PurchasesConfiguration(publicApiKey));
await Purchases.logIn(userId);

Could that be the culprit?
Am I doing something wrong here? Should I call this AFTER the purchase 

 

Just to be clear: the process to check the entitlement in my App is exactly the same as for a lifetime purchase. Also the global entitlement check is not within the purchase logic, so it is the same process.  

So for me I find it pretty strange, that there is different behaviour and that is why I guess, I did something wrong with the above code.

Looking forward for any input.
Thanks a lot :)

Christoph

This post has been closed for comments

2 replies

Forum|alt.badge.img
  • Author
  • New Member
  • October 23, 2025

Just a quick heads-up: I deactivated the action for sending the userID and now the behaviour is the correct one. Still wondering, what I am doing wrong :)

It is fine to not connect a subscription to my apps account yet - maybe thats something for a later version, but I thought id make sense from the beginning, to do that.

So, still any ideas will be welcome :)


alejandra-wetsch
RevenueCat Staff
Forum|alt.badge.img+6

Hey ​@KlyX

Thank you for reaching out and providing such detailed information!

To provide additional details, when you call the `logIn` method, the SDK not only identifies your customer, but it also fetches their current Entitlements and subscriptions. Based on your description of the issue, it appears that when you call the logIn method immediately before making a purchase, an Entitlement is being returned. As a result, even if you do not purchase the product, the entitlement is unlocked, and the user has access to premium features, according to your app’s logic.

My recommendation would be always to call the configure and logIn method before presenting the Paywall. To better understand whether a User has an active entitlement, you should call getCustomerInfo. If the user has no active entitlements, you can then present the Paywall. You can read more about it here.

I hope this helps!