# 获取生效中的品牌资质列表

> 接口应在服务器端调用，不可在前端（小程序、网页、APP等）直接调用，具体可参考[接口调用指南](/doc/oplatform/developers/dev/guide.md)。

接口英文名：getvalidbrandlistlogic

通过该接口可以获取当前生效中（含即将过期）的品牌资质列表，可用于发布商品时选择品牌。 

[品牌资质开发指南](/doc/store/shop/guide/catalog/brand)

## 1. 调用方式

### HTTPS 调用

```bash
POST https://api.weixin.qq.com/channels/ec/brand/valid/list/get?access_token=ACCESS_TOKEN
```

### 云调用

- 调用方法：channels.ec.brand.valid.list.get

- 出入参和 HTTPS 调用相同，调用方式可查看 [云调用](/doc/oplatform/developers/dev/cloudCall.md) 说明文档。

### 第三方调用

- 本接口支持第三方平台代微信小店商家调用。[第三方服务商调用模式介绍](/doc/store/shop/dev_before/third_party_platforms)

- 该接口所属的权限集 id 为：129

- 服务商获得其中之一权限集授权后，可通过使用 [authorizer_access_token](/doc/oplatform/developers/dev/AuthorizerAccessToken.md) 代微信小店商家进行调用，具体可查看 [第三方调用](/doc/oplatform/Third-party_Platforms/2.0/Before_Develop/call_interface.md) 说明文档。

## 2. 请求参数

### 查询参数 `Query String Parameters`

```json
[
  {
    "参数名": "access_token",
    "类型": "string",
    "必填": "是",
    "示例": "ACCESS_TOKEN",
    "说明": "接口调用凭证，可使用 [access_token](/doc/store/shop/API/apimgnt/common/api_getaccesstoken)（微信小店商家）、[authorizer_access_token](/doc/oplatform/openApi/ticket-token/api_getauthorizeraccesstoken.md)（服务商代调用）"
  }
]
```

### 请求体 `Request Payload`

```json
[
  {
    "参数名": "page_size",
    "类型": "number",
    "必填": "是",
    "示例": "10",
    "说明": "每页数量，默认 10，不超过 50"
  },
  {
    "参数名": "next_key",
    "类型": "string",
    "必填": "否",
    "示例": "",
    "说明": "翻页游标，由上次请求返回，传入时从上次返回的结果往后翻一页，不传则默认获取第一页"
  }
]
```

## 3. 返回参数

### 返回体 `Response Payload`

```json
[
  {
    "参数名": "errcode",
    "类型": "number",
    "示例": "0",
    "说明": "错误码"
  },
  {
    "参数名": "errmsg",
    "类型": "string",
    "示例": "ok",
    "说明": "错误信息"
  },
  {
    "参数名": "brands",
    "类型": "objarray",
    "示例": "",
    "说明": "生效中的品牌资质列表"
  },
  {
    "参数名": "total_num",
    "类型": "number",
    "示例": "100",
    "说明": "符合条件的品牌资质总数"
  },
  {
    "参数名": "next_key",
    "类型": "string",
    "示例": "",
    "说明": "翻页游标，返回空表示已到最后一页"
  }
]
```

">

### Res.brands(Array) `Object Payload`

生效中的品牌资质列表

```json
[
  {
    "参数名": "brand_id",
    "类型": "number",
    "说明": "品牌库中的品牌编号"
  },
  {
    "参数名": "ch_name",
    "类型": "string",
    "说明": "品牌商标中文名"
  },
  {
    "参数名": "en_name",
    "类型": "string",
    "说明": "品牌商标英文名"
  },
  {
    "参数名": "classification_no",
    "类型": "string",
    "说明": "商标分类号，取值范围 1-45"
  },
  {
    "参数名": "trade_mark_symbol",
    "类型": "number",
    "说明": "商标类型。1=R 标，2=TM 标"
  },
  {
    "参数名": "register_details",
    "类型": "object",
    "说明": "注册信息"
  },
  {
    "参数名": "application_details",
    "类型": "object",
    "说明": "申请信息"
  },
  {
    "参数名": "grant_type",
    "类型": "number",
    "说明": "商标授权类型。1=自有品牌，2=授权品牌"
  },
  {
    "参数名": "grant_details",
    "类型": "object",
    "说明": "品牌信息"
  },
  {
    "参数名": "status",
    "类型": "number",
    "说明": "品牌资质状态。3=生效中，5=即将过期"
  },
  {
    "参数名": "create_time",
    "类型": "number",
    "说明": "创建时间"
  },
  {
    "参数名": "update_time",
    "类型": "number",
    "说明": "更新时间"
  },
  {
    "参数名": "audit_result",
    "类型": "object",
    "说明": "审核结果"
  }
]
```

