昊天数据V4
  1. 支付网关接口
昊天数据V4
  • 扫码POS接口
    • 获取设备支付参数
    • 公共参数&签名
    • 交易记录查询
    • 汇总查询
    • 退款订单查询
    • 支付订单查询
    • 发起退款
    • 设备初始化
    • 设备支付
  • 支付网关接口
    • 签名规则
    • 统一下单
    • 统一退款
    • 发起转账
    • 分账业务
    • 线上支付说明
  1. 支付网关接口

分账业务

业务介绍:商户分账主要用于商户将交易成功的资金,按照一定的周期,分账给其他方,可以是合作伙伴、员工、用户或者其他分润方。
参考微信文档:
**微信分账:**https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=26_1
支付宝分账: https://opendocs.alipay.com/open/20190308105425129272/intro
接口目录:
绑定分账用户
接口说明
适用对象:普通商户 特约商户
请求URL:https://pay.haotiandate.com/api/division/receiver/bind
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
字段名变量名必填类型示例值描述
商户号mchNo是String(30)M1621873433953商户号
应用IDappId是String(24)60cc09bce4b0f1c0b83761c9应用ID
接口代码ifCode是String(10)wxpaywxpay-微信官方接口 ; alipay-支付宝官方接口
接收者账号别名receiverAlias是String(64)张三接收者账号别名
组IDreceiverGroupId是long10001需先登录商户系统查找待加入的组ID
分账接收账号类型accType是int1分账接收账号类型: 0-个人(对私) 1-商户(对公)
分账接收账号accNo是String(10)1231312@qq.com分账接收账号, 微信个人是openid, 支付宝可以是userId或登录名
分账接收账号名称accName否String(30)张三微信选填(当填入则验证),支付宝账号必填
分账关系类型relationType是String(30)wxpay分账关系类型:
SERVICE_PROVIDER:服务商
STORE:门店
STAFF:员工
STORE_OWNER:店主
PARTNER:合作伙伴
HEADQUARTER:总部
BRAND:品牌方
DISTRIBUTOR:分销商
USER:用户
SUPPLIER:供应商
CUSTOM:自定义
分账关系类型名称relationTypeName否String(30)wxpay当relationType=CUSTOM 必填
渠道特殊信息channelExtInfo否String(256)wxpay渠道特殊信息
默认分账比例divisionProfit是String(10)wxpay若分账30% 则填入 0.3
请求时间reqTime是long1622016572190请求接口时间,13位时间戳
接口版本version是String(3)1.0接口版本号,固定:1.0
签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法
签名类型signType是String(32)MD5签名类型,目前只支持MD5方式
请求示例数据
{
 'version': '1.0',
'reqTime': '1622016572190',
'signType': 'MD5',
'sign': 'MD5MD5MD5MD5MD5MD5MD5MD5MD5MD5MD5MD5',
'mchNo': 'M1623997000',
'appId': '60cc3ba74ee0e6685f57e000',
'ifCode': 'wxpay',
'receiverAlias': '我的第一个账号',
'receiverGroupId': '100001',
'accType': '0',
'accNo': 'sfsfsd@qq.com',
'accName': '张三',
'relationType': 'OTHERS',
'relationTypeName': '我的员工',
'divisionProfit': '0.3' 
}
返回参数
字段名变量名必填类型示例值描述
返回状态code是int00-处理成功,其他-处理有误,详见错误码
返回信息msg否String(128)签名失败具体错误原因,例如:签名失败、参数格式校验错误
签名信息sign否String(32)CCD9083A6DAD9A2DA9F668C3D4517A84对data内数据签名,如data为空则不返回
返回数据data否String(512){}返回下单数据,json格式数据
data数据格式
字段名变量名必填类型示例值描述
绑定账号IDreceiverId是long10001绑定账号ID, 订单分账将使用该ID
接收者账号别名receiverAlias是String(64)张三接收者账号别名
组IDreceiverGroupId是long10001组ID
分账接收账号类型accType是int1分账接收账号类型: 0-个人(对私) 1-商户(对公)
分账接收账号accNo是String(10)1231312@qq.com分账接收账号
分账接收账号名称accName否String(30)张三分账接收账号名称
分账关系类型relationType是String(30)wxpay分账关系类型
渠道特殊信息channelExtInfo否String(256)wxpay渠道特殊信息
默认分账比例divisionProfit是String(10)wxpay默认分账比例
绑定成功时间bindSuccessTime是Long1622016572190绑定成功时间
绑定状态bindState是int1绑定状态 1-绑定成功, 0-绑定异常
渠道错误码errCode否StringACQ.PAYMENT_AUTH_CODE_INVALID上游渠道返回的错误码
渠道错误描述errMsg否StringBusiness Failed 失败上游渠道返回的错误描述
返回示例数据
{
    "code": 0,
    "data": {
        "accName": "张三",
        "accNo": "sfsfsd@qq.com",
        "accType": 0,
        "appId": "60cc3ba74ee0e6685f57eb1e",
        "bindState": 0,
        "divisionProfit": 0.3,
        "errCode": "NOAUTH",
        "errMsg": "无分账权限",
        "ifCode": "wxpay",
        "mchNo": "M1623997351",
        "receiverAlias": "我的第一个账号",
        "receiverGroupId": 100001,
        "relationType": "OTHERS",
        "relationTypeName": "我的员工"
    },
    "msg": "SUCCESS",
    "sign": "552CB91FA1E1DB378A534B377E4E9403"
}

