请求多次分账

更新时间:2024.11.13

应用场景

微信订单支付成功后,服务商代子商户发起分账请求,将结算后的钱分到分账接收方。多次分账请求仅会按照传入的分账接收方进行分账,不会对剩余的金额进行任何操作。故操作成功后,在待分账金额不等于零时,订单依旧能够再次进行分账。

● 多次分账,可以将本商户作为分账接收方直接传入,实现释放资金给本商户的功能

接口限频:

1、单个服务商(请求分账) 300QPS,如果超过频率限制,会报错FREQUENCY_LIMITED,请降低频率请求。

2、单个交易收款商户(请求分账) 30QPS,如果超过频率限制,会报错FREQUENCY_LIMITED,请降低频率请求。同时,建议对同一主体的商户拆分多个商户号进行交易,避免交易集中到单个商户。

注意:

1、对同一笔订单最多能发起50次分账请求,每次请求最多分给50个接收方。

2、服务商需确保向微信支付传输用户身份信息和账号标识信息做一致性校验已合法征得用户授权

接口说明

请求Url

https://api.mch.weixin.qq.com/secapi/pay/multiprofitsharing

是否需要证书

请求需要双向证书。 详见证书使用

请求方式

post

签名方式

HMAC-SHA256

请求参数

名称

变量名

必填

类型

示例值

描述

商户号

mch_id

string(32)

1900000100

微信支付分配的服务商商户号

子商户号

sub_mch_id

string(32)

1900000109

微信支付分配的子商户号,即分账的出资商户号。

品牌主商户号

brand_mch_id

string(32)

1900000108

当服务商开通了“连锁品牌工具”后,使用品牌供应链分账时,此参数传入品牌主商户号。传入后,分账方的分账比例,校验品牌主配置的全局分账。
使用普通分账,未开通“连锁品牌工具”的商户,可忽略此字段。

公众账号ID

appid

string(32)

wx8888888888888888

微信分配的服务商appid

子商户公众账号ID

sub_appid

string(32)

wx8888888888888888

微信分配的子商户公众账号ID

随机字符串

nonce_str

string(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

随机字符串,不长于32位。推荐随机数生成算法

签名

sign

string(64)

C380BEC2BFD727A4B6845133519F3AD6C380BEC2BFD727A4B6845133519F3AD6

签名,详见签名生成算法

签名类型

sign_type

string(32)

HMAC-SHA256

签名类型,目前只支持HMAC-SHA256

微信订单号

transaction_id

string(32)

4208450740201411110007820472

微信支付订单号

商户分账单号

out_order_no

string(64)

P20150806125346

商户系统内部的分账单号,在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号),同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@ 

分账接收方列表

receivers

string(10240)

[
{
"type": "MERCHANT_ID",
"account":"190001001",
"amount":100,
"description": "分到商户"
},
{
"type": "PERSONAL_OPENID",
"account":"86693952",
"amount":888,
"description": "分到个人"
}
]

分账接收方列表,不超过50个json对象,可以设置出资子商户作为分账接受方

点击下行的>展开字段详情

分账接收方列表

举例如下:

1<xml>
2   <appid>wx2421b1c4370ec43b</appid>
3   <mch_id>10000100</mch_id>
4   <sub_appid>wx2203b1494370e08cm</sub_appid>
5   <sub_mch_id>1415701182</sub_mch_id>
6   <nonce_str>6cefdb308e1e2e8aabd48cf79e546a02</nonce_str> 
7   <out_order_no>P20150806125346</out_order_no>
8   <transaction_id>4006252001201705123297353072</transaction_id>
9   <sign>FE56DD4AA85C0EECA82C35595A69E153</sign>
10   <sign_type>HMAC-SHA256</sign_type>
11   <receivers>
12   [
13   {
14   "type": "MERCHANT_ID",
15   "account":"190001001",
16   "amount":100,
17   "description": "分到商户"
18   },
19   {
20   "type": "PERSONAL_OPENID",
21   "account":"86693952",
22   "amount":888,
23   "description": "分到个人"
24   }
25   ]
26</receivers>
27</xml>

返回结果

名称

变量名

必填

类型

示例值

描述

返回状态码

return_code

string(32)

SUCCESS

SUCCESS/FAIL 此字段是通信标识,非交易标识

返回信息

return_msg

string(256)

参数格式校验错误

返回信息,如非空,为错误原因

以下字段在return_code为SUCCESS的时候有返回

名称

变量名

必填

类型

示例值

描述

业务结果

result_code

string(32)

SUCCESS

SUCCESS:分账申请接收成功,结果通过分账查询接口查询
FAIL :提交业务失败

错误代码

err_code

string(32)

SYSTEMERROR

列表详见错误码列表

错误代码描述

err_code_des

String(128)

系统超时

结果信息描述

商户号

mch_id

string(32)

1900000100

