请求单次分账

场景介绍

单次分账请求按照传入的分账接收方账号和资金进行分账,同时会将订单剩余的待分账金额解冻给特约商户。故操作成功后,订单不能再进行分账,也不能进行分账完结。


接口限频:

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

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

注意:

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

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

接口说明

请求Url https://api.mch.weixin.qq.com/secapi/pay/profitsharing
是否需要证书 请求需要双向证书。 详见证书使用
请求方式 post
签名方式 HMAC-SHA256
接口频率 30QPS

请求参数

名称

变量名

必填

类型

示例值

描述

商户号

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对象,不能设置出资子商户作为分账接受方

点击行前的+展开字段详情

举例如下:

<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <mch_id>10000100</mch_id>
   <sub_appid>wx2203b1494370e08cm</sub_appid>
   <sub_mch_id>1415701182</sub_mch_id>
   <nonce_str>6cefdb308e1e2e8aabd48cf79e546a02</nonce_str> 
   <out_order_no>P20150806125346</out_order_no>
   <transaction_id>4006252001201705123297353072</transaction_id>
   <sign>FE56DD4AA85C0EECA82C35595A69E153</sign>
   <sign_type>HMAC-SHA256</sign_type>
   <receivers>
     [
     {
     "type": "MERCHANT_ID",
     "account":"190001001",
     "amount":100,
     "description": "分到商户"
      },
     {
     "type": "PERSONAL_OPENID",
     "account":"86693952",
     "amount":888,
     "description": "分到个人"
     }
     ]
   </receivers>
   </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对象详细说明见下文,仅当查询分账请求结果时,存在本字段

点击行前的+展开字段详情

举例:

<xml>
    <return_code><![CDATA[SUCCESS]]></return_code>
    <return_msg><![CDATA[OK]]></return_msg>
    <result_code><![CDATA[SUCCESS]]></result_code>
    <mch_id>10000100</mch_id>
    <appid>wx2421b1c4370ec43b</appid>
    <sub_mch_id>1415701182</sub_mch_id>
    <sub_appid>wx2203b1494370e08cm</sub_appid>
    <nonce_str>6cefdb308e1e2e8aabd48cf79e546a02</nonce_str> 
    <out_order_no>P20150806125346</out_order_no>
    <transaction_id>4006252001201705123297353072</transaction_id>
    <order_id>3008450740201411110007820472</order_id>
    <status>FINISHED</status>
    <receivers>
     [
     {
     "type": "MERCHANT_ID",
     "account":"190001001",
     "amount":100,
     "description": "分到商户"
     "detail_id": "36011111111111111111111"
     "finish_time": "20180608170132"
     "receiver_mchid": "1900000110"
     "result": "SUCCESS"
      },
     {
     "type": "PERSONAL_OPENID",
     "account":"86693952",
     "amount":888,
     "description": "分到个人"
     "detail_id": "36011111111111111111111"
     "finish_time": "20180608170132"
     "receiver_mchid": "1900000110"
     "result": "SUCCESS"
     }
     ]
    </receivers>
    <sign>FE56DD4AA85C0EECA82C35595A69E153</sign>
 </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

非分账订单

不是分账订单 无法分账

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

RECEIVER_HIGH_RISK

高风险接收方

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

请联系分账接收方确认账