> ## 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.

# 测试模式

> 尽情测试，零风险。

## 测试一切，不破坏任何东西。

在没有真实交易的情况下构建和测试整个集成。无真实扣款，无真实付款，只有安全的实验。

<CardGroup cols={2}>
  <Card title="安全" icon="shield">
    没有真实资金流动。
  </Card>

  <Card title="完整功能" icon="check">
    一切与正式模式相同。
  </Card>
</CardGroup>

***

## 测试 vs 正式

|          | 测试模式 | 正式模式 |
| -------- | ---- | ---- |
| 交易       | 模拟   | 真实扣款 |
| 资金       | 虚拟   | 真实资金 |
| 数据       | 隔离   | 生产环境 |
| Webhooks | 完全正常 | 完全正常 |
| API 行为   | 完全相同 | 完全相同 |

**切换模式：** 控制台顶部切换按钮，或在 API 调用中使用 `X-Environment` 请求头。

| 请求头值                  | 模式   |
| --------------------- | ---- |
| `X-Environment: test` | 测试模式 |
| `X-Environment: prod` | 正式模式 |

<Warning>
  在分享支付链接前，请始终确认您处于正确的模式。
</Warning>

***

## API Key 按环境区分

API Key 在创建时指定环境（测试或生产）。在控制台创建 API Key 时，您需要选择密钥所属的环境。

| 环境 | 用途    |
| -- | ----- |
| 测试 | 开发和测试 |
| 生产 | 真实支付  |

<Note>
  API Key 使用密钥对认证，而非带前缀的密钥字符串。详见 [认证](/zh/api-reference/authentication)。
</Note>

***

## 测试卡号

### 成功付款

| 卡号                    | 类型             |
| --------------------- | -------------- |
| `4576 7500 0000 0110` | Visa 信用卡       |
| `2226 9000 0000 0110` | Mastercard 信用卡 |
| `4001 7000 0000 0110` | Visa 借记卡       |
| `2226 9300 0000 0110` | Mastercard 借记卡 |

### 拒绝付款

| 卡号                    | 类型             |
| --------------------- | -------------- |
| `4576 7500 0000 0220` | Visa 信用卡       |
| `2226 9000 0000 0220` | Mastercard 信用卡 |
| `4001 7000 0000 0220` | Visa 借记卡       |
| `2226 9300 0000 0220` | Mastercard 借记卡 |

<Note>
  任意未来有效期，任意 3 位 CVC。
</Note>

***

## 测试支付方式

### 数字钱包

测试模式显示模拟界面：

* **Apple Pay** -- Safari/iOS
* **Google Pay** -- Chrome/Android

***

## 测试 Webhooks

Webhooks 在测试模式下正常触发。要测试您的 webhook 端点：

1. 在控制台 --> API 与开发 中注册 webhook 端点
2. 切换到测试模式
3. 执行触发事件的操作（创建订单、完成支付）
4. 您的端点会像正式模式一样收到 webhook 事件

***

## 测试订阅

测试完整的生命周期：

1. **创建** -- 通过测试收银台页订阅
2. **计费** -- 计费按计划发生（使用短间隔加快测试）
3. **更新** -- 通过客户门户或 API 更换方案
4. **取消** -- 测试取消流程
5. **过期** -- 验证订阅过期行为

***

## 测试数据

### 隔离

测试数据完全独立：

* 测试产品不会出现在正式模式
* 测试客户是独立的
* 测试交易不影响正式报表

### 环境同步

准备上线时，将产品从测试环境一键发布到生产环境：

```bash theme={"system"}
curl -X POST https://api.waffo.ai/v1/actions/onetime-product/publish-product \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_TOKEN" \
  -d '{
    "id": "product-uuid"
  }'
```

<Note>
  publish-product 端点是从测试到生产的单向操作，不需要 `X-Environment` 请求头。
</Note>

***

## 上线检查清单

在接受真实付款之前：

* [ ] 完成端到端测试
* [ ] 测试边界情况（拒绝的卡、失败）
* [ ] 验证 webhook 处理
* [ ] 在移动设备上测试收银台
* [ ] 添加提款账户(提款账户页)
* [ ] 完成商业信息（设置 --> 商业详情）
* [ ] 检查产品定价
* [ ] 使用 publish-product 将产品从测试同步到生产

<Card title="快速入门" icon="rocket" href="/zh/quickstart#going-live-checklist">
  完整的上线检查清单。
</Card>
