# 按需订阅：一种真正有效的混合计费模式

> 按需订阅将周期性计费与按需扣款结合起来，让你可以使用同一个已保存的支付方式运行试用、追加销售和分层升级。
- **Author**: Ayush Agarwal
- **Published**: 2026-05-14
- **Category**: Subscriptions, Billing
- **URL**: https://dodopayments.com/blogs/zh/on-demand-subscriptions-hybrid

---

按需订阅是一种周期性订阅，也可以使用同一个已保存的支付授权发起一次性扣款，并且初始扣款金额可以为零。这种组合让单个计费对象能够覆盖试用期、周期中升级、附加项、超额用量和预付额度充值，而不必为每一种场景分别创建一次性支付集成。

订阅计费最初很简单。客户注册、选择套餐、每月付款，然后继续使用或取消订阅。对于许多产品来说，这种模式依然有效，但当 SaaS 或 AI 业务超越基础阶段后，它会牺牲收入和灵活性。试用期需要在不扣款的情况下收集银行卡信息。升级需要立即收取差额，而不是等到下一个计费周期。附加项和一次性充值需要通过同一个已保存的支付方式完成，同时不让客户再次进行身份验证。

按需订阅是实现这一目标最简洁的方式。周期性合同依然存在，但业务逻辑需要时，你也可以随时使用同一个客户支付授权发起一次性扣款。本文将介绍按需订阅是什么、它可以支持哪些流程，以及如何在 Dodo Payments 上实际实现。

## 按需订阅究竟是什么

标准订阅只有一笔与套餐绑定的周期性扣款。每个计费周期，平台都会从已保存的支付方式中扣取约定金额。它无法在计划之外向同一客户收取其他费用，也无法在不立即扣款的情况下启动订阅。

按需订阅从两个方面扩展了这一模式。首先，初始扣款变为可选项。你可以先收集支付方式并创建订阅记录，而暂时不收取任何费用，这是免费试用和免费增值升级的标准做法。其次，你可以随时使用已保存的支付授权发起临时扣款，按照客户所在国家或地区的货币计费，并通过与周期性部分相同的合规和税务流程。

最终得到的是一个代表客户关系的统一对象：它既有固定的周期节奏，也可以灵活地为周期之外发生的事项收费。对客户来说，只需保存一张卡，并维持一段计费关系。对商家来说，只需一个订阅标识符，就能支持试用、追加销售、预付额度充值、超额用量和套餐变更。

## 为 SaaS 和 AI 产品解锁哪些能力

按需订阅之所以重要，是因为真实的产品流程几乎从来都无法完全适配纯周期性模型。以下几种模式反复出现。

### 无需预先扣款的免费试用

经典的试用流程需要收集银行卡信息、验证其有效性并开始计时。第一天不应发生资金扣款。使用固定周期订阅时，你要么延迟订阅开始时间，要么先进行一笔虚拟扣款再退款，要么依赖单独的授权产品。使用按需订阅，你可以创建初始扣款金额为零的订阅，验证支付方式，并在试用结束时启动周期性扣款。如果用户提前升级，你可以立即发起扣款。

### 套餐升级和降级

用户在计费周期过半时从基础套餐升级到专业套餐。使用纯周期性计费时，你要么等到下一个周期，这会让用户觉得响应缓慢；要么取消并重新创建订阅，这会丢失历史记录，还会让催收流程变得混乱。使用按需订阅，你可以立即收取按比例计算的升级差额，切换套餐，之后下一个常规周期会直接按照新价格运行。

### 附加项和超额用量

客户使用的是包含配额的基础套餐，但在当月消耗超过了配额。理想做法是在超额发生时或周期结束时，使用其已保存的支付方式收取一笔一次性超额费用。这笔费用与基础订阅扣款分开，但仍属于同一段客户关系。账务保持清晰，客户也能在一张发票中看到不同的明细项。

### 软性付费墙和打赏

有些产品希望提供周期性基础套餐，同时允许用户在周期内自愿充值任意金额。按需订阅可以自然地支持这种模式，因为你可以随时使用现有支付授权发起任意金额的扣款。

### 充值包和预付额度购买

许多 AI 产品会在订阅之外销售预付额度包。用户支付 50 美元购买 1,000 个预付额度，并在使用产品时逐步消耗。每次购买预付额度包，都是针对订阅发起的一笔按需扣款，而订阅本身则充当客户容器。

