创建 Checkout Session 和 webhook 处理

创建 Checkout Session

在服务端提供 /api/billing/checkout 接口, 通过 createStripeCheckoutSession 创建 Checkout Session,并将用户重定向到 Stripe 提供的托管支付页面。

这里有几个关键点:

  • 不在客户端直接创建 Session 所有价格、产品 ID 等信息由服务端控制,避免被篡改
  • 使用 Stripe Checkout 而不自建支付页面
  • 通过 metadata 绑定业务用户 在创建 Session 时传入 userId,用于后续 webhook 关联用户

Webhook 处理逻辑

提供 app/api/billing/webhook 接口, 通过 handleStripeWebhookEvent 用于处理事件回调,同步订阅结果到 supabase 。

Webhook 是整个订阅系统中最核心的一环,用于同步真实的订阅状态。

登录后查看完整方案说明

当前仅展示《创建 Checkout Session 和 webhook 处理》的部分内容。页面加载时会自动弹出登录框,若你刚刚关闭了它,点击下面按钮可继续查看完整说明。