---
url: "https://pay.weixin.qq.com/doc/v3/partner/4020807419.md"
title: "错误码"
doc_id: 4020807419
---

>更新时间：2026.06.12

# 点金计划错误码



## 一、错误码速查表（TOP 20）

| 错误码 | 错误信息 |
| --- | --- |
| 272955405 | 特约商户号不存在或不是当前服务商的特约商户 |
| 268435461 | 参数非法 |
| 269546505 | 商户证书已过期 |
| 272955432 | 服务商未开通点金计划 |
| 272955406 | 商户类型不合法 |
| 268435463 | 参数过短 |
| 270924345 | content-type 不正确 |
| 272955397 | 特约商户未开通点金计划 |
| 269546538 | 商户号不存在 |
| 270924332 | 认证信息解析失败 |
| 270924333 | 时间戳距离当前时间超过 5 分钟 |
| 270924360 | 签名信息错误，验签失败 |
| 272955403 | 服务商未开通点金计划（不同接口返回） |
| 269546525 | 错误的签名，导致验签失败 |
| 269546507 | 商户证书序列号有误 |
| 272955449 | 请勿重复操作 |
| 270924358 | 参数中含有非法的额外参数 |
| 272955424 | 业务成功（非 0 但属正常业务态） |
| 270924346 | 签名信息非法 |
| 270924291 | 头部信息不完整 |

* * *

## 二、错误码详细排查

### 272955405 — 特约商户号不存在或不是当前服务商的特约商户

排查步骤：

1. 仔细核对 `sub_mchid`——纯数字，前后不能有空格

2. 业务侧入参做正则校验： `^[0-9]{8,10}$`

3. 用提交特约商户进件 / 二级商户进件后确认状态为 `FINISHED` 再发起点金计划操作

4. 维护「服务商号 → 旗下子商户号」关系缓存，请求前先做归属校验

5. 检查请求头 `Authorization` 中签名使用的 `mchid` 与本地配置一致，避免把测试证书带到生产


* * *

### 268435461 — 参数非法

排查步骤：

1. 看响应体 `message` 与 `detail.field` 定位具体错误字段

2. 枚举值严格大小写：

   - `operation_type` 必须是 `OPEN` / `CLOSE`（全大写）

   - `operation_pay_scene` 必须是 `JSAPI` / `MINIPROGRAM` / `JSAPI_AND_MINIPROGRAM`

   - `advertising_industry_filters` 必须从官方 36 个行业枚举中选择
3. `advertising_industry_filters` 必须是数组，最多 3 个元素

4. 业务侧使用常量定义枚举值避免拼写错误


* * *

### 269546505 — 商户证书已过期

排查步骤：

1. 登录服务商商户平台 → 账户中心 → API 安全 → API 证书，查看到期时间

2. 重新申请并下载新证书，更新到所有服务节点

3. 建议在证书过期前 30 天监控告警

4. 长期方案可迁移到微信支付公钥体系


* * *

### 272955432 — 服务商未开通点金计划

排查步骤：

1. 登录服务商商户平台 → 营销中心 → 点金计划 → 确认产品状态为「已开通」

2. 未开通需提交申请并完成资质审核

3. 检查请求头 `Authorization` 中签名使用的 `mchid` 是不是已开通点金计划的服务商号

4. 多服务商号场景下记录每个服务商号的产品开通状态


* * *

### 272955406 — 商户类型不合法

排查步骤：

1. 登录商户平台 → 账户中心 → 商户信息查看商户类型

2. 点金计划仅支持普通服务商 / 渠道商

3. 不支持：普通商户（特约商户）、电商平台服务商、从业机构（银行 / 支付机构）

4. 若主体确实是服务商但报错，检查是否签名使用了错误的 `mchid`


* * *

### 268435463 — 参数过短

排查步骤：

1. 看响应体 `message` 与 `detail.field` 定位过短字段

2. `sub_mchid` 应为 8-10 位数字字符串

3. 字段值前后先 trim 再校验长度

4. 不要把空值 / `null` / 占位符直接传给 API


* * *

### 270924345 — content-type 不正确

排查步骤：

1. POST / PATCH 请求 `Content-Type` 必须严格等于 `application/json`

2. PATCH 方法的客户端可能默认不带 `Content-Type`，需显式设置

3. HTTP 客户端封装时在 baseClient 层固定设置


* * *

### 272955397 — 特约商户未开通点金计划

排查步骤：

1. 先调「点金计划管理」 `POST /v3/goldplan/merchants/changegoldplanstatus` 用 `operation_type=OPEN` 开通后，再调其他配置接口

2. 检查 `operation_pay_scene` 与之前开通时一致（如仅开通 JSAPI 时不要操作小程序场景）

3. 业务侧维护「商户号 → 已开通场景」状态


* * *

### 269546538 — 商户号不存在

排查步骤：

1. 仔细核对服务商商户号（10 位纯数字），前后不能有空格

2. 业务侧入参做正则校验： `^[0-9]{10}$`

3. 检查请求头 `Authorization` 中签名使用的 `mchid` 与代码中传递的 `mchid` 是否一致


