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

# 测试

> 上线前测试你的 Kyren Pay 集成

使用本页测试你的集成，不要假设未公开支持的环境或密钥类型。

## 当前环境模型

| 项目          | 当前行为                        |
| ----------- | --------------------------- |
| 生产 API      | `https://api.kyren.top`     |
| 生产 API 密钥前缀 | `kyren_live_`               |
| 自助测试密钥      | 商户控制台目前不提供                  |
| Staging 访问  | 仅在 Kyren 提供 Base URL 和凭证后可用 |

<Warning>
  除非 Kyren 已向你提供对应环境的凭证，否则不要向任意 Staging URL 发送测试流量。
</Warning>

## 测试 API 密钥

使用目标环境实际签发的 API 密钥：

```bash theme={null}
curl https://api.kyren.top/v1/products \
  -H "x-api-key: kyren_live_xxxxxxxxxxxxxxxxxxxx"
```

## 测试卡号

只有在 Kyren 已向你提供 Staging 或可测试环境，或为你的商户启用可测试支付网关时，才应使用以下卡号。不要假设这些卡号会在生产收银台中产生确定性的测试结果。

| 卡号                    | 行为   |
| --------------------- | ---- |
| `4242 4242 4242 4242` | 支付成功 |
| `4000 0000 0000 0002` | 卡被拒绝 |
| `4000 0000 0000 9995` | 余额不足 |

对于所有测试卡：

* 使用任意未来的过期日期（如 `12/28`）
* 使用任意 3 位 CVV（如 `123`）
* 使用任意持卡人姓名
* 使用任意账单地址

## 测试微信支付 / 支付宝

二维码支付行为取决于商户绑定的网关配置。验证异步状态更新时，请使用 Kyren 为目标环境提供的凭证，或配合回调模拟。

## 测试 Webhook

在本地测试 Webhook 时，可以使用 [ngrok](https://ngrok.com) 等隧道工具暴露本地服务器：

```bash theme={null}
# 启动本地 Webhook 处理服务
node server.js  # 监听 3000 端口

# 在另一个终端创建隧道
ngrok http 3000
```

然后在控制台中将 ngrok URL 配置为你的 Webhook 端点：

```
https://abc123.ngrok.io/webhooks/kyren
```

<Tip>
  正式上线前，记得将 Webhook URL 更新为你的生产环境端点。
</Tip>

## 上线检查清单

切换到生产环境前，请确保你已经完成以下步骤：

<Steps>
  <Step title="替换 API 密钥">
    使用 `api.kyren.top` 对应的生产密钥
  </Step>

  <Step title="更新接口地址">
    如果 Kyren 向你提供了 Staging Base URL，请从该地址切换到 `api.kyren.top`
  </Step>

  <Step title="更新 Webhook URL">
    在控制台中设置生产环境的 Webhook 端点
  </Step>

  <Step title="验证 Webhook 签名">
    确保你的服务器正确验证 `X-Kyren-Signature` 请求头
  </Step>

  <Step title="优雅处理错误">
    测试各种错误场景，确保你的应用能正确处理
  </Step>
</Steps>
