> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waffo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 运营 SaaS 订阅

> 设置月付/年付的周期性计费方案，支持试用期和取消处理

## 适合谁？

本指南适用于销售基于订阅的服务或商品的商户。常见场景包括：

| 业务类型    | 示例                |
| ------- | ----------------- |
| SaaS 产品 | 项目管理工具、CRM、数据分析平台 |
| 内容平台    | 在线学习、付费通讯、媒体访问    |
| 数字服务    | 云托管、API 访问、设计工具   |
| 会员制     | 社群访问、高级支持、独家内容    |

***

## 订阅生命周期

在开始设置之前，了解订阅的完整流程：

```
试用 → 活跃 → (每期续费) → 取消中 → 已取消
                  ↑                  ↓
                  └──── 重新激活 ────┘
```

| 状态          | 含义                  |
| ----------- | ------------------- |
| `trialing`  | 客户处于免费试用期           |
| `active`    | 付费客户，订阅活跃           |
| `past_due`  | 支付失败，Waffo 正在自动重试   |
| `canceling` | 客户已取消，但在当期结束前仍有访问权限 |
| `canceled`  | 订阅已完全终止             |

***

## 第一步：创建订阅商品

你通常需要为不同的定价层级创建多个商品（如基础版、专业版、企业版）。

<Steps>
  <Step title="进入商品页面">
    在 Dashboard 侧边栏中，点击 **商品**。

    <Frame>
      <img src="https://mintcdn.com/waffo/5dRlk76Jm-9Zm6Tj/images/guides/products-list.png?fit=max&auto=format&n=5dRlk76Jm-9Zm6Tj&q=85&s=2644c3ec77acc0f3c7769bdd91553232" alt="商品列表页面" width="1440" height="900" data-path="images/guides/products-list.png" />
    </Frame>
  </Step>

  <Step title="创建订阅商品">
    点击 **创建商品**，选择 **订阅** 作为商品类型。

    <Frame>
      <img src="https://mintcdn.com/waffo/5dRlk76Jm-9Zm6Tj/images/guides/create-subscription-product.png?fit=max&auto=format&n=5dRlk76Jm-9Zm6Tj&q=85&s=93bbcb12bcebb09ce92d5e961981986a" alt="创建订阅商品表单" width="1440" height="900" data-path="images/guides/create-subscription-product.png" />
    </Frame>
  </Step>

  <Step title="配置定价">
    * **名称**：你的方案名称（如「基础方案」「专业方案」）
    * **计费周期**：选择月付、季付或年付
    * **价格**：设置周期性价格
    * **描述**：此方案包含的内容

    <Tip>
      为每个计费周期创建独立的商品。例如，同一方案分别创建月付和年付版本。
    </Tip>
  </Step>

  <Step title="保存并激活">
    点击 **保存**。商品默认在测试模式下创建，准备好后再激活。
  </Step>
</Steps>

***

## 第二步：用商品分组管理定价层级

如果你有多个订阅方案（基础版、专业版、企业版），可以使用 **商品分组** 来组织它们。

<Steps>
  <Step title="创建商品分组">
    进入 **商品**，创建新的商品分组（如「定价方案」）。
  </Step>

  <Step title="添加商品到分组">
    选择属于同一组的订阅商品。这有助于将定价层级作为一个整体来管理。
  </Step>

  <Step title="配置分组设置">
    * **共享试用期**：开启后，客户在同一分组的某个方案中使用过试用期，就不能在其他方案中再次试用。
  </Step>
</Steps>

<Note>
  商品分组是可选的，但如果你提供多个定价层级，推荐使用。它可以防止试用期滥用并简化管理。
</Note>

***

## 第三步：分享并开始销售

和一次性商品一样，订阅商品也有收银台链接。

### 分享收银台链接

从商品详情页复制收银台链接：

```
https://checkout.waffo.ai/your-store/my-product
```

### 构建定价页面

在你的网站上创建一个定价页面，链接到每个方案的收银台 URL：

> 以下价格仅为示例，请根据你的实际业务设置。

| 方案   | 价格     | 收银台链接                                                  |
| ---- | ------ | ------------------------------------------------------ |
| 基础方案 | \$9/月  | `https://checkout.waffo.ai/your-store/basic-plan`      |
| 专业方案 | \$29/月 | `https://checkout.waffo.ai/your-store/pro-plan`        |
| 企业方案 | \$99/月 | `https://checkout.waffo.ai/your-store/enterprise-plan` |