所有这些场景的共同点是：周期性合同和临时扣款都存在于同一个对象中。你不需要单独的一次性支付集成、退款流程或税务处理。按需订阅就是客户关系的基本单位。

## 按需订阅在 Dodo Payments 上如何运作

实现流程分为两个阶段。首先，创建订阅并启用按需标记。然后，每当你需要发起临时扣款时，调用扣款端点并传入金额和原因，平台会处理身份验证、结算、税务和开票。

### 创建订阅

创建订阅的请求接受一个用于表明这是按需订阅的标记。你还需要传入初始扣款金额，该金额可以为零。初始扣款为零意味着可以在不向客户收费的情况下建立客户关系；第一笔实际扣款可以发生在试用结束时、你发起临时扣款时，或周期性计费进入第一个付费周期时。

你可以在关联产品中设置周期性价格，也可以直接在请求中传入。你可以决定周期长度、货币以及要附加的元数据。平台会生成订阅标识符，你需要将它存储在应用的客户记录中。

### 发起临时扣款

订阅创建后，只要你需要为额外事项收费，就可以调用扣款端点，并传入订阅标识符、金额、货币和幂等键。平台会使用已保存的支付方式完成扣款授权和捕获，按照客户所在地区应用正确的税率，并生成关联到同一订阅的发票明细项。

如果已保存的支付方式已过期，或发卡机构拒绝扣款，该笔扣款会像其他扣款一样失败，你也会收到包含标准原因代码的失败响应。你可以重试、提示客户添加新卡，或在用户界面中展示失败信息，处理方式与一次性扣款相同。

### 处理生命周期事件

每个相关事件都会触发 Webhook：订阅创建、试用结束时订阅激活、每个周期性周期的订阅续期、临时扣款成功、临时扣款失败以及订阅取消。你的应用可以监听需要关注的事件，并相应更新本地状态。

在你的系统中，最清晰的建模方式是将订阅视为客户关系的唯一事实来源，将扣款作为其中的发票明细项。这与平台自身的处理方式一致，也能避免本地状态与计费系统逐渐不一致。

## 实用模式

有两种模式出现得非常频繁，值得完整说明。

### 试用后转付费模式

创建订阅时启用按需标记，设置初始扣款金额为零、试用期为 14 天，并配置最终的周期性价格。客户无需付款即可进入试用期。第 14 天，周期性计费开始运行，平台从已保存的支付方式中扣款，订阅随即激活。如果用户在第 14 天之前取消，订阅会结束，且不会产生任何扣款。如果用户在第 3 天希望升级，你可以发起一笔金额为升级差额的临时扣款并切换套餐，周期性计费仍会继续。

