Module
Module 5 of 6Lesson 1 of 2~24 min

Open a Stripe Checkout payment from the server

Lesson 1 of the module "Take a Stripe payment, in test mode" in the course "Add a database, authentication and payments to your app".

Lesson objective

By the end of this lesson, you will be able to create a product and price in a Stripe test environment, have the agent write a server function that creates a Checkout session for the signed-in user, and verify the flow with test cards (payment accepted, strong authentication, decline) without the Stripe key leaving the server.

Where it fits

Take a Stripe payment, in test mode

How do I charge for a subscription, and know for sure who has paid?

Lessons in this module

  1. Open a Stripe Checkout payment from the server (this lesson)
  2. Webhooks: payment status is decided on the server

What you will learn in the course

This lesson is part of the course Add a database, authentication and payments to your app

  • Decide what stays in the browser and what must move to the server, and choose a back-end platform that fits your app, your budget and your data.
  • Manage environment variables and secrets (public VITE_ variables, secret keys on the server only, .env files kept out of Git, rotation after a leak).
  • Have the agent design a data model and its migrations, then check that data is actually stored and linked to the right user.
  • Write, have written and test Row Level Security rules that guarantee each user only accesses their own data and that plan limits are enforced in the database.
  • Add sign-up, sign-in, sign-out and password reset, and verify the flows, email confirmation and redirect URLs.
  • Integrate Stripe Checkout in test mode (product, price, session created on the server, test cards) without exposing the secret key.
  • Hold payment status on the server with signed, deduplicated Stripe webhooks, tested with the Stripe CLI or the Dashboard.
  • Apply GDPR basics (information, account deletion, processors) and a go-live checklist before taking real payments.