文档 / 入门
沙盒
一个不连接真实区块链网络的独立 Coinetic 实例。API、签名、支付页面、状态以及带重试的 Webhook 与生产环境完全一致 —— 只是付款为模拟。
| 项目 | 地址 |
|---|---|
| API | https://sandbox.coinetic.money |
| 后台 | https://sandbox.coinetic.money/merchant |
沙盒密钥与生产密钥相互独立。沙盒密钥在生产环境中无效,反之亦然。
通过按钮模拟付款
在沙盒支付页面中,选择币种后会出现「沙盒:测试支付」区块:
| 按钮 | 效果 |
|---|---|
| 精确支付 | 全额付款:立即变为 detected,约 3 秒后变为 paid |
| 少付 10% | 支付 90% 金额 → underpaid |
| 补付余款 | (少付之后)支付剩余部分 → paid |
| 多付 10% | 支付 110% → overpaid |
| 支付一半 | 支付 50%;再点一次 —— 第二个一半 → paid |
在自动化测试中模拟付款
同样的场景,通过请求触发。令牌是 checkout_url 中 #t= 之后的部分。必须先选好币种(在页面上选择,或使用同一令牌调用 POST /v1/invoices/{id}/select)。
HTTP
POST /sandbox/v1/invoices/{id}/pay
Authorization: Bearer <checkout_url 中 #t= 之后的令牌>
Content-Type: application/json
{"scenario": "exact"}scenario 的取值:exact、underpay、overpay、half、rest。
沙盒中的退款只需一条命令即可执行 —— POST /v1/refunds/{id}/simulate(详见「退款」一节)。
与生产环境的区别
- 账单和 Webhook 中
livemode: false。生产环境的商店必须拒绝此类账单和事件 —— 这样即使误接了沙盒,也不会发出商品。 - Webhook 和
return_url可以指向http://localhost和http://127.0.0.1。公网地址则与生产环境一样,只允许https://和 443 端口。 - AML 检查结果始终为“通过”。
- 波动性资产的汇率为来自交易所的真实汇率。
上线前需要跑通的场景
- 精确支付、少付后补付、多付、分两次各付一半。
- 账单过期:为同一订单创建新账单。
- 伪造和过期的 Webhook 会被拒绝;重复的 Webhook 不会导致重复交付。
- 在不停机的情况下轮换 Webhook 签名密钥并更换 API 密钥。