***

## 第四步：监控订阅

### 订阅面板

在侧边栏点击 **订阅** 查看所有活跃、试用中和已取消的订阅。

<Frame>
  <img src="https://mintcdn.com/waffo/5dRlk76Jm-9Zm6Tj/images/guides/subscriptions-list.png?fit=max&auto=format&n=5dRlk76Jm-9Zm6Tj&q=85&s=b096a5c0a55a9a70ae469be890dd431e" alt="订阅列表页面" width="1440" height="900" data-path="images/guides/subscriptions-list.png" />
</Frame>

每个订阅显示：

* 客户邮箱
* 当前方案
* 状态（活跃、试用中、逾期未付等）
* 当前计费周期的开始和结束日期
* 下次计费日期

### 订阅详情

点击任何订阅查看详情：

* 支付历史
* 方案变更记录
* 取消详情（如适用）

***

## 第五步：处理取消

当客户取消时，订阅进入 **取消中** 状态。客户在当前计费周期结束前仍可继续使用，之后变为 **已取消**。

### 自动处理

* 客户收到取消确认邮件
* 你收到通知
* 访问权限持续到当期结束
* 不再产生后续扣费

### 在 Dashboard 中查看取消

通过筛选 **取消中** 或 **已取消** 状态来查看已离开的客户。

***

## 业务场景

<Note>
  以下为示例场景，请根据你的实际业务调整。
</Note>

### 场景 1：提供月付和年付的 SaaS

1. **创建商品**：分别创建同一方案的月付和年付版本
2. **建立分组**：创建商品分组将它们关联起来
3. **定价页面**：在你的网站上链接每个选项
4. **监控**：在分析页面追踪 MRR 和流失率

### 场景 2：提供免费试用的内容平台

1. **创建商品**：设置你的订阅方案和价格
2. **开启试用期**：设置 14 天免费试用
3. **分享链接**：客户注册后立即开始试用
4. **试用结束**：自动转为付费订阅，或在未添加支付方式时过期

### 场景 3：分层定价的 API 服务

1. **创建商品**：为每个层级创建订阅商品，设置不同的 API 调用配额和价格
2. **建立分组**：创建商品分组，开启共享试用
3. **集成 Webhook**：根据客户订阅的方案自动分配相应的 API 调用限额

***

## 进阶：代码集成

### 什么时候需要代码

* **访问控制**：在你的应用中检查订阅状态以控制功能访问
* **自动化配置**：使用 Webhook 自动创建账户或调整限额
* **自定义取消流程**：在应用内构建取消流程并收集反馈

### 关键 Webhook 事件

| 事件                       | 触发时机    |
| ------------------------ | ------- |
| `subscription.activated` | 订阅已激活   |
| `subscription.updated`   | 方案变更或续费 |
| `subscription.canceled`  | 订阅完全终止  |
| `order.completed`        | 订单完成    |
| `subscription.past_due`  | 订阅逾期未付  |

Webhook 设置请参考 [Webhook 指南](/zh/guides/webhooks)。API 详情请参考 [API 参考文档](/zh/api-reference/introduction)。

***

## 测试

<Steps>
  <Step title="开启测试模式">
    在 Dashboard 中切换到测试模式。
  </Step>

  <Step title="使用测试卡订阅">
    使用 `4576 7500 0000 0110` 模拟成功的订阅。
  </Step>

  <Step title="检查订阅">
    验证订阅出现在订阅页面中，方案和状态正确。
  </Step>

  <Step title="测试取消">
    取消测试订阅，验证它从取消中 → 已取消的状态转换。
  </Step>
</Steps>

***

## 上线清单

* [ ] 为每个方案创建了订阅商品
* [ ] 设置了商品分组（如有多个方案）
* [ ] 定价页面链接到正确的收银台 URL
* [ ] 测试订阅流程端到端正常
* [ ] 取消流程已测试
* [ ] 通知邮件效果正确
* [ ] 商品已发布到生产环境

***

## 下一步

<CardGroup cols={2}>
  <Card title="配置 Webhook 通知" icon="webhook" href="/zh/guides/webhooks">
    通过订阅事件通知实现自动化访问控制
  </Card>

  <Card title="AI 应用计费" icon="chart-line" href="/zh/guides/ai-billing">
    将订阅与按量计费相结合
  </Card>
</CardGroup>
