Subscriptions Cross Platform: iOS, Android and Stripe

  • 16 November 2023
  • 3 replies

Badge +5

We are a subscription app, made in unity project, that generates iOS and Android apps.

We also allow the user to create a subscription via web using Stripe.

Currently, we store Stripe’s data in our Users DB and when the users logs in, we check against our DB to see if the user has a valid subscription.
For Android and iOS we use a custom App User Id, which is the device/install ID.
Our intention is to start identyfying users with our internal user_id (associated to the login credentials) and unify subscriptions via rcat to work cross platform, allowing a user that purchase via any platform, to login in any other device/platform and enjoy the subscription access.

What would you recommend as the best way to proceed? How can we logIn a new App User ID for both new and old customers for this to work smoothly?

Any help, use cases you know, is welcome!

3 replies

Userlevel 3
Badge +8

Hi Gonzalo,

I see you have our legacy alias behavior set for restoring user purchases, will which apply to the login() method as well.

If you can fetch the new App User Id before calling configure() or login() for a user, you can use that App User Id and the old and new Ids will become aliased together in our system. So a user’s purchases on the old ID will apply to the new ID as well.

Badge +5

Hi Ryan,

Thank you for your guidance; it's been very helpful.

We're considering moving away from the legacy alias behavior to better align with our new strategy. Our goal is to ensure that each subscription is linked to a unique user ID based on login credentials, preventing multiple users from accessing the same subscription.

Here's our proposed deployment plan:

  1. Release a new app version that initiates the logIn method at the start of a new session or when a user logs in.
  2. Transition to the 'transfer to new App User Id' setting.

With these changes, users logging into our app will be authenticated with the new App User Id, enabling them to access their subscription across different platforms and devices.

However, I have a concern: Is there a risk of users temporarily losing access during this transition? Will they need to manually restore their purchases, or can we handle this transition seamlessly in the backend by logging in the new App User Id on their behalf?

Your insights on this would be invaluable.

Thanks again for your support.

Best, Gonzalo

Userlevel 3
Badge +8

> logging in the new App User Id on their behalf?

Yes, this would work and the login would call syncPurchases (programmatic version of restorePurchases)