Appearance
统一转账接口 ¶
TIP
可以将商户账号中资金移动到指定账户中,该产品适用商家给企业或个人发放佣金等,但有被灰黑产用于洗钱的的风险,同时风控较严,请谨慎使用。
接口说明 ¶
参数 | 说明 |
---|---|
请求URL | /unipay/allocation/transfer |
请求方式 | POST |
请求类型 | application/json |
请求参数 ¶
业务参数 ¶
提示
设置参数时,不要忘了设置公共请求参数调用说明,未做特殊说明所有接口都需要传输
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 | |
---|---|---|---|---|---|---|
商户转账号 | bizTransferNo | 是 | String | 100 | 123 | 支付时客户系统传输的分账单号,需要保证唯一,可以为字符文字组合 |
支付通道 | channel | 是 | String | 32 | ali_pay | 要进行支付的通道编码,如微信支付、支付宝支付等。见常量和状态表支付通道相关的描述 |
转账金额 | amount | 是 | BigDecimal | 8,2 | 10.12 | 要进行转账的金额,单位为元,保留两位小数 |
标题 | title | 是 | String | 100 | 转账给小刘 | |
转账原因 | description | 否 | String | 150 | 提成 | |
转账类型 | transferType | 否 | String | 20 | 123 | 微信使用,见 TransferTypeEnum |
收款人账号类型 | payeeType | 是 | String | 20 | 见TransferPayeeTypeEnum | |
收款人账号 | payeeAccount | 是 | String | 100 | ||
收款人姓名 | payeeName | 否 | String | 50 | ||
转账扩展参数 | extraParam | 否 | ChannelParam | 2048 | 预留的参数, 暂时未使用 | |
商户扩展参数 | attach | 否 | String | 500 | id=123332 | 商户扩展参数,回调时会原样返回 |
异步通知地址 | notifyUrl | 否 | String | 200 | http://abc.cn/noticeCallback | 异步通知地址 |
响应结果 ¶
通用响应参数 ¶
业务响应参数 ¶
提示
业务数据包裹在公共响应参数
中的data
字段,在code
为0
时才会有返回数据。状态码返回0只代表受理业务成功,业务是否成功需要看具体业务的返回信息
字段名 | 变量名 | 必传 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
转账号 | transferNo | 是 | String | 转账时生成的商户转账号 | |
商户转账号 | bizTransferNo | 是 | String | 发起转账时传输的转账号 | |
转账状态 | status | 是 | String | 见常量和状态表转账状态相关的描述 | |
提示信息 | errorMsg | 否 | String | 转账失败时会返回错误信息 |
HTTP请求示例 ¶
请求参数 ¶
json
{
"bizTransferNo" : "T1744338553267",
"channel" : "ali_pay",
"amount" : 0.01,
"title" : "测试支付宝转账",
"reason" : "我要转个账",
"payeeType" : "open_id",
"payeeAccount" : "-G8AkkjjVhUl_VAf",
"mchNo" : "M1723635576766",
"appId" : "M8207639754663343",
"clientIp" : "127.0.0.1",
"sign" : "5ca4acf8096100a1bdcb57c31725650a",
"reqTime" : "2025-04-11 10:29:13"
}
响应参数(成功) ¶
json
{
"code": 0,
"msg": "success",
"data": {
"bizTransferNo": "T1744341164682",
"transferNo": "DEV_T2025041111124570000027",
"status": "success"
},
"sign": "006ba2e53b97dd83cb9b61cd8d2c3160",
"resTime": "2025-04-11 11:12:47",
"traceId": "gnzS1f4ng9vn"
}
响应参数(请求失败) ¶
json
{
"code": 10506,
"msg": "验证参数错误\r\n支付金额不可小于0.01元\r\n",
"traceId": "Xhw9KrwfyEiQ"
}
响应参数(业务失败) ¶
json
{
"code": 0,
"msg": "success",
"data": {
"bizTransferNo": "T1744338553267",
"transferNo": "DEV_T2025041110291470000001",
"status": "fail",
"errorMsg": "支付宝转账失败: 参数有误openid不合法"
},
"sign": "61446c3e49675ff24dc0b8e0427c25c7",
"resTime": "2025-04-11 10:29:15",
"traceId": "bfyzoFRd2uaA"
}
SDK请求示例 ¶
提示
使用SDK可以简化接入支付的速度
java
public void aliTransfer() {
// 构建参数
TransferParam param = new TransferParam();
param.setBizTransferNo("T"+System.currentTimeMillis());
param.setTitle("测试支付宝转账");
param.setReason("我要转个账");
param.setAmount(BigDecimal.valueOf(0.1));
param.setChannel(ChannelEnum.ALIPAY.getCode());
param.setPayeeType(TransferPayeeTypeEnum.OPEN_ID.getCode());
param.setClientIp("127.0.0.1");
// 使用OpenId
param.setPayeeAccount("-G8AkkjjVhUl_VAf");
// 发起请求
DaxResult<TransferResult> execute = DaxPayKit.execute(param);
System.out.println("验签: "+ DaxPayKit.verifySign(execute));
System.out.println(JsonUtil.toJsonStr(execute));
}
回调消息通知 ¶
如果设置了异步通知地址,则订单将会在发生变动后给该地址发送通知消息,数据格式见回调和订阅消息接收, 业务数据格式与查询转账订单中的数据格式一致
通知示例 ¶
json
{
"mchNo": "M1723635576766",
"appId": "M8207639754663343",
"code": 0,
"msg": "success",
"data": {
"bizTransferNo": "TRANSFER_72486439041744596032621",
"transferNo": "DEV_T2025041410003570000004",
"outTransferNo": "20250414020070011530210076509553",
"channel": "ali_pay",
"amount": 0.1,
"title": "测试对账",
"payeeType": "user_id",
"payeeAccount": "208861219xxxxx",
"status": "success",
"finishTime": "2025-04-14 10:00:36"
},
"sign": "7b25ebb7fe34ed0c1a0cc825fb0e94d8",
"resTime": "2025-04-14 10:00:44"
}