I am new to Bubble and I am trying to integrate Stripe in my app. I installed the official Stripe Plugin and set up my basic workflow to charge a user accordingly. My difficulty starts here, I want to add Cancel Subscription workflow in my app. I saw that there is an action in the workflow called “Cancel the current user’s plan” and when I implemented this, it seems to do the trick. My question is why do we need a customer service portal at all? What purpose does it have? In all the youtube videos i found, they mentioned something about webhooks and stripe events. I dont understand why it is being done. Can someone please help me out here?
Thanks in advance!
Welcome to the Bubble community!
As long as you reference the
Current User's Stripe Subscription Status is 'active', then you won’t need to add any webhooks. Bubble takes care of those for you when you use their plugin. The customer portal is nice for when the user needs to update their credit card or if they want to see their billing history. You just need to check if they have an active subscription while they are accessing data that they are paying for, otherwise, kick them out and don’t show them the data.
Does that make sense?
Another simple option instead of trying to recreate cancellation and billing flows within Bubble is to use Stripe’s customer portals, they’re no-code so you’ll just share the right link in your Bubble app. Here’s more about that: Activate the no-code customer portal | Stripe Documentation
In Bubble, you can use the “prefilled_email” parameter to connect them to the right billing portal
Good one @lola, would they have to verify their email though?
Here is a way to set it up through the API connector if you want them to access the customer portal without having to go through the email verification process, it uses the Stripe Customer ID: Stripe: Force Bubble to Navigate User to Stripe - #6 by J805
Thanks @lola and @J805! appreciate your help. My difficulty has been solved!
I need help with one more thing, In my app, when a user cancels their subscription, the subscription still remains active till the end of the month. I used the webhook to update my database for the user’s subscription status from active to inactive. How do I let the user keep using the premium features till the end of the month? And if the user decides to restart their subscription before the end of this month, how should i update my database? Do i need to use webhook again?
Yea I think the best way would be to have a subscription_ended or similar field in your database to save the date when they lose access and if they resubscribe you would remove or change that,
This takes care of that without web hooks. It will only be active while they are paying for their subscription. It will still say active till the end of the month too.
Where can i find more information on this? Is this in the documentation?
I couldn’t find it in the documentation, you can just test it to see though. Display the status on the screen so you can see that it remains active even if you cancel it ‘at the end of the period’. That’s the only way to double check that I know of.