# 请求多次分账

> 使用本接口需要开启[开放接口服务](/minigame/dev/wxcloudrun/src/guide/weixin/open)

应用场景

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

接口限频：

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

## 接口地址

``` bash
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次） | 执行分账完结，或者等待超时自动分账|
