沙箱与模拟器
本页目录
POST
/cash/v1/merchant/exchange/orders/{orderId}/simulate 鉴权: API Key(Bearer)exchange:write沙箱 Key(ck_test_…)使用与 live 完全相同的兑换端点(报价、建单、查单),但不会触达任何真实供应商。
怎么拿到沙箱 Key
打开控制台的 开发者 → API 密钥 页(/home/developer/keys),点 创建 API 密钥,环境开关保持在 沙箱(默认就是),保留 exchange:read 与 exchange:write。沙箱 Key 同样需先通过你本人的个人身份认证(KYC)。Key 以 ck_test_ 开头,可以直接用在本站各页的「在线调试」里,也可以在 开发者 → 沙箱测试(/home/developer/sandbox)里逐个调用兑换接口——Key 只留在该页面的内存里。
沙箱的行为
- 报价来自固定的合成汇率表,收 0.5% 服务费;它是真实的服务端报价(5 分钟有效,
synthetic: true,environment: "sandbox")。 - 订单与 live 一样落库并校验(接收地址必须符合该网络格式,必须带
Idempotency-Key),但不建供应商单,入金地址是sandbox-CASH…-deposit这样的占位符,无法付款。 - 状态只在你调用上面的模拟器时改变:
deposit/processing/sending进入processing,completed完成,failed进入待对账(), 过期;对已过期的订单再发 / / / / 模拟过期后付款,订单进入 ;其他不合法的跳转会被忽略()。
参数
| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| orderId | path | string | 是 | 创建订单时返回的沙箱订单 id(或订单号)。 |
| event | body | string | 是 | deposit | processing | sending | completed | failed | expired |
| actualToAmount | body | string | 否 | 可选:记为已结算的到账金额。 |
请求示例
{
"event": "completed"
} 响应示例
{
"ok": true,
"data": {
"simulated": true,
"event": "completed",
"changed": true,
"order": {
"orderId": "<uuid>",
"status": "completed",
"environment": "sandbox"
}
}
}代码示例
cURL
curl -X POST 'https://api.moin.cash/cash/v1/merchant/exchange/orders/<orderId>/simulate' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ck_test_xxxxxxxxxxxxxxxx' \
-d '{ "event": "completed" }'