Skip to main content

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

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

安全

没有真实资金流动。

完整功能

一切与正式模式相同。

测试 vs 正式

切换模式: 控制台顶部切换按钮,或在 API 调用中使用 X-Environment 请求头。
在分享支付链接前,请始终确认您处于正确的模式。

API Key 按环境区分

API Key 在创建时指定环境(测试或生产)。在控制台创建 API Key 时,您需要选择密钥所属的环境。
API Key 使用密钥对认证,而非带前缀的密钥字符串。详见 认证。

测试卡号

成功付款

拒绝付款

任意未来有效期,任意 3 位 CVC。

测试支付方式

数字钱包

测试模式显示模拟界面:
  • Apple Pay — Safari/iOS
  • Google Pay — Chrome/Android

测试 Webhooks

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

测试订阅

测试完整的生命周期:
  1. 创建 — 通过测试收银台页订阅
  2. 计费 — 续费按真实周期到期。你也可以用下方的模拟按钮自行推进一期
  3. 更新 — 通过客户门户或 API 更换方案
  4. 取消 — 测试取消流程
  5. 过期 — 验证订阅过期行为

模拟续费

在 Dashboard —> 订阅中打开一条测试订阅,用详情抽屉里的两个按钮推进一个计费周期,无需等待真实的扣款日:
  • 模拟续费成功 — 下一期按扣款成功推进。支付历史多一条成功记录,下次扣款日期后移一个周期,您的端点收到 subscription.payment_succeeded(以及 subscription.renewed)。若订阅原本处于欠费,这次恢复还会发出 subscription.recovered。
  • 模拟续费失败 — 下一期按扣款失败推进。活跃订阅变为欠费,您的端点收到 subscription.past_due。
模拟失败具有累积后果:active —> past_due —> canceled。对已欠费的订阅再失败一次会直接终止它 —— 订阅变为已取消、发出 subscription.canceled,且不可恢复。Dashboard 在每次模拟失败前都会要求二次确认。
两个按钮只在测试模式下出现,且接口对 live 订阅一律拒绝,与界面是否渲染无关。每次点击只推进一个周期 —— 不提供回退、重置,也不能一次推进多期。结果由支付通道异步回推:点击成功只表示「已触发」,不代表已生效。请稍后刷新页面查看新的支付记录、订阅状态与 webhook 投递。
过期没有对应的自助能力:需要验证过期而不想等完整周期时,把测试订单号发给支持团队,我们可以手动推进该订阅。Dashboard → Webhooks 里的「发送测试事件」只会发一条样例 payload,不会关联到你的真实测试订单。

测试数据

隔离

测试数据完全独立:
  • 测试产品不会出现在正式模式
  • 测试客户是独立的
  • 测试交易不影响正式报表

环境同步

准备上线时,将产品从测试环境一键发布到生产环境: 下面的示例使用 API Key 鉴权 —— 三个签名请求头,不是 Bearer token。X-Signature 的计算方法见 API Key 认证,或直接用 SDK 由它代签。
publish-product 端点是从测试到生产的单向操作,不需要 X-Environment 请求头。

上线检查清单

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

快速入门

完整的上线检查清单。