上次发布后,收到最多的反馈是:「合规检测能不能再多查几项?我被拒了 3 次,都不知道问题出在哪。」
各位开发者好:
v0.4.0 的合规预检(15 条隐私 API 规则)发布后,社区反馈高度集中在一点:
「隐私 API 是查到了,但审核还是被拒。审核意见说『进入即弹窗』、『隐私描述不明确』、『虚拟支付违规』——这些你能查吗?」
v0.4.2 的回答是:能。全查。
🆕 v0.4.2 核心升级
| 升级项 | 之前 | 现在 |
|---|---|---|
| 合规规则数 | 15 条(仅隐私 API) | 32 条(覆盖审核全场景) |
| 工具总数 | 20 个 | 28 个(新增 8 个鸿蒙设备工具) |
| Linter 规则 | 11 条 | 14 条 |
| 安全防护 | 无 | 命令注入防护 + 路径校验 |
🛡️ 重点:32 条审核规则,覆盖 2026 年最高频驳回场景
这些驳回理由,你遇到过吗?
| 驳回原因 | 对应规则 | 等级 |
|---|---|---|
| 「未配置隐私弹窗」 | CP001 | 🔴 高危 |
| 「进入即弹窗,非使用时授权」 | CP002 | 🔴 高危 |
| 「iOS 虚拟支付违规」 | CP004 | 🔴 高危 |
| 「强制登录才能使用」 | CP005 | 🔴 高危 |
| 「web-view 域名不在白名单」 | CP007 | 🔴 高危 |
| 「页面路径不存在」 | CP008 | 🔴 高危 |
| 「隐私描述不明确、不清晰」 | CP013 | 🟡 建议 |
| 「请求使用 HTTP 明文」 | CP014 | 🔴 高危 |
| 「诱导分享」 | CP003 | 🟡 建议 |
| 「UGC 未接入内容安全」 | CP006 | 🟡 建议 |
以上全部自动检测,每条规则都会给出具体文件、行号和修复方案。
实际效果演示
只需对 AI 说一句:「帮我检查这个项目能不能过审」
返回结果:
json
{
"status": "HAS_ISSUES",
"summary": "⚠️ 发现 3 个高危问题、2 个建议优化项(共检查 32 条规则)。",
"issues": [
{
"ruleId": "CP001",
"severity": "error",
"message": "未检测到隐私协议弹窗组件。2023年10月起必须配置。"
},
{
"ruleId": "CP002",
"severity": "error",
"file": "pages/index/index.js",
"line": 8,
"message": "在 onLoad 中直接调用 wx.authorize,属于「进入即弹窗」违规。"
},
{
"ruleId": "CP013",
"severity": "warning",
"file": "privacy.json",
"message": "隐私 API「wx.getLocation」的描述过于笼统(「用于提供服务」),审核大概率不通过。"
}
]
}
AI 拿到结果后,会逐条帮你修复:移动授权调用位置、补全隐私描述、创建隐私弹窗组件。
🔍 新增规则详解(精选 5 条最实用的)
CP002:首次进入即弹授权
检测逻辑: 扫描 onLoad / onShow 生命周期中是否直接调用 wx.authorize、wx.getUserProfile、wx.getLocation。
为什么被拒: 微信 2024 年起严格要求「授权必须在用户主动触发后调用」,页面加载时自动弹窗即构成违规。
修复建议: 将授权调用移至按钮的 bindtap 事件中。
CP004:虚拟支付检测(2026 新规加强版)
检测逻辑: 检测 wx.requestPayment 附近是否出现虚拟商品关键词(VIP/金币/会员/钻石),同时检查是否包含 iOS 平台判断逻辑。
2026 新规: 腾讯 2026 年 2 月 27 日公告要求,4 月 1 日前全终端接入虚拟支付组件,否则视为违规。
智能判断:
- 有
platform === 'ios'判断 → 降为 🟡 警告(提醒确认逻辑正确) - 无平台判断 → 🔴 高危(强烈建议添加)
CP005:强制登录拦截
检测逻辑: 检查首页 onLoad 中是否出现 wx.login + 跳转登录页的模式。
为什么被拒: 微信明确要求「小程序在未登录状态下也能正常浏览基本内容」。2024-2025 年,这一直是驳回量排名第一的原因。
CP013:隐私描述笼统检测
检测逻辑: 读取 privacy.json,检查每个 API 的 desc 字段是否过短(< 10 字),或包含万金油描述(如「用于提供服务」「为了更好的体验」)。
为什么被拒: 社区大量反馈「用户信息授权描述不明确、不清晰,审核失败」,反复修改仍不通过。根因正是描述太笼统。
修复建议: 具体化描述场景,例如「用于在地图上展示您附近 3 公里内的外卖商家」。
CP014:HTTP 明文请求
检测逻辑: 扫描 JS 文件中的 http:// URL(排除 localhost),确认是否处于网络请求上下文中。
为什么被拒: 微信正式版强制要求 HTTPS,HTTP 请求会被直接拦截。开发环境不报错,一旦上线就会出问题。
📋 完整 32 条规则清单
| 编号 | 规则 | 等级 |
|---|---|---|
| — | 15 条隐私 API 检测(位置/相机/相册/蓝牙/录音/支付等) | 🔴 |
| CP001 | 隐私协议弹窗缺失 | 🔴 |
| CP002 | 首次进入即弹授权 | 🔴 |
| CP003 | 诱导分享检测 | 🟡 |
| CP004 | 虚拟支付检测(含 iOS 平台判断) | 🔴 |
| CP005 | 强制登录拦截 | 🔴 |
| CP006 | 内容安全接口缺失 + UGC 类目提示 | 🟡 |
| CP007 | web-view 域名未配置 | 🔴 |
| CP008 | 页面路径不存在 | 🔴 |
| CP009 | tabBar 配置异常 | 🔴 |
| CP010 | 项目名称违规词 | 🟡 |
| CP011 | 广告组件滥用 | 🟡 |
| CP012 | 分享回调缺失 | 🟡 |
| CP013 | 隐私协议描述笼统 | 🟡 |
| CP014 | HTTP 明文请求 | 🔴 |
| CP015 | 空壳页面检测 | 🟡 |
| CP016 | sitemap 配置缺失 | 🟡 |
| CP017 | 敏感信息硬编码(手机号/身份证/密钥) | 🟡 |
🤖 新增:8 个鸿蒙设备操作工具
v0.4.2 同时新增了鸿蒙 HarmonyOS 设备自动化能力(基于华为官方 HDC 命令行):
| 工具 | 功能 |
|---|---|
harmony_list_devices | 列出已连接设备/模拟器 |
harmony_install | 安装 HAP 包 |
harmony_uninstall | 卸载应用 |
harmony_start | 启动 Ability |
harmony_log | 查看设备日志 |
harmony_file_push | 推送文件到设备 |
harmony_file_pull | 从设备拉取文件 |
harmony_ready_check | 鸿蒙环境预检 |
注:鸿蒙工具需要本地安装 HDC 并连接设备/模拟器。微信小程序相关功能不受影响。
⚡ 30 秒部署
Kiro / Cursor
json
{
"mcpServers": {
"harmony-mcp": {
"command": "npx",
"args": ["-y", "@yujiamei/harmony-mcp"]
}
}
}
Claude Desktop
编辑 claude_desktop_config.json,添加同样的配置。
Windows 用户(npx 遇到问题时)
bash
npm install -g @yujiamei/harmony-mcp
然后将 command 改为 "harmony-mcp",args 改为 []。
🔒 安全加固
v0.4.2 同时修复了一个潜在的命令注入风险:
- CLI 参数构建函数新增
escapeShellArg转义 wechat_init_project新增路径安全校验(拒绝系统目录 + 目录非空检查)- 日志系统改为异步写入 + 5MB 自动轮转
📊 数据对比
| 指标 | v0.4.0 | v0.4.2 |
|---|---|---|
| 合规规则 | 15 条 | 32 条 |
| 工具总数 | 20 个 | 28 个 |
| Linter 规则 | 11 条 | 14 条 |
| 单测数量 | 86 个 | 121 个 |
| 合规扫描耗时 | ~15ms | ~20ms |
🗺️ 下一步
- MCP Tasks 异步化 — 大项目发版不再断线(等待 SDK 7 月底正式发布)
- UniApp / Taro 深度适配 — 跨端框架编译产物的智能识别
- 社区共建 — 欢迎提交自定义合规规则的 PR
32 条规则不是凭空想出来的,每一条都对应微信开放社区中真实的驳回案例。
如果你:
- 被「隐私描述不明确」折磨过 → CP013 帮你检查描述是否足够具体
- 被「进入即弹窗」拒绝过 → CP002 帮你定位哪一行代码有问题
- 做虚拟支付但不确认是否合规 → CP004 帮你检查 iOS 平台判断
- 第一次提审心里没底 → 跑一遍
wechat_compliance_check,32 条规则全量扫描
审核前跑一遍,比审核后改五遍强。
🔗 GitHub:github.com/xiaoxuzhu30…
📦 NPM:npx -y @yujiamei/harmony-mcp
🏛️ MCP Registry:io.github.xiaoxuzhu303-prog/harmony-mcp
📖 Prompt 指令库:github.com/xiaoxuzhu30…