Skip to main content

I’d like to ask for guidance on how to properly handle cases where users attempt to repurchase a subscription product they are already subscribed to.

In my app, I’ve implemented a subscription system offering both monthly and annual plans.
The issue I’m currently facing is: when a user who already has an active monthly subscription attempts to repurchase the same monthly plan via the paywall, the system silently ignores the request — no callback is triggered, and the only output I can see is the following log:

Ignoring purchase request for already subscribed package


While investigating this issue, I noticed something interesting: if I configure the package in the offering using PackageType.CUSTOM instead of the standard PackageType.MONTHLY, the PaywallViewModel is able to proceed with performPurchase() (since Package.currentlySubscribed returns false).

In this case, the RC SDK ends up calling the Google Play billing flow, which results in an error due to the duplicate purchase. This error is then surfaced to the user through an error message.

Surprisingly, this outcome is actually helpful for my use case — the user receives visible feedback that the purchase cannot be completed.

That said, I’d like to confirm:
Is relying on PackageType.CUSTOM to trigger a Google Play error a valid approach to prevent duplicate subscription purchases?
Or is there a more recommended or proper flow for handling this kind of situation?

Thanks in advance for your support and advice.

Be the first to reply!

Reply