与不收集银行卡信息的免费试用相比，这种方式更有效，因为你已经验证了支付方式、建立了客户关系，并在转化时减少了摩擦。试用结束时，用户不需要再次输入卡片信息。在移动应用中实现相同的试用流程时，团队还会遇到额外问题：应用商店的订阅状态需要与你自己的状态进行同步；我们的 [RevenueCat alternatives](https://dodopayments.com/blogs/revenuecat-alternatives) 汇总介绍了通常如何处理这一层。

### 基础套餐加用量模式

客户使用的是 30 美元的基础套餐，其中包含一定配额。你的应用会持续跟踪用量。周期结束时，代码计算超额用量，并针对该金额向订阅发起一笔临时扣款。客户会在一张发票中看到基础订阅明细和超额用量明细。

如果你希望立即收取超额费用，而不是等到周期结束，可以在用量超过阈值时发起临时扣款。有些产品会按块处理：用户每消耗一块超额用量，就收取相应费用。这样既能避免月底出现一笔特别大的账单，也能让客户更早了解费用。

两种方式的机制相同。订阅保存周期性合同，临时扣款代表可变部分，平台则将它们整合到清晰的发票中。这与我们在 [combining subscriptions with usage-based billing](https://dodopayments.com/blogs/subscriptions-usage-based-billing-saas) 指南中介绍的结构相同，只是这里从订阅角度出发，而不是从计量角度出发。

## 按需订阅适合与哪些其他模式搭配

按需订阅并不适合所有计费场景。以下对比有助于确定它的适用范围。

如果你的产品完全采用周期性计费，没有超额用量、试用期或套餐变更，那么简单的周期性订阅就足够了。对于不需要按需能力的模式，加入这些能力只会增加维护成本。

如果你的产品完全基于交易，没有周期性组成部分，那么单独的结账会话或支付链接才是合适的工具，而不是订阅。只有在存在持续性客户关系时，订阅这一概念才真正有价值。

如果你的产品既有周期性合同，又包含上述任意模式----试用、升级、附加项、超额用量或预付额度充值----那么按需订阅就是合适的结构。它可以通过一个客户对象处理所有这些流程，无需创建并行集成。

创建和扣款请求的完整参考文档位于 [on-demand subscriptions guide](https://docs.dodopayments.com/developer-resources/ondemand-subscriptions)。其中包含请求和响应结构。本文则帮助你理解整体思路和常见模式。

## 常见问题

团队首次集成按需订阅时，通常会遇到以下问题。

在临时扣款中忘记使用幂等键。如果代码在网络错误后重试，却没有幂等键，就可能向客户重复扣款。请始终为每次逻辑上的扣款尝试传入一个稳定的键。

在数据模型中将临时扣款视为独立于订阅的对象。按需订阅的核心就在于它们属于同一段客户关系。请将临时扣款作为订阅记录的子项保存，以确保报表和取消流程正常运行。

没有处理失败的临时扣款。周期性部分通常有自动重试和催收机制，而临时扣款只会发起一次。如果失败，你需要向用户展示失败状态，并自行安排重试或提示客户处理。若周期性收款失败长期困扰你的业务，也值得评估底层支付通道；我们的 [GoCardless alternatives for recurring and direct debit payments](https://dodopayments.com/blogs/gocardless-alternatives) 对此进行了介绍。

跳过试用开始钩子。如果你以零金额初始扣款和试用期启动订阅，应用需要知道试用何时转为付费，以便将用户从试用状态切换到付费状态。这正是订阅激活 Webhook 的作用。

将货币硬编码。如果你支持多个地区，临时扣款的货币需要与订阅货币一致。请显式传入货币，不要依赖默认值。

## 总结

对于更简单的 SaaS 时代，纯周期性订阅是合理的模型。现代 AI 和软件产品通常同时包含试用、套餐变更、附加项、超额用量和预付额度充值，而且往往都属于同一个客户。将每一种情况建模为独立的计费组件，最终会变成一堆集成和边界情况。按需订阅将它们整合到一个对象中：既保留周期性节奏，也可以使用同一个支付授权灵活发起临时扣款。

采用成本很低，但获得的灵活性很高。如果你现在正在为 SaaS 或 AI 产品设计或重构计费体系，这就是值得采用的结构。

## 常见问题

### 按需订阅是一个产品还是两个产品？

它是单个订阅记录，包含一个周期性价格，并能够使用同一个支付授权发起临时扣款。对客户来说，他们只有一段客户关系和一张已保存的卡。对你的数据模型来说，只有一个订阅标识符，扣款则作为发票明细项存在。

### 我可以在完全不扣款的情况下启动按需订阅吗？

可以。创建订阅时，将初始扣款金额设置为零。平台会验证支付方式、创建订阅记录，第一笔实际扣款则会在周期性计费开始、试用结束或你发起临时扣款时发生。

### 临时扣款是否会经过相同的税务和合规流程？

会。订阅下的每笔扣款，无论是周期性扣款还是临时扣款，都会经过平台的税务计算和合规流程。你不需要单独处理临时扣款的 VAT、GST 或销售税。Merchant of Record 模式意味着每笔扣款的税费都会自动计算并代为缴纳。

### 如果已保存的支付方式在临时扣款时失败，会发生什么？

该笔扣款会返回失败结果，并附带标准拒付原因。平台不会像处理周期性续期那样自动重试临时扣款。你的应用需要决定是重试、提示用户添加新卡，还是展示支付失败信息。除非下一个周期也失败，否则订阅的周期性部分不会受到影响。

### 我可以将现有的周期性订阅迁移为按需订阅吗？

如果现有订阅创建时没有启用按需标记，通常需要在下一个周期边界取消并重新创建为按需订阅。具体迁移路径取决于平台配置。请将迁移与计费审核一起规划，避免客户突然遇到他们未预期的新扣款。
---
- [More Subscriptions articles](https://dodopayments.com/blogs/category/subscriptions)
- [All articles](https://dodopayments.com/blogs)