# CloudPay.profitSharingQuery()

> 支持端：[云函数 2.0.2](/minigame/dev/wxcloud/reference/changelog-server-sdk)

查询分账结果

## 说明

发起分账请求后，可调用此接口查询分账结果；发起分账完结请求后，可调用此接口查询分账完结的执行结果。

接口频率：80QPS
**接口说明**

此接口与微信支付原分账接口（[文档](https://pay.weixin.qq.com/doc/v2/partner/4011984717)）的不同点在于：
- 私有安全链路，免证书管理，免签名计算
- 商户号填入 sub_mch_id 字段，小程序/公众号 appid 填入 sub_appid 字段
- 免填写以下字段：mch_id、appid、sign、sign_type
- 接口入参和返回值都为 JSON 而不是 XML

### 参数说明

| 名称         | 变量名         | 必填 | 类型       | 示例值                           | 描述                                                                                                  |
|--------------|----------------|------|------------|----------------------------------|-------------------------------------------------------------------------------------------------------|
| 子商户号     | sub_mch_id     | 是   | string(32) | 1900000109                       | 微信支付分配的子商户号                                                                                |
| 微信订单号   | transaction_id | 是   | string(32) | 4208450740201411110007820472     | 微信支付订单号                                                                                        |
| 商户分账单号 | out_order_no   | 是   | string(32) | P20150806125346                  | 查询分账结果，输入申请分账时的商户分账单号； 查询分账完结的执行结果，输入发起分账完结时的商户分账单号 |
| 随机字符串   | nonce_str      | 是   | string(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串，不长于32位。推荐随机数生成算法                                                            |

### 返回值说明

| 字段名     | 变量名      | 必填 | 类型        | 示例值   | 描述                                                                             |
|------------|-------------|------|-------------|----------|----------------------------------------------------------------------------------|
| 返回状态码 | 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                       | 微信支付分配特约商户的商户号                                               |
| 随机字符串   | 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)    | SUCCESS                      | 分账单状态：
ACCEPTED—受理成功
PROCESSING—处理中
FINISHED—处理完成
CLOSED—处理失败，已关单  |
| 关单原因        | close_reason   | 否   | string(32)    | NO_AUTH                      | NO_AUTH:分账授权已解除                                                                                  |
| 分账接收方列表 | receivers      | 是   | String(10240) |                              | 分账接收方列表，json对象详细说明见下文，仅当查询分账请求结果时，存在本字段
点击行前的+展开字段详情   |
| 分账金额        | amount         | 是   | int           | 888                          | 分账完结的分账金额，单位为分， 仅当查询分账完结的执行结果时，存在本字段                                 |
| 分账描述        | description    | 是   | string(80)    | 分给商户A                    | 分账完结的原因描述，仅当查询分账完结的执行结果时，存在本字段                                            |

receivers 数组中每个对象的结构：

| 名称           | 变量名      | 必填 | 类型       | 示例值           | 描述                                                                                                                    |
|----------------|-------------|------|------------|------------------|-------------------------------------------------------------------------------------------------------------------------|
| 分账接收方账号 | account     | 是   | string(64) | 1900000109       | 类型是MERCHANT_ID时，是商户ID
类型是PERSONAL_OPENID时，是个人openid
类型是PERSONAL_SUB_OPENID时，是个人sub_openid |
| 分账金额       | amount      | 是   | int        | 888              | 分账金额，单位为分，只能为整数，不能超过原订单支付金额及最大分账比例金额                                                |
| 分账描述       | description | 是   | string(80) | 分账订单         | 分账的原因描述，分账账单中需要体现                                                                                      |
| 分账结果       | result      | 是   | string(32) | SUCCESS          | PENDING:待分账
SUCCESS:分账成功
ADJUST:分账失败待调账
RETURNED:已转回分账方
CLOSED: 已关闭                  |
| 分账完成时间   | finish_time | 是   | string(16) | 20180608170132   | 分账完成时间                                                                                                            |
| 分账失败原因   | fail_reason | 否   | string(32) | ACCOUNT_ABNORMAL | ACCOUNT_ABNORMAL:分账接收账户异常
NO_RELATION： 分账关系已解除
RECEIVER_HIGH_RISK:高风险接收方                    |

### 错误码

| 名称                  | 描述               | 原因                        | 解决方案                                                     |
|-----------------------|--------------------|-----------------------------|--------------------------------------------------------------|
| SYSTEMERROR           | 接口返回错误       | 系统超时                    | 请尝试再次掉调用API。                                        |
| ORDERNOTEXIST         | 分账单不存在       | 订单号错误或分账单号错误    | 请检查订单号或分账单号是否有误                               |
| INVALID_TRANSACTIONID | 无效transaction_id | 请求参数未按指引进行填写    | 请求参数错误，检查原交易号是否存在或发起支付交易接口返回失败 |
| PARAM_ERROR           | 参数错误           | 请求参数未按指引进行填写    | 请求参数错误，请检查参数再调用分账申请                       |
| INVALID_REQUEST       | 请求不合法         | 参数中APPID或 MCHID不存在等 | 请检查请求参数                                               |

## 代码示例

```js
// 云函数代码
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })

exports.main = async (event, context) => {
  const res = await cloud.cloudPay.profitSharingQuery({
    subMchId: '1900000109',
    transactionId: '4208450740201411110007820472',
    outOrderNo: 'P20150806125346',
    nonceStr: '5K8264ILTKCH16CQ2502SI8ZNMTM67VS'
  })
  return res
}
```

如果是共享小程序调用，appid需要按如下方式传入`cloud.cloudPay({ appid: 'xxxxx' }).profitSharingQuery({其他参数...})`，详情参考[环境共享指引文档](/minigame/dev/wxcloud/guide/resource-sharing/index)
