合约资金划转与对账
合约资金划转与对账: Agent Java SDK v0.3.0 接入、示例、参数及响应说明。
本文对应 Agent Java SDK v0.3.0、Java 8+ 与该标签的公开契约。示例在合作方后端运行;先按快速开始初始化 client。
示例前提
Java 示例共用以下导入。按快速开始初始化 client,从已保存的绑定取得 platformUserId。示例用户和订单 ID 必须替换为实际持久化值。
固定金额划转
固定金额划转使用 transfer。Direction.IN 表示从代理商侧转入 6MM,Direction.OUT 表示从 6MM 转出到代理商侧。
金额必须使用字符串或 BigDecimal,不要使用 double 或 float。
使用 agentUserId 划转
使用 platformUserId 划转
同时传 agentUserId 和 platformUserId
如果同时传两个 ID,服务端会校验它们必须指向同一个绑定用户。
请求字段
响应字段
订单确认与幂等
SDK 调用 transfer 后,agent 服务会在主路径同步调用交易核心。大多数情况下,接口返回时已经拿到交易核心的同步结果。
幂等要求:
- 同一笔业务只使用一个
agentOrderNo。 - 如果 HTTP 超时或网络异常,优先用相同
agentOrderNo查询订单,不要直接生成新订单号重复提交。 - Webhook 可能因重试被推送多次,代理商侧必须按幂等键去重。
一键全部划出
一键全部划出用于把用户在 6MM 侧可划出的余额全部转回代理商侧。
使用 platformUserId:
响应里的 amount 是实际划出金额。
冲正
冲正用于对已成功的划转订单发起反向处理。常见场景包括代理商本地订单异常、人工对账需要回滚等。
字段说明:
注意:
- 冲正不是普通取消订单,只适用于服务端支持的反向处理场景。
- 冲正也应按订单号做幂等。
- 原订单被冲正后,Webhook 可能推送原订单的
REVERSED终态。
查单
orderType 支持:
TRANSFER_INTRANSFER_OUT
响应字段:
订单列表
分页建议:
page从 1 开始。pageSize建议不超过 100。- 对账任务建议按时间窗口分页拉取,并以
orderNo去重。
来源与相关指南
资金事件回调
transfer.completed 可携带 SUCCESS、FAILED 或原单冲正后的 REVERSED;reverse.completed 为冲正订单终态;transfer.dead 表示重试仍无法确认最终状态,需要人工核对,不代表确定失败。不能仅凭事件名称判断资金已入账。
回调成功确认与资金成功不同:合法的 targetStatus=FAILED 通知完成记录后,也应返回 HTTP 2xx。资金事件按 orderType:orderId:targetStatus 在商户与 environment 范围内持久去重。