* * *

### 270924332 — 认证信息解析失败

排查步骤：

1. 打印完整 `Authorization` 头，逐字段检查

2. `timestamp` 必须 10 位整数秒

3. `nonce_str` 建议 \[A-Za-z0-9\] 随机串，32 位以内

4. `signature` 是标准 Base64 编码（非 URL-Safe，不能有换行）

5. 字段间用英文逗号分隔，字段值用英文双引号包裹

6. 建议使用官方 SDK


* * *

### 270924333 — 时间戳距离当前时间超过 5 分钟

排查步骤：

1. 服务器执行 `date -u` 确认 UTC 时间正确

2. 配置 NTP 同步（如 `chrony` / `ntpd`），保证误差 < 1 分钟

3. `timestamp` 必须是调用接口时点的 Unix 秒级时间戳

4. 每个请求实时生成 Authorization，不要缓存复用

5. 容器化部署确认容器时钟与宿主机一致


* * *

### 270924360 — 签名信息错误，验签失败

排查步骤：

1. 完整打印「签名前的待签名串」与「实际请求 body」

2. 核对 `apiclient_key.pem` 是当前 SP 商户号对应的私钥

3. 签名算法必须是 SHA256withRSA，编码必须是标准 Base64

4. 切换备域名 `api2.mch.weixin.qq.com` 排除链路问题

5. 建议使用官方 SDK


* * *

### 272955403 — 服务商未开通点金计划

排查步骤：

1. 与 272955432 含义相同，由不同子接口返回，处理方式一致

2. 登录服务商商户平台开通点金计划

3. 业务侧错误码归一化处理时把 272955432 / 272955403 都映射到同一类「服务商需开通点金计划」事件


* * *

### 269546525 — 错误的签名，导致验签失败

排查步骤：

1. 完整打印「签名前的待签名串」与「实际请求 body」

2. 签名串拼接： `HTTP方法\nURL路径(含 query)\n时间戳\n随机串\n请求体\n`

3. 「开通 / 关闭广告展示」是 PATCH 方法——签名串第一行必须是 `PATCH`

4. 核对 `apiclient_key.pem` 是当前 SP 商户号对应的私钥

5. 中间链路（如 Nginx / API 网关）禁止改写 body

6. 建议使用官方 SDK


* * *

### 269546507 — 商户证书序列号有误

排查步骤：

1. 用 OpenSSL 提取证书序列号确认： `openssl x509 -in apiclient_cert.pem -noout -serial`

2. 把输出中 `serial=` 后面的部分（去掉冒号、不要 `0x` 前缀）填到 `Authorization.serial_no`

3. `serial_no` 是商户 API 证书序列号，不是平台证书序列号

4. 推荐使用官方 SDK 自动管理证书序列号


* * *

### 272955449 — 请勿重复操作

排查步骤：

1. 业务侧应做幂等性处理——把该错误码当作「上次操作已成功」

2. 业务侧本地落库：维护「 `sub_mchid` × `operation_pay_scene` → 当前状态」

3. 执行前先查本地状态，已是目标状态时跳过 API 调用

4. 多实例场景用 Redis 锁，单商户单操作串行化

5. 不要无脑重试该错误码


* * *

### 270924358 — 参数中含有非法的额外参数

排查步骤：

1. 看响应体 `message` 与 `detail.field` 定位多余字段

2. 字段名是下划线风格 `snake_case`，不是驼峰 `camelCase`

3. 业务侧请求 body 序列化时使用「白名单字段」，过滤掉额外字段

4. 不同接口入参参考：

   - 点金计划管理： `sub_mchid` / `operation_type` / `operation_pay_scene`

   - 商家小票管理： `sub_mchid` / `operation_type`

   - 开通广告展示： `sub_mchid` / `advertising_industry_filters`

   - 关闭广告展示： `sub_mchid`

* * *

### 272955424 — 业务成功（非 0 但属正常业务态）

排查步骤：

1. 该错误码语义上是「成功」，业务侧应识别为「成功 / 已完成」，不要重试 / 不要告警

2. 看响应体 `message` 了解具体子原因（通常是「已是目标状态，无需操作」）

3. 监控告警规则中过滤该错误码


* * *

### 270924346 — 签名信息非法

排查步骤：

1. `Authorization` 头必须以 `WECHATPAY2-SHA256-RSA2048 ` 开头（注意空格）

2. 必须包含五个字段： `mchid` / `nonce_str` / `signature` / `timestamp` / `serial_no`

3. 字段间用英文逗号分隔，字段值用英文双引号包裹

4. `signature` 必须是标准 Base64 编码（非 URL-Safe）

5. 建议使用官方 SDK 自动生成 Authorization


* * *

### 270924291 — 头部信息不完整

排查步骤：

1. 打印实际发送的所有请求头检查

2. 必填请求头： `Authorization` / `Accept` / `User-Agent`，POST / PATCH 还需 `Content-Type`

3. 点金计划接口请求体不含敏感字段，无需 `Wechatpay-Serial`

4. PATCH 方法的客户端可能默认不带 `Content-Type`