__register_details">

### Res.brands(Array).register_details `Object Payload`

注册信息

```json
[
  {
    "参数名": "registrant",
    "类型": "string",
    "说明": "商标注册人"
  },
  {
    "参数名": "register_no",
    "类型": "string",
    "说明": "商标注册号"
  },
  {
    "参数名": "start_time",
    "类型": "number",
    "说明": "商标注册有效期开始时间"
  },
  {
    "参数名": "end_time",
    "类型": "number",
    "说明": "商标注册有效期结束时间"
  },
  {
    "参数名": "is_permanent",
    "类型": "boolean",
    "说明": "是否长期有效"
  },
  {
    "参数名": "register_certifications",
    "类型": "array",
    "说明": "商标注册证的 file_id"
  },
  {
    "参数名": "renew_certifications",
    "类型": "array",
    "说明": "变更 / 续展证明的 file_id"
  }
]
```

__application_details">

### Res.brands(Array).application_details `Object Payload`

申请信息

```json
[
  {
    "参数名": "acceptance_time",
    "类型": "number",
    "说明": "商标申请受理时间"
  },
  {
    "参数名": "acceptance_certification",
    "类型": "array",
    "说明": "商标注册申请受理书 file_id"
  },
  {
    "参数名": "acceptance_no",
    "类型": "string",
    "说明": "商标申请号"
  }
]
```

__grant_details">

### Res.brands(Array).grant_details `Object Payload`

品牌信息

```json
[
  {
    "参数名": "grant_certifications",
    "类型": "array",
    "说明": "（旧结构）品牌销售授权书的 file_id"
  },
  {
    "参数名": "grant_level",
    "类型": "number",
    "说明": "授权级数，取值 1-3"
  },
  {
    "参数名": "start_time",
    "类型": "number",
    "说明": "（旧结构）授权有效期开始时间"
  },
  {
    "参数名": "end_time",
    "类型": "number",
    "说明": "（旧结构）授权有效期结束时间"
  },
  {
    "参数名": "is_permanent",
    "类型": "boolean",
    "说明": "（旧结构）是否长期有效"
  },
  {
    "参数名": "brand_owner_id_photos",
    "类型": "array",
    "说明": "品牌权利人证件照的 file_id"
  },
  {
    "参数名": "use_split_grant_info",
    "类型": "number",
    "说明": "是否使用分级授权书结构，大于 0 即使用"
  },
  {
    "参数名": "grant_info_lv1",
    "类型": "object",
    "说明": "一级结构"
  },
  {
    "参数名": "grant_info_lv2",
    "类型": "object",
    "说明": "二级结构"
  },
  {
    "参数名": "grant_info_lv3",
    "类型": "object",
    "说明": "三级结构"
  },
  {
    "参数名": "contact_info_list",
    "类型": "objarray",
    "说明": "联系方式"
  }
]
```

__grant_details__grant_info_lv1">

### Res.brands(Array).grant_details.grant_info_lv1 `Object Payload`

一级结构

```json
[
  {
    "参数名": "grant_certifications",
    "类型": "array",
    "说明": "（分级结构）品牌销售授权书的 file_id"
  },
  {
    "参数名": "start_time",
    "类型": "number",
    "说明": "（分级结构）授权有效期开始时间"
  },
  {
    "参数名": "end_time",
    "类型": "number",
    "说明": "（分级结构）授权有效期结束时间"
  },
  {
    "参数名": "is_permanent",
    "类型": "boolean",
    "说明": "（分级结构）是否长期有效"
  }
]
```

__grant_details__grant_info_lv2">

### Res.brands(Array).grant_details.grant_info_lv2 `Object Payload`

二级结构

