Search code examples
node.jsexpressstripe-paymentstrialware

Set trial date on stripe dashboard only refer to plans not create them in my app using stripe


Not sure if the title makes sense, I will say this question is very similar to the one I posted yesterday but no response on seen here. I have a user sign up and select a plan, once they are set to said plan there is a trial day limit set using the stripe dashboard. I am not creating the subscriptions via the API. Once the day 30 days are up, how can I tell? Only way I can think of telling is checking if their account is older than 30 days and doesn't have a stripe token/last 4 numbers of their CC. There has to be a better way that is more secure and prevents them from canceling their card and still being able to use the service. I know there is no code in this post and should be, but the only code I think is relevant is in the linked post you should check out.

I should add, where should I put this code in my routes? And I am using node.js, express, swig, and stripe.


Solution

  • What you are looking for is Stripe Events. When an action happens on your account, Stripe issues an "event". You should set up a webhook in your dashboard, and an endpoint on your site or app to capture Stripe Events and process the data that is sent.

    Stripe issues two perfect events for what you need: customer.subscription.trial_will_end which fires three days before the trial ends , and customer.subscription.updated which fires in multiple cases, including when the status is changed from trialing to active.

    Read through the Stripe docs here to learn more.