Skip to content

统一转账接口

TIP

可以将商户账号中资金移动到指定账户中,该产品适用商家给企业或个人发放佣金等,但有被灰黑产用于洗钱的的风险,同时风控较严,请谨慎使用。

接口说明

参数说明
请求URL/unipay/allocation/transfer
请求方式POST
请求类型application/json

请求参数

业务参数

提示

设置参数时,不要忘了设置公共请求参数调用说明,未做特殊说明所有接口都需要传输

字段名变量名必填类型示例值描述
商户转账号bizTransferNoString100123支付时客户系统传输的分账单号,需要保证唯一,可以为字符文字组合
支付通道channelString32ali_pay要进行支付的通道编码,如微信支付、支付宝支付等。见常量和状态表支付通道相关的描述
转账金额amountBigDecimal8,210.12要进行转账的金额,单位为,保留两位小数
标题titleString100转账给小刘
转账原因descriptionString150提成
转账类型transferTypeString20123微信使用,见 TransferTypeEnum
收款人账号类型payeeTypeString20见TransferPayeeTypeEnum
收款人账号payeeAccountString100
收款人姓名payeeNameString50
转账扩展参数extraParamChannelParam2048预留的参数, 暂时未使用
商户扩展参数attachString500id=123332商户扩展参数,回调时会原样返回
异步通知地址notifyUrlString200http://abc.cn/noticeCallback异步通知地址

响应结果

通用响应参数

业务响应参数

提示

业务数据包裹在公共响应参数中的data字段,在code0时才会有返回数据。状态码返回0只代表受理业务成功,业务是否成功需要看具体业务的返回信息

字段名变量名必传类型示例值描述
转账号transferNoString转账时生成的商户转账号
商户转账号bizTransferNoString发起转账时传输的转账号
转账状态statusString见常量和状态表转账状态相关的描述
提示信息errorMsgString转账失败时会返回错误信息

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"
}
本文档内容版权属于济南易杯光年软件技术有限公司