4 种定价模式
Pay4SaaS 内置了 4 种定价模式,通过一个环境变量切换,项目中不用改代码。
模式总览
| 模式 | 环境变量值 | 适用场景 | 用户付费方式 |
|---|---|---|---|
| 积分模式 | credits | 按量计费的工具类产品 | 购买积分包,用完再买 |
| 无限订阅 | subscription_unlimited | 标准 SaaS 订阅 | 按月/年订阅,不限用量 |
| 配额订阅 | subscription_quota | 需要用量控制的 SaaS | 订阅获得月度配额 + 可加购积分 |
| 买断制 | lifetime | 一次性付费产品 | 一次付费,永久使用 |
切换模式
在 .env.local 中设置:
NEXT_PUBLIC_PRICING_MODEL=credits可选值:credits、subscription_unlimited、subscription_quota、lifetime。
改完重启项目即可,定价页、结账流程、访问控制都会自动适配。
模式 1:积分模式(Credits)
双积分系统:购买积分永不过期,赠送积分按批次自动过期(默认 30 天)。每次使用服务扣 1 个积分,消费优先级为赠送积分 → 购买积分。

适合: AI 工具、图片生成、API 调用等按量计费场景。
配置积分包
在 config/payment.ts 的 PACKAGES 中配置:
export const PACKAGES = {
basic: {
credits: 10, // 积分数量
amount: 9.99, // 美元价格
amountCNY: 29, // 人民币价格(国内站自动使用)
name: 'Starter',
description: 'Perfect for casual writers',
features: ['10 AI writing credits', 'Blog post generation', '...'],
recommended: false
},
pro: {
credits: 50,
amount: 39.99,
amountCNY: 99,
name: 'Growth',
features: ['50 AI writing credits', '...'],
recommended: true // 标记为推荐方案
}
// max: { ... },
// ultra: { ... }, // 第 4 个套餐(可选)
}要点:
- 支持 2~4 个积分包,key 固定为
basic、pro、max、ultra,请勿修改 - 你只需要修改
name、价格、features等显示内容 - 不需要的套餐直接注释掉对应的 key
- 国内站会自动使用
amountCNY价格
模式 2:无限订阅(Subscription Unlimited)
用户按月或按年订阅,订阅期间不限使用次数。支持试用期。

适合: 标准 SaaS 产品,不需要精细化用量控制。
配置订阅计划
在 config/payment.ts 的 SUBSCRIPTION_PLANS 中配置:
export const SUBSCRIPTION_PLANS = {
basic: {
priceMonthly: 9.99, // 月付价格(美元)
priceYearly: 99.99, // 年付价格(美元)
priceMonthlyCNY: 29, // 月付价格(人民币)
priceYearlyCNY: 299, // 年付价格(人民币)
name: 'Basic',
features: ['50 articles / month', '...'],
recommended: false
},
pro: {
priceMonthly: 29.99,
priceYearly: 299.99,
name: 'Pro',
features: ['Unlimited articles', '...'],
recommended: true
}
// max: { ... },
// ultra: { ... }, // 第 4 个计划(可选)
}配置试用期
export const SUBSCRIPTION_UNLIMITED_CONFIG = {
trialDays: 7, // 试用天数
trialPlan: 'pro' as SubscriptionPlan // 支持试用的计划
}每个用户只能试用一次,系统会自动记录。默认只有 pro 计划支持试用——这也是行业惯例:免费试用高级版,体验过好功能后更容易转化为付费用户。
模式 3:配额订阅(Subscription Quota)
三积分系统:订阅配额每月自动重置,赠送积分按批次自动过期(默认 30 天),购买积分永不过期。配额用完可额外购买积分包继续使用。消费优先级:订阅配额 → 赠送积分 → 购买积分。

适合: 需要用量控制但又想提供灵活性的 SaaS,比如 Claude Pro 的模式。
配置
配额订阅同时使用 SUBSCRIPTION_PLANS 和 PACKAGES:
SUBSCRIPTION_PLANS中的quota字段定义每月配额PACKAGES定义可额外购买的积分包
// SUBSCRIPTION_PLANS 中
pro: {
priceMonthly: 29.99,
priceYearly: 299.99,
name: 'Pro',
quota: 500, // 月付用户每月 500 次
quotaYearly: 750, // 年付用户每月 750 次(年付优惠)
// ...
}模式 4:买断制(Lifetime)
用户一次付费,永久拥有,不限使用。

适合: UI 组件库、模板、工具包等一次性交付的产品。
配置买断计划
在 config/payment.ts 的 LIFETIME_PLANS 中配置:
export const LIFETIME_PLANS = {
standard: {
price: 279, // 美元价格
priceCNY: 1699, // 人民币价格
originalPrice: 349, // 原价(用于展示划线价)
originalPriceCNY: 1999,
name: 'Lifetime',
features: ['200+ components', 'Lifetime updates', '...'],
recommended: false
},
exclusive: {
price: 399.99,
name: 'Exclusive',
features: ['Everything in Lifetime', 'Priority support', '...'],
recommended: true
}
}要点:
- 支持 1~3 个买断计划,key 固定为
standard、exclusive、ultimate,请勿修改 originalPrice用于展示划线价,营造折扣感- 不需要的计划直接注释掉
模式判断工具函数
config/payment.ts 导出了一组工具函数,方便你在代码中做模式判断:
import {
isCreditsMode, // 当前是否为积分模式
isSubscriptionUnlimitedMode, // 当前是否为无限订阅模式
isSubscriptionQuotaMode, // 当前是否为配额订阅模式
isLifetimeMode, // 当前是否为买断模式
hasCredits, // 当前模式是否使用积分(credits 或 subscription_quota)
isSubscriptionMode // 当前模式是否为订阅类型(unlimited 或 quota)
} from '@/config/payment'