发起订单分账#

当订单下单时传入的分账模式 divisionMode = 2商户手动分账(解冻商户金额),支持商户手动发起订单分账。
注意:需要在订单支付完成后(建议1分钟后)调用分账接口。

接口说明#

适用对象:普通商户 特约商户
请求URL:https://pay.haotiandate.com/api/division/exec
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
字段名变量名必填类型示例值描述
商户号mchNo是String(30)M1621873433953商户号
应用IDappId是String(24)60cc09bce4b0f1c0b83761c9应用ID
支付订单号payOrderId否String(30)P20160427210604000490支付中心生成的支付订单号,与mchOrderNo二者传一即可
商户单号mchOrderNo否String(30)20160427210604000490商户生成的支付单号,与payOrderId二者传一即可
是否使用系统配置的自动分账组useSysAutoDivisionReceivers是int1是否使用系统配置的自动分账组: 0-否 1-是
分账接收者账号列表receivers否String(512)[]接收者账号列表(JSONArray 转换为字符串类型)
仅当useSysAutoDivisionReceivers=0 时该字段值有效。
参考:
方式1: 按账号维度
[{
receiverId: 800001,
divisionProfit: 0.1, //(实际分账比例 如分账10%传入0.1, 若不填入则使用系统默认配置值)
divisionAmount: 100, //(实际分账金额,单位:分,与分账比例二选一, 若比例和金额两个都填写,以分账金额为准。)
}]
方式2: 按组维度
[{
receiverGroupId: 100001, //(该组所有 当前订单的渠道账号并且可用状态的全部参与分账)
divisionProfit: 0.1 (每个账号的分账比例, 若不填入则使用系统默认配置值, 建议不填写)
}]

注意: 分账的比例和金额不支持共传,若同时存在将会导致分账计算金额错误,接口调用时请先确定一种计算方式
请求时间reqTime是long1622016572190请求接口时间,13位时间戳
接口版本version是String(3)1.0接口版本号,固定:1.0
签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法
签名类型signType是String(32)MD5签名类型,目前只支持MD5方式
请求示例数据#
{
 'version': '1.0',
'reqTime': '1622016572190',
'signType': 'MD5',
'sign': '1',
'mchNo': 'M1623997351',
'appId': '60cc3ba74ee0e6685f57eb1e',
'payOrderId': 'P202108271011463510002',
'useSysAutoDivisionReceivers': '0',
'receivers': '[{"receiverGroupId":"","receiverId":"800029","divisionProfit":"0.0001"},{"receiverGroupId":"","receiverId":"800028","divisionProfit":"0.0002"}]' 
}
字段名变量名必填类型示例值描述
返回状态code是int00-处理成功,其他-处理有误,详见错误码
返回信息msg否String(128)签名失败具体错误原因,例如:签名失败、参数格式校验错误
签名信息sign否String(32)CCD9083A6DAD9A2DA9F668C3D4517A84对data内数据签名,如data为空则不返回
返回数据data否String(512){}返回下单数据,json格式数据
data数据格式
字段名变量名必填类型示例值描述
分账状态state是int2分账状态 1-分账成功, 2-分账失败
上游分账批次号channelBatchOrderId否String(30)T20160427210604000490上游分账批次号
渠道错误码errCode否String1002渠道返回错误码
渠道错误描述errMsg否StringERROR渠道返回错误描述
返回示例数据
{
    "code": 0,
    "data": {
        "errCode": "unknown-sub-code",
        "errMsg": "Business Failed【未知的错误码ACQ.ROYALTY_ACCOUNT_NOT_EXIST】",
        "state": 2
    },
    "msg": "SUCCESS",
    "sign": "56836E18015DD7E4FAFE45380C0AD098"
}
订单分账查询
订单分账结果的查询。

