TutorialsStripe Subscriptions
The flow is the same for one-time payments
Looking to use Lemon Squeezy? Follow this tutorial .
Let's create a Stripe Checkout to set up a subscription and let our webhook handle the logic to provision access to the user.
You need to have Stripe and a database set up.
Setup
- In your Stripe dashboard, Click [More +] > [Product Catalog] > [+ Add Product]. Set a name and a monthly price (or anything according to your business model). Then click [Save Product].
- In the [Pricing] section, copy the product price ID (starts with
price_) and add it to the first plan in thestripe.plansarrayconfig.js. - In
/dashboard/page.js, paste this: - Open
http://localhost:3000/dashboardin your browser, log-in and click the button to make a payment with the credit card number4242 4242 4242 4242. - Our webhook
/api/webhook/stripe/route.jslistens to Stripe events and will handle the logic to provision access (or not) to the user—See the booleanhasAccessin theUser.jsschema (NextAuth) orhas_accessin your Supabaseprofilestable. - You can add your own logic in
/api/webhook/stripe/route.jslike sending abandoned cart emails, remove credits, etc. - Users can manage their accounts with
<ButtonAccount />(cancel subscription, update credit card, etc.)
/app/dashboard/page.js
You need to have a Stripe local endpoint running on your computer for this to work in dev mode.