pricing-page 技能介绍
用途
该技能用于为一个应用搭建完整的定价与付费系统,基于 Dodo Payments。当需要为应用添加收费能力时使用。
主要能力
- 在编写代码前先读取项目,检测框架、数据库、认证方式以及是否已存在支付提供商。
- 根据用户回答定义套餐(tiers),生成单一可信来源的配置文件(如 config/pricing.ts)。
- 创建功能门控(feature gating)工具,在 API 路由和 UI 中检查用户套餐是否有权访问某功能。
- 集成 Dodo Payments:包括环境变量、结账创建端点、客户账单门户、结账成功页。
- 生成响应式定价 UI 组件,强调其中一个套餐。
- 提供验证清单,覆盖功能门控、结账、Webhook、账单门户和边缘情况。
使用方式
技能按阶段执行:
- 阶段 1:理解项目。检测框架(Next.js 或其他)、数据库/ORM、认证方式、现有支付提供商。若发现 stripe 或 @lemonsqueezy/lemonsqueezy.js,则停止并报告不支持;若没有支付提供商,则确认用户是否要设置 Dodo Payments。不得在已有不受支持提供商的情况下安装 Dodo。随后向用户询问套餐数量、定价模型、计费周期、受门控功能,并确认使用 Dodo Payments。
- 阶段 2:套餐定义。根据用户回答创建配置。
- 阶段 3:功能门控。创建 lib/feature-gate.ts,定义 FEATURE_ACCESS 与 canAccess 函数;在 API 路由中执行检查,在 UI 中显示锁定状态而非隐藏功能。
- 阶段 4:Dodo Payments 集成。设置环境变量(DODO_API_KEY、DODO_WEBHOOK_SECRET、DODO_PRODUCT_ID、APP_URL),安装 @dodopayments/sdk,创建结账端点,创建客户门户端点,创建结账成功页并轮询套餐更新。
- 阶段 5:定价 UI 组件。生成 PricingCards 组件,其中突出显示一个套餐。
- 阶段 6:验证。检查功能门控、结账、Webhook、账单门户和边缘情况。
适用场景
- 使用 Dodo Payments 为应用实现收费。
- 需要定义套餐、功能门控、结账流程、账单门户和定价页面。
- 项目技术栈为 Next.js 或其他框架,且当前没有使用不受支持的支付提供商。
限制
- 该技能只实现 Dodo Payments,不实现 Stripe 或 Lemon Squeezy。
- 若检测到 Stripe 或 Lemon Squeezy,应停止并报告,保持原提供商不变。
- 不得在已有不受支持提供商的情况下同时安装 Dodo。
- 定价心理学、A/B 测试思路和高级功能门控模式参见 references/guide.md。
暂未提供的信息
- 具体的定价金额、套餐数量与计费周期由用户决定,技能本身不提供默认值。
- Dodo Payments 的收费、价格或平台相关政策未在资料中提供。
- 除 Next.js 外的其他框架的具体实现细节未在资料中提供。