分账业务
业务介绍:商户分账主要用于商户将交易成功的资金,按照一定的周期,分账给其他方,可以是合作伙伴、员工、用户或者其他分润方。
参考微信文档:
微信分账:https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=26_1
支付宝分账: https://opendocs.alipay.com/open/20190308105425129272/intro
接口目录:
绑定分账用户
接口说明
适用对象:普通商户
特约商户
请求URL:https://pay.jeepay.vip/api/division/receiver/bind
请求方式:POST
请求类型:application/json
或 application/x-www-form-urlencoded
请求参数
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户号 | mchNo | 是 | String(64) | M1621873433953 | 商户号 |
应用ID | appId | 是 | String(64) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
接口代码 | ifCode | 是 | String(20) | wxpay | wxpay-微信官方接口 ; alipay-支付宝官方接口 |
接收者账号别名 | receiverAlias | 是 | String(64) | 张三 | 接收者账号别名 |
组ID | receiverGroupId | 是 | long | 10001 | 需先登录商户系统查找待加入的组ID |
分账接收账号类型 | accType | 是 | int | 1 | 分账接收账号类型: 0-个人(对私) 1-商户(对公) |
分账接收账号 | accNo | 是 | String(512) | 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 | 是 | 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': 'MD5MD5MD5MD5MD5MD5MD5MD5MD5MD5MD5MD5',
'mchNo': 'M1623997000',
'appId': '60cc3ba74ee0e6685f57e000',
'ifCode': 'wxpay',
'receiverAlias': '我的第一个账号',
'receiverGroupId': '100001',
'accType': '0',
'accNo': 'sfsfsd@qq.com',
'accName': '张三',
'relationType': 'OTHERS',
'relationTypeName': '我的员工',
'divisionProfit': '0.3'
}
返回参数
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
绑定账号ID | receiverId | 是 | long | 10001 | 绑定账号ID, 订单分账将使用该ID |
接收者账号别名 | receiverAlias | 是 | String(64) | 张三 | 接收者账号别名 |
组ID | receiverGroupId | 是 | long | 10001 | 组ID |
分账接收账号类型 | accType | 是 | int | 1 | 分账接收账号类型: 0-个人(对私) 1-商户(对公) |
分账接收账号 | accNo | 是 | String(10) | 1231312@qq.com | 分账接收账号 |
分账接收账号名称 | accName | 否 | String(30) | 张三 | 分账接收账号名称 |
分账关系类型 | relationType | 是 | String(30) | wxpay | 分账关系类型 |
渠道特殊信息 | channelExtInfo | 否 | String(256) | wxpay | 渠道特殊信息 |
默认分账比例 | divisionProfit | 是 | String(10) | wxpay | 默认分账比例 |
绑定成功时间 | bindSuccessTime | 是 | Long | 1622016572190 | 绑定成功时间 |
绑定状态 | bindState | 是 | int | 1 | 绑定状态 1-绑定成功, 0-绑定异常 |
渠道错误码 | errCode | 否 | String | ACQ.PAYMENT_AUTH_CODE_INVALID | 上游渠道返回的错误码 |
渠道错误描述 | errMsg | 否 | String | Business 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.jeepay.vip/api/division/exec
请求方式: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二者传一即可 |
是否使用系统配置的自动分账组 | useSysAutoDivisionReceivers | 是 | int | 1 | 是否使用系统配置的自动分账组: 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 | 是 | 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',
'useSysAutoDivisionReceivers': '0',
'receivers': '[{"receiverGroupId":"","receiverId":"800029","divisionProfit":"0.0001"},{"receiverGroupId":"","receiverId":"800028","divisionProfit":"0.0002"}]'
}
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
分账状态 | state | 是 | int | 2 | 分账状态 1-分账成功, 2-分账失败, 3-分账处理中,4-分账已受理 |
上游分账批次号 | channelBatchOrderId | 否 | String(30) | T20160427210604000490 | 上游分账批次号 |
系统分账批次号 | batchOrderId | 否 | String(30) | D1792435159956271105 | 系统分账批次号 v3.7.0新增 |
渠道错误码 | errCode | 否 | String | 1002 | 渠道返回错误码 |
渠道错误描述 | errMsg | 否 | String | ERROR | 渠道返回错误描述 |
返回示例数据
{
"code": 0,
"data": {
"errCode": "unknown-sub-code",
"errMsg": "Business Failed【未知的错误码ACQ.ROYALTY_ACCOUNT_NOT_EXIST】",
"state": 2
},
"msg": "SUCCESS",
"sign": "56836E18015DD7E4FAFE45380C0AD098"
}
订单分账查询
订单分账结果的查询。
接口说明
适用对象:普通商户
特约商户
请求URL:https://pay.jeepay.vip/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.jeepay.vip/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 | 0 | 0-处理成功,其他-处理有误,详见错误码 |
返回信息 | 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.jeepay.vip/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 | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
分账用户ID | receiverId | 是 | int | 800021 | 分账用户ID |
状态 | state | 是 | byte | 1 | 提现状态: 1-成功, 0-失败 |
渠道错误码 | errCode | 否 | String | 1002 | 渠道返回错误码 |
渠道错误描述 | errMsg | 否 | String | ERROR | 渠道返回错误描述 |
返回示例数据
{
"code": 0,
"data": {
"receiverId": 801
"state": 1,
},
"msg": "SUCCESS",
"sign": "5F16138F18AC367165B60CD97BA8CA27"
}