# 请求多次分账

使用本接口需要开启开放接口服务

应用场景

  • 微信订单支付成功后,服务商代子商户发起分账请求,将结算后的钱分到分账接收方。多次分账请求仅会按照传入的分账接收方进行分账,不会对剩余的金额进行任何操作。故操作成功后,在待分账金额不等于零时,订单依旧能够再次进行分账。
  • 多次分账,可以将本商户作为分账接收方直接传入,实现释放资金给本商户的功能
  • 对同一笔订单最多能发起20次多次分账请求

接口限频:

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

# 接口地址

http://api.weixin.qq.com/_/pay/multiprofitsharing

# 参数说明

名称 变量名 必填 类型 示例值 描述
子商户号 sub_mch_id string(32) 1900000109 微信支付分配的子商户号
子商户公众账号ID sub_appid string(32) wx8888888888888888 微信分配的子商户公众账号ID
随机字符串 nonce_str string(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位。推荐随机数生成算法
微信订单号 transaction_id string(32) 4208450740201411110007820472 微信支付订单号
商户分账单号 out_order_no string(64) P20150806125346 商户系统内部的分账单号,在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号),同一分账单号多次请求等同一次。只能是数字、大小写字母_-|*@
分账接收方列表 receivers String(10240) [
{
"type": "MERCHANT_ID",
"account":"190001001",
"amount":100,
"description": "分到商户"
},
{
"type": "PERSONAL_WECHATID",
"account":"86693952",
"amount":888,
"description": "分到个人"
}
]
分账接收方列表,不超过50个json对象,可以设置出资子商户作为分账接受方
点击行前的+展开字段详情

receivers 是个 JSON 序列化后的字符串,JSON 序列化前是个对象数组,其中的对象的定义如下:

名称 变量名 必填 类型 示例值 描述
-分账接收方类型 type string(32) MERCHANT_ID MERCHANT_ID:商户ID
PERSONAL_OPENID:个人openid(由父商户APPID转换得到)PERSONAL_SUB_OPENID: 个人sub_openid(由子商户APPID转换得到)
-分账接收方账号 account string(64) 86693852 类型是MERCHANT_ID时,是商户ID
类型是PERSONAL_OPENID时,是个人openid
类型是PERSONAL_SUB_OPENID时,是个人sub_openid
-分账金额 amount int 888 分账金额,单位为分,只能为整数,不能超过原订单支付金额及最大分账比例金额
-分账描述 description string(80) 分给商户A 分账的原因描述,分账账单中需要体现
-分账个人接收方姓名 name string(64) 张三 可选项,在接收方类型为个人的时可选填,若有值,会检查与 name 是否实名匹配,不匹配会拒绝分账请求
1、分账接收方类型是PERSONAL_OPENID时,是个人姓名(选传,传则校验)

# 返回值说明

字段名 变量名 必填 类型 示例值 描述
返回状态码 return_code String(16) SUCCESS SUCCESS/FAIL
返回信息 return_msg String(128) 签名失败 返回信息,如非空,为错误原因。如 签名失败、参数格式校验错误

以下字段在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 微信支付分配特约商户的商户号
公众账号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 微信分账单号,微信系统返回的唯一标识

# 错误码

名称 描述 原因 解决方案
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 分账次数过多 分账次数超过上限(最多20次) 执行分账完结,或者等待超时自动分账