```json
[
  {
    "参数名": "grant_certifications",
    "类型": "array",
    "说明": "（分级结构）品牌销售授权书的 file_id"
  },
  {
    "参数名": "start_time",
    "类型": "number",
    "说明": "（分级结构）授权有效期开始时间"
  },
  {
    "参数名": "end_time",
    "类型": "number",
    "说明": "（分级结构）授权有效期结束时间"
  },
  {
    "参数名": "is_permanent",
    "类型": "boolean",
    "说明": "（分级结构）是否长期有效"
  }
]
```

__grant_details__grant_info_lv3">

### Res.brands(Array).grant_details.grant_info_lv3 `Object Payload`

三级结构

```json
[
  {
    "参数名": "grant_certifications",
    "类型": "array",
    "说明": "（分级结构）品牌销售授权书的 file_id"
  },
  {
    "参数名": "start_time",
    "类型": "number",
    "说明": "（分级结构）授权有效期开始时间"
  },
  {
    "参数名": "end_time",
    "类型": "number",
    "说明": "（分级结构）授权有效期结束时间"
  },
  {
    "参数名": "is_permanent",
    "类型": "boolean",
    "说明": "（分级结构）是否长期有效"
  }
]
```

__grant_details__contact_info_list">

### Res.brands(Array).grant_details.contact_info_list `Object Payload`

联系方式

```json
[
  {
    "参数名": "key",
    "类型": "string",
    "说明": "联系方式类型，如联系电话"
  },
  {
    "参数名": "value",
    "类型": "string",
    "说明": "联系方式内容"
  }
]
```

__audit_result">

### Res.brands(Array).audit_result `Object Payload`

审核结果

```json
[
  {
    "参数名": "audit_id",
    "类型": "number",
    "说明": "审核单 ID"
  },
  {
    "参数名": "reject_reason",
    "类型": "string",
    "说明": "审核不通过原因"
  }
]
```

## 4. 注意事项

- 该接口仅返回状态为生效中（3）和即将过期（5）的品牌资质；
- 即将过期的品牌资质不影响商品正常售卖，但建议尽快续期；
- 该接口返回的资质文件为 file_id 格式，开发者需自己维护 file_id 和文件的映射关系。

## 5. 代码示例

请求示例

```json
{
    "page_size": 10,
    "next_key": ""
}
```

返回示例

```json
{
    "errcode": 0,
    "errmsg": "ok",
    "brands": [
        {
            "brand_id": "10000531",
            "ch_name": "尼康",
            "en_name": "Nikon",
            "classification_no": "2",
            "trade_mark_symbol": 1,
            "register_details": {
                "registrant": "注册人",
                "register_no": "注册号",
                "start_time": 1665417600,
                "end_time": 1666281600,
                "is_permanent": false,
                "register_certifications": [
                    "file_id_XXXX"
                ],
                "renew_certifications": [
                    "file_id_XXXX"
                ]
            },
            "application_details": {},
            "grant_type": 2,
            "grant_details": {
                "grant_certifications": [
                    "file_id_XXXX"
                ],
                "grant_level": 3,
                "start_time": 1664985600,
                "end_time": 1678896000,
                "is_permanent": false,
                "brand_owner_id_photos": [
                    "file_id_XXXX",
                    "file_id_XXXX"
                ]
            },
            "status": 3,
            "create_time": 1667191896,
            "update_time": 1667191937,
            "audit_result": {
                "audit_id": 12345678,
                "reject_reason": ""
            }
        }
    ],
    "total_num": 1,
    "next_key": ""
}
```

## 6. 错误码

以下是本接口的错误码列表，其他错误码可参考 [通用错误码](/doc/store/shop/dev_before/commErrCode)；调用接口遇到报错，可使用官方提供的 [API 诊断工具](https://developers.weixin.qq.com/console/devtools/debug?utm_source=api_errcode) 辅助定位和分析问题。

```json
[
  {
    "错误码": "10020050",
    "错误描述": "无权限调用该 api",
    "解决方案": "检查 access_token 与权限集授权"
  },
  {
    "错误码": "10020055",
    "错误描述": "参数有误",
    "解决方案": "检查请求参数格式"
  }
]
```

## 7. 适用范围

本接口支持「微信小店」账号类型调用。其他账号类型如无特殊说明，均不可调用。
