SuperAPI AI 工具集

stripe

通用与其它

查看项目

更新于 10-16 07:58

技能介绍

用途:为 spiceflow + Drizzle 应用提供 Stripe 计费集成规范,覆盖订阅购买、管理与多币种定价。

主要能力与规则:新购使用 Stripe Checkout,订阅管理(升级、降级、取消、月付↔年付切换)使用 Stripe Billing Portal,不自行构建计费 UI。每个 Org 只对应一个 Stripe 客户,客户 id 存入 Org.stripeCustomerId 并复用;每个 Org 只保留一条有效 Subscription,创建 Checkout 前先查库,已有订阅则跳转 Portal。价格优先用 lookup_key 而非硬编码 price_xxx,运行时获取价格。每个 Price 在 USD 基础上通过 currency_options 增加 EUR,两者使用相同整数金额。所有面向 Stripe 的 HTTP 代码放在 spiceflow 子应用中,Webhook 也是 spiceflow 路由,通过 await request.text() 获取原始请求体用于签名校验。错误以值返回而非抛出,Stripe/Drizzle 调用用 .catch() 包装为带标签错误(StripeApiError、DbError、PriceNotFoundError 等),仅在 HTTP 边界用 errore.matchError 映射响应。

CLI 与配置:Stripe CLI 凭据存于 ~/.config/stripe/config.toml,多账户用 --project-name 区分,例如 stripe login --project-name=myapp-prod,并在每条命令上传递。环境变量仅三个:STRIPE_SECRET_KEY、STRIPE_WEBHOOK_SECRET(仅服务端)与 VITE_STRIPE_PUBLISHABLE_KEY(可进浏览器)。Vite 不向客户端暴露 process.env,浏览器只能用 import.meta.env.VITE_*,且绝不能给密钥加 VITE_ 前缀。本地开发用 stripe listen --forward-to http://localhost:8040/api/stripe/webhooks 转发事件。

创建产品与价格:先 stripe products create 创建产品,再用 stripe prices create 创建价格,lookup_key 命名采用 <tier>_<interval>(如 pro_monthly、pro_yearly),并在顶层与 EUR currency_options 都设置 tax_behavior=exclusive。验证时需 --expand "data.currency_options" 才能看到 EUR 金额。换价时先创建新价格,再用 transfer_lookup_key=true 转移 lookup_key,最后停用旧价格。

适用场景:需要订阅计费、多币种定价、Portal 自助管理的 spiceflow + Drizzle 应用。

限制:资料未提供具体收费、价格数值以外的商业条款、平台支持范围或效果数据;示例中的金额与变量仅为占位,需按实际账户替换。