调用接口时提供的商户号

子商户号

sub_mch_id

string(32)

1900000109

微信支付分配的子商户号,即分账的出资商户号。

品牌主商户号

brand_mch_id

string(32)

1900000108

调用接口时提供的品牌主商户号。

公众账号ID

appid

string(32)

wx8888888888888888

调用接口提供的公众账号ID

子商户公众账号ID

sub_appid

string(32)

wx8888888888888888

微信分配的子商户公众账号ID

随机字符串

nonce_str

string(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

微信返回的随机字符串

签名

sign

string(64)

C380BEC2BFD727A4B6845133519F3AD6

微信返回的签名,详见签名算法

以下字段在return_code和result_code都为SUCCESS的时候返回

名称

变量名

必填

类型

示例值

描述

微信订单号

transaction_id

string(32)

4208450740201411110007820472

微信支付订单号

商户分账单号

out_order_no

string(64)

P20150806125346

商户系统内部的分账单号,在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号),同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@ 

微信分账单号

order_id

string(64)

3008450740201411110007820472

微信分账单号,微信支付系统返回的唯一标识

分账单状态

status

string(16)

FINISHED

分账单状态,枚举值:
PROCESSING:处理中
FINISHED:处理完成

分账接收方列表

receivers

string(10240)

内容见下方示例

分账接收方列表,json对象详细说明见下文,仅当查询分账请求结果时,存在本字段

点击下行的>展开字段详情

分账接收方列表

举例:

1<xml>
2    <return_code><![CDATA[SUCCESS]]></return_code>
3    <return_msg><![CDATA[OK]]></return_msg>
4    <result_code><![CDATA[SUCCESS]]></result_code>
5    <mch_id>10000100</mch_id>
6    <appid>wx2421b1c4370ec43b</appid>
7    <sub_mch_id>1415701182</sub_mch_id>
8    <sub_appid>wx2203b1494370e08cm</sub_appid>
9    <nonce_str>6cefdb308e1e2e8aabd48cf79e546a02</nonce_str> 
10    <out_order_no>P20150806125346</out_order_no>
11    <transaction_id>4006252001201705123297353072</transaction_id>
12    <order_id>3008450740201411110007820472</order_id>
13    <status>FINISHED</status>
14    <receivers>
15     [
16     {
17     "type": "MERCHANT_ID",
18     "account":"190001001",
19     "amount":100,
20     "description": "分到商户"
21     "detail_id": "36011111111111111111111"
22     "finish_time": "20180608170132"
23     "receiver_mchid": "1900000110"
24     "result": "SUCCESS"
25      },
26     {
27     "type": "PERSONAL_OPENID",
28     "account":"86693952",
29     "amount":888,
30     "description": "分到个人"
31     "detail_id": "36011111111111111111111"
32     "finish_time": "20180608170132"
33     "receiver_mchid": "1900000110"
34     "result": "SUCCESS"
35     }
36     ]
37    </receivers>
38    <sign>FE56DD4AA85C0EECA82C35595A69E153</sign>
39 </xml>

错误码列表

名称

描述

原因

解决方案

SYSTEMERROR

接口返回错误

系统超时

请不要更换商户分账单号,请使用相同参数再次调用API。否则可能造成资金损失

AMOUNT_OVERDUE

分账金额超限

分账金额大于可分金额或大于分账最大比例

分账金额不能大于可分金额或大于最大分账比例金额,请调整分账金额

RECEIVER_INVALID

分账接收方非法

未配置分账接收方

分账接收方在分账之前需要进行添加

INVALID_TRANSACTIONID

无效的微信支付订单号

请求参数未按指引进行填写

请求参数错误,检查原交易号是否存在或发起支付交易接口返回失败

PARAM_ERROR

参数错误

请求参数未按指引进行填写

请求参数错误,请重新检查再调用分账接口

INVALID_REQUEST

请求不合法

参数中APPID或 MCHID不存在等

请检查请求参数

OPENID_MISMATCH

Openid错误

Openid 与Appid不匹配

请检查Openid 是否正确

FREQUENCY_LIMITED

频率限制

请求过多被频率限制

该笔请求未受理,请降低频率后原单重试,请勿更换商户分账单号

ORDER_NOT_READY

订单处理中

订单处理中,暂时无法分账

订单处理中,暂时无法分账,请稍后再试

NOAUTH

无分账权限

未开通分账权限

请先开通分账

NOT_SHARE_ORDER

非分账订单

不是分账订单 无法分账

下单时请用分账的合适参数

INVALID_REQUEST

分账次数过多

分账次数超过上限(最多50次)

执行分账完结,或者等待超时自动分账

RECEIVER_HIGH_RISK

高风险接收方

分账接收方账户处于高风险状态

请联系分账接收方确认账

 

更多技术问题
技术咨询
反馈
咨询
目录
置顶