Funding 钱包
Funding 钱包: Agent Java SDK v0.3.0 接入、示例、参数及响应说明。
本文对应 Agent Java SDK v0.3.0、Java 8+ 与该标签的公开契约。示例在合作方后端运行;先按快速开始初始化 client。
示例前提
Java 示例共用以下导入。按快速开始初始化 client,从已保存的绑定取得 platformUserId。示例用户和订单 ID 必须替换为实际持久化值。
钱包查询与划转
三种余额分别使用
queryAccount 查询商户平台保证金账户,不是商户用户钱包。该接口没有 environment 参数,不能作为模拟用户资产查询。
查询模拟用户的两个平台钱包:
接口:POST /v1/agent/query-user-assets。includeFunding=true 时才请求 Funding;默认沿用原合约资产查询语义。
金额以字符串或 BigDecimal 处理,不使用 float/double。
Funding 的四种方向
创建:POST /v1/agent/wallet-transfer,SDK walletTransfer。
当前币种仅支持 USDT。固定金额必须为正数字符串,最多 8 位小数,不能用科学计数法。transferAll=true 时省略 amount,按最终响应 amount 入账;“全部”只包含可划出部分。
示例:商户向模拟 Funding 转入 10 USDT。先在商户系统保存该业务单和环境,再发请求:
Funding 全部可划出资金转至模拟 Contract:
同一操作必须沿用原 agentOrderNo;不同操作和不同环境使用不同单号。同单号改金额、用户、方向或环境会被拒绝。Funding/Contract 互转仅在同一环境内进行,不能将模拟资金转为实盘资金。
结果确认与未知结果恢复
Funding 响应通过 status 表示 SUCCESS、PROCESSING 或 FAILED,并返回 orderNo、direction、currency、amount、resultCode 等。code=0 仅表示请求处理成功,需要继续判断 status。
Funding 查单使用专用接口 POST /v1/agent/wallet-transfer-status:
该接口会恢复原资金操作状态,不能用旧 queryOrder 代替。建议保存原单环境,查单时显式传入相同值。wallet-transfer-status 省略 environment 时,服务端按原订单保存的环境查询和恢复,模拟单仍使用模拟环境;只有显式传入的环境与原单不一致时,才返回 102002(order environment mismatch)。省略环境时,响应也不带 environment 字段,不要将其解读为实盘订单。
商户本地出入账均做幂等;发起前持久化订单和余额预留,结果未知时保留待确认。Funding 接入以专用查单确认终态;不要假定旧合约划转 Webhook 或冲正方法自动适用于 Funding。
原合约划转继续保留
原 transfer、transferAllOut、reverse、queryOrder、listOrders 继续处理原合约划转流程。queryOrder 查询的是资金划转订单,listOrders 是划转对账列表;永续交易委托改用下一节的六类查询。
原资金响应使用 orderStatus;Funding 响应使用 status,不要混用。原划转 Webhook 验签使用 X-Agent-Timestamp、X-Agent-Nonce、X-Agent-Signature,签名原文是 timestamp + nonce + rawBody;先验证原始请求体,再反序列化并幂等入账。显式模拟环境通知包含 environment=SIMULATED,正式通知保持旧字段兼容。金额、单号、状态和环境需要与本地业务单核对。