接口说明#

适用对象:普通商户 特约商户
请求URL:https://pay.haotiandate.com/api/division/query
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded

请求参数#

| 字段名| 变量名| 必填| 类型| 示例值| 描述|
| 商户号| mchNo| 是| String(64)| M1621873433953| 商户号|
| 应用ID| appId| 是| String(64)| 60cc09bce4b0f1c0b83761c9| 应用ID|
| 支付订单号| payOrderId| 否| String(30)| P20160427210604000490| 支付中心生成的支付订单号,与mchOrderNo二者传一即可|
| 商户单号| mchOrderNo| 否| String(64)| 20160427210604000490 | 商户生成的支付单号,与payOrderId二者传一即可|
| 系统分账批次号| batchOrderId| 是| String(30)| D1622016572190| 分账接口返回的系统分账批次号|
| 分账接收者ID| receiverId| 否| long| 80000021 | 非必填,若传入则仅查询该ID的分账结果|
| 请求时间 | reqTime| 是| long | 1622016572190 | 请求接口时间,13位时间戳|
| 接口版本| version| 是| String(3)| 1.0| 接口版本号,固定:1.0|
| 签名| sign| 是| String(32)| C380BEC2BFD727A4B6845133519F3AD6| 签名值,详见签名算法|
| 签名类型| signType| 是| String(32)| MD5| 签名类型,目前只支持MD5或RSA2方式|
请求示例数据#
{
 'version': '1.0',
'reqTime': '1622016572190',
'signType': 'MD5',
'sign': '1',
'mchNo': 'M1623997351',
'appId': '60cc3ba74ee0e6685f57eb1e',
'payOrderId': 'P202108271011463510002',
'batchOrderId': 'D99832829483234'
| 字段名| 变量名| 必填| 类型| 示例值| 描述|
| 返回状态| code| 是| int| 0| 0-处理成功,其他-处理有误,详见错误码|
| 返回信息| msg| 否| String(128)| 签名失败 具体错误原因,例如:签名失败、参数格式校验错误|
| 签名信息| sign| 否| String(32)| CCD9083A6DAD9A2DA9F668C3D4517A84| 对data内数据签名,如data为空则不返回|
| 返回数据| data| 否| String(512)| {}| 返回下单数据,json格式数据|

data数据格式#

字段名 变量名 必填 类型 示例值 描述
支付系统订单号 payOrderId 是 Stirng P92332433423442 支付系统订单号
系统分账批次号 batchOrderId 是 String(30) D20160427210604000490 系统分账批次号
上游分账批次号 channelBatchOrderId 否 String(30) TGES202106040 上游分账批次号,可能为空
详细信息 records 否 String JSON数组,String类型 详细信息
records数据格式
| 字段名| 变量名| 必填| 类型| 示例值| 描述|
| 分账记录ID| recordId| 是| Stirng 1007| 分账记录ID|
| 状态 state| 否| int| 1| 状态: 0-待分账 1-分账成功, 2-分账失败, 3-分账处理中,4-| 分账已受理|
| 分账接收者ID| receiverId| 否| Long| 800001| 分账接收者ID|
组ID receiverGroupId 否| Long 9801 组ID|
| 分账接收者别名| receiverAlias 否| String| 张三 分账接收者别名|
| 分账接收账号| accNo 否| String 628480039999330009 分账接收账号|
| 分账接收账号名称| accName 否| String 张三 分账接收账号名称|
| 分账接收账号类型| accType 否| int| 1 0-个人 1-商户|
| 系统分账批次号| batchOrderId| 否 String D1000001 系统分账批次号|
| 上游分账批次号| channelBatchOrderId| 否| String(30) TGES202106040 上游分账批次号,可能为空|
| 计算该接收方的分账金额| calDivisionAmount| 否| String 1908| 计算该接收方的分账金额,单位分|
| 实际分账比例| divisionProfit| 否| Decimal 0.200000| 实际分账比例|

返回示例数据#

{
"code":0,
"data":{
"batchOrderId":"D1792435159956271105",
"records":"[{\"accName\":\"A\",\"accNo\":\"A\",\"accType\":0,\"batchOrderId\":\"D1792435159956271105\",\"calDivisionAmount\":1980,\"divisionProfit\":0.200000,\"receiverAlias\":\"A\",\"receiverGroupId\":100001,\"receiverId\":800001,\"recordId\":1007,\"state\":1},{\"accName\":\"B\",\"accNo\":\"B\",\"accType\":0,\"batchOrderId\":\"D1792435159956271105\",\"calDivisionAmount\":990,\"divisionProfit\":0.100000,\"receiverAlias\":\"B\",\"receiverGroupId\":100001,\"receiverId\":800002,\"recordId\":1008,\"state\":1}]"
},
"msg":"SUCCESS",
"sign":"ABA5F4300D536E10CCB1FC677847773D"
}
查询分账用户的可用余额
调用该接口实时查询渠道侧的分账用户的可用余额。

接口说明#

适用对象:普通商户 特约商户
请求URL:https://pay.haotiandate.com/api/division/receiver/channelBalanceQuery
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded

请求参数#

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo 是 String(64) M1621873433953 商户号
应用ID appId 是 String(64) 60cc09bce4b0f1c0b83761c9 应用ID
分账用户ID receiverId 是 Long 800021 分账用户ID(创建成功后返回)
请求时间 reqTime 是 long 1622016572190 请求接口时间,13位时间戳
接口版本 version 是 String(3) 1.0 接口版本号,固定:1.0
签名 sign 是 String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法
签名类型 signType 是 String(32) MD5 签名类型,目前只支持MD5或RSA2方式

请求示例数据#

{
 'version': '1.0',
'reqTime': '1622016572190',
'signType': 'MD5',
'sign': '1',
'receiverId': '800021',
'appId': '60cc3ba74ee0e6685f57eb1e'
}
字段名变量名必填类型示例值描述
返回状态code是int 00-处理成功,其他-处理有误,详见错误码
返回信息msg否String(128)签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息sign否String(32)CCD9083A6DAD9A2DA9F668C3D4517A84 对data内数据签名,如data为空则不返回
返回数据data否String(512){}返回下单数据,json格式数据
data数据格式
| 字段名| 变量名| 必填| 类型| 示例值| 描述|
| 分账用户ID| receiverId| 是| int| 800021| 分账用户ID|
| 余额| balanceAmount| 是| Long| 20| 余额, 单位:分|

返回示例数据#

{
    "code": 0,
    "data": {
        "balanceAmount": 0,
        "receiverId": 800021
    },
    "msg": "SUCCESS",
    "sign": "5F16138F18AC367165B60CD97BA8CA27"
}
对分账用户的渠道余额发起提现
调用该接口实时调起三方的提现接口, 将实时到结算银行卡。 建议调用前先调用余额查询接口。

接口说明#

适用对象:普通商户 特约商户
请求URL:https://pay.haotiandate.com/api/division/receiver/channelBalanceCashout
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded

请求参数#

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo 是 String(64) M1621873433953 商户号
应用ID appId 是 String(64) 60cc09bce4b0f1c0b83761c9 应用ID
分账用户ID receiverId 是 Long 800021 分账用户ID(创建成功后返回)
提现金额 cashoutAmount 是 Long 100 提现金额,单位分
请求时间 reqTime 是 long 1622016572190 请求接口时间,13位时间戳
接口版本 version 是 String(3) 1.0 接口版本号,固定:1.0
签名 sign 是 String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法
签名类型 signType 是 String(32) MD5 签名类型,目前只支持MD5或RSA2方式

请求示例数据#

{
 'version': '1.0',
'reqTime': '1622016572190',
'signType': 'MD5',
'sign': '1',
'receiverId': 800021,
'cashoutAmount': 10,
'appId': '60cc3ba74ee0e6685f57eb1e'
}
字段名变量名必填类型示例值描述
返回状态code是int00-处理成功,其他-处理有误,详见错误码
返回信息msg否String(128)签名失败具体错误原因,例如:签名失败、参数格式校验错误
签名信息sign否String(32)CCD9083A6DAD9A2DA9F668C3D4517A84对data内数据签名,如data为空则不返回
返回数据data否String(512){}返回下单数据,json格式数据

data数据格式#

字段名变量名必填类型示例值描述
分账用户IDreceiverId是int800021分账用户ID
状态state是byte1提现状态: 1-成功, 0-失败
渠道错误码errCode否String 1002渠道返回错误码
渠道错误描述errMsg否String ERROR渠道返回错误描述

返回示例数据#

{
    "code": 0,
    "data": {
        "receiverId": 801
        "state": 1,
    },
    "msg": "SUCCESS",
    "sign": "5F16138F18AC367165B60CD97BA8CA27"
}
修改于 2025-05-07 10:57:21
上一页
发起转账
下一页
线上支付说明
Built with