logoPay4SaaS
支付

4 种定价模式

Pay4SaaS 内置了 4 种定价模式,通过一个环境变量切换,项目中不用改代码。

模式总览

模式环境变量值适用场景用户付费方式
积分模式credits按量计费的工具类产品购买积分包,用完再买
无限订阅subscription_unlimited标准 SaaS 订阅按月/年订阅,不限用量
配额订阅subscription_quota需要用量控制的 SaaS订阅获得月度配额 + 可加购积分
买断制lifetime一次性付费产品一次付费,永久使用

切换模式

.env.local 中设置:

NEXT_PUBLIC_PRICING_MODEL=credits

可选值:creditssubscription_unlimitedsubscription_quotalifetime

改完重启项目即可,定价页、结账流程、访问控制都会自动适配。

模式 1:积分模式(Credits)

双积分系统:购买积分永不过期,赠送积分按批次自动过期(默认 30 天)。每次使用服务扣 1 个积分,消费优先级为赠送积分 → 购买积分。

适合: AI 工具、图片生成、API 调用等按量计费场景。

配置积分包

config/payment.tsPACKAGES 中配置:

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 固定为 basicpromaxultra,请勿修改
  • 你只需要修改 name、价格、features 等显示内容
  • 不需要的套餐直接注释掉对应的 key
  • 国内站会自动使用 amountCNY 价格

模式 2:无限订阅(Subscription Unlimited)

用户按月或按年订阅,订阅期间不限使用次数。支持试用期。

适合: 标准 SaaS 产品,不需要精细化用量控制。

配置订阅计划

config/payment.tsSUBSCRIPTION_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_PLANSPACKAGES

  • 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.tsLIFETIME_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 固定为 standardexclusiveultimate,请勿修改
  • originalPrice 用于展示划线价,营造折扣感
  • 不需要的计划直接注释掉

模式判断工具函数

config/payment.ts 导出了一组工具函数,方便你在代码中做模式判断:

import {
  isCreditsMode, // 当前是否为积分模式
  isSubscriptionUnlimitedMode, // 当前是否为无限订阅模式
  isSubscriptionQuotaMode, // 当前是否为配额订阅模式
  isLifetimeMode, // 当前是否为买断模式
  hasCredits, // 当前模式是否使用积分(credits 或 subscription_quota)
  isSubscriptionMode // 当前模式是否为订阅类型(unlimited 或 quota)
} from '@/config/payment'

On this page