用途:对 Stripe 集成做端到端深度验证,覆盖配置、结账、Webhook、订阅状态、边界情况、访问控制、商业模式合规与订阅管理 UX。适合在 stripe-setup 或 stripe-reconcile 之后、生产部署前以及定期健康检查时运行。
主要能力:
- 配置验证:检查环境变量、Next/Vercel 与 Convex 的 CONVEX_WEBHOOK_TOKEN 一致性(P0 不变量)、Webhook URL 可达性(应返回 4xx/5xx 而非 3xx)、Stripe CLI 连接。
- 结账流程:创建真实测试会话,用测试卡 4242 4242 4242 4242 完成支付,验证会话创建、跳转、成功页、确认接口、Webhook 接收、订阅创建与数据库状态更新。
- Webhook 投递:用 stripe events list 检查 pending_webhooks 应为 0,可用 stripe events resend 重发事件并观察日志。
- 订阅状态转换:新用户→试用、试用→活跃、活跃→取消、取消→重新订阅、试用过期,逐项验证状态与访问权限。
- 边界情况:Webhook 幂等性、乱序事件、支付失败(测试卡 4000 0000 0000 0002 触发 past_due)。
- 访问控制:活跃、试用、过期、取消期内、取消期后、逾期各状态的实际访问结果。
- 商业模式合规:单一价格档、升级时保留试用、无免费增值逻辑。
- 订阅管理 UX:设置页订阅区块、套餐名与状态、下次账单日、支付方式、Stripe 门户按钮、账单历史、各状态专属提示。此项为硬性要求,缺失即验证失败。
使用方式:按技能内步骤执行命令,如 bunx convex env list、vercel env pull、stripe listen --print-json --latest、stripe events list --limit 5 | jq 等,最终输出验证报告并给出 STATUS。
限制:默认深度模式,不建议为省时跳过测试;部分场景(如试用自然过期、乱序 Webhook)可能无法测试,需在报告中标注为未测试。具体平台与价格信息暂未提供。