小程序上线前体检报告(v2 · 神山秘境)

AppID:wx7ec46db1834dbd14 | 类型:企业 | 生成方式:纯 AI 生成 | 日期:2026-09-17

检测岗:波波(方案/验收) | 代码基线:miniprogram-v2/ | 扫描文件数:491(排除 .out/fixtures/node_modules/tests)

0. 输入字段与取证方式

#字段取值来源
1appidwx7ec46db1834dbd14代码读取 project.config.json
2app_type企业用户确认
3code_mode纯 AI 生成用户确认
4feature_list核心链路 8 项 + 商户工作台域(共 9 项)用户确认口径
5feature_implemented7/9(足迹、商户工作台域接口断链未实现)代码接线判定
6issues_text主包 1.92MB 无分包 / 7 处接口断链 / 隐私三件套缺 / UGC 图片安全未接用户确认

取证脚本:scripts/check_v2_launch_readiness.py(只读,可复跑)

1. 加权总分

总分:2.48(A=3.00, B=1.50, C=3.00)

2. 评级(含红线压制)

3. 维度评分

维度权重维度分已评子项公式子项分布状态
A 功能完整性40%3.00(3+3+3+3)/4A1=3, A2=3, A3=3, A4=3需修
B 性能基线35%1.50(2+1)/2B1=未评估, B2=2, B3=1, B4=未评估危险
C 合规安全25%3.00(1+4+4)/3C1=1🔴, C2=N/A, C3=4, C4=4红线

4. 🔴 红线清单(1 项)

  1. C1 隐私协议:代码中三件套零痕迹 —— __usePrivacyCheck__ 0 处、wx.requirePrivacyAuthorize 0 处、onNeedPrivacyAuthorization 0 处、agreePrivacyAuthorization 0 处、wx.getPrivacySetting 0 处。仅存在 pages/agreement 静态文案页,未与隐私授权机制接线。按口径「3 件全缺 → 1⭐」判红线。
  2. 改判通道:若微信公众平台后台已配置《用户隐私保护指引》并填写版本号,请出示后台截图 → 改判 4⭐(缺代码侧弹窗),红线解除。

5. 🟠 危险清单(2 项)

  1. B3 分包合理性:app.json subPackages = 0,主包源码 1966.5 KB = 1.92 MB ≥ 1.8 MB → 按口径「无分包且主包 ≥1.8MB → 1⭐」
  2. B2 主包体积:1.92 MB ∈ [1.8, 2.0)MB → 2⭐。其中 .wxss 772.9 KB(占 39.3%)、.ts 651.1 KB、.wxml 465.4 KB
  3. ⚠️ 量纲声明:此数为源码体积,非编译后上传包。编译压缩后通常更小,但也可能因 npm 构建产物反超。B2/B3 的终值须以微信开发者工具「代码依赖分析」为准;若编译后 ≥2MB,B2 直接触发红线(1⭐)。

6. 🟡 预警清单(4 项)

子项判据(客观事实)
A1 = 3⭐(77.8%)9 项功能实现 7 项:足迹域 /api/miniapp/footprints、商户工作台域 /api/miniapp/key-tasks/*(6 处)在后端无对应路由,真值为 /api/miniapp/user/footprints、/api/miniapp/workbench/key-tasks/*。前端 request.ts 为 BASE_URL + path 直拼、无路径重写层 → 运行时必 404
A2 = 3⭐主链路(商品/下单/支付/核销/评价)接口静态全通,但零运行时验证,未达「0 错误」的 5⭐ 门槛,按保守不给 4-5⭐
A3 = 3⭐try 119 / catch 191 / fail 回调 204 覆盖广,但用户友好提示薄弱:showToast 仅 12 处、showModal 4 处(93 页摊薄),全局 unhandledrejection 兜底 0 处 → 仅核心路径有提示
A4 = 3⭐达标 2 项:wx.login ✅、requestPayment ✅;部分:onShareAppMessage 仅 1 页(trip-detail)、onShareTimeline 0;缺失:requestSubscribeMessage 0 处。加分项:requiredPrivateInfos: ["getLocation"] + permission.scope.userLocation.desc 已声明且用途描述完整

7. 🔵 观察清单(2 项)

8. ⚪ 未评估清单(2 项)

N/A:C2 用户授权 —— 全仓 wx.getUserInfo 0 处、wx.getPhoneNumber 0 处、官方 button 组件 0 处 → 判定为无任何用户信息获取(静默登录 wx.login + 后端换取),按口径标 N/A,不计维度分。

9. ⛔ P 分级

P0(必修)

  1. C1 隐私协议三件套:app.json 加 __usePrivacyCheck__: true + 接 wx.requirePrivacyAuthorize / onNeedPrivacyAuthorization 弹窗 + 后台配置隐私保护指引版本。(4h)
  2. [工程补充项 · 不占星值但必修] 7 处接口断链:key-tasks/*(6 处)、footprints(1 处)。不修则足迹页与商户工作台页运行时 404。(1h,改前端路径常量即可)

P1(建议修)

  1. B3 拆分包:按 tabBar 四域(home/selection/local/profile)+ 商户工作台 + 评价域切 subPackages,主包只留四 tab。(1d)
  2. B2 压主包:.wxss 772.9 KB 是最大头,抽离全局样式重复段、清未使用选择器,目标 <1.5MB。(0.5d)

P1.5

(0 项)

P2(可后续)

  1. A1 补 /user/footprints、/workbench/key-tasks 路径(与 P0-2 同一动作)
  2. A2 主链路跑一次真机全链路验证
  3. A3 加全局 unhandledrejection 兜底 + 提升 toast 覆盖
  4. A4 补 requestSubscribeMessage(订单状态通知)+ 关键页 onShareAppMessage

10. 3 天 SOP

日上午下午输出
D1C1 隐私协议三件套接入(4h)7 处断链路径修正(1h)+ 开发者工具编译,取真实主包体积红线解除;B2/B3 取到编译真值
D2B3 拆分包(tab 四域 + 工作台 + 评价)B2 清 .wxss 冗余B = 1.50 → 3.50~4.00
D3A2 真机全链路 + 体验评分取 B1A3 全局兜底 + A4 订阅消息A = 3.00 → 4.00;预计总分 3.9~4.2

11. 修复后预估

子项当前修复动作修复后档位
A13⭐断链修正5⭐(9/9)🔵
A23⭐真机验证通过4⭐🔵
A33⭐全局兜底 + toast 覆盖4⭐🔵
A43⭐补订阅消息 + 分享4⭐🔵
B1未评估体验评分补测待重跑—
B22⭐压到 <1.5MB4⭐🔵
B31⭐拆 6 个分包5⭐🔵
B4未评估补测待重跑—
C11⭐🔴三件套5⭐🔵
C2N/A—N/A—
C34⭐补 mediaCheckAsync + 关闭降级放行5⭐🔵
C44⭐核对 ICP/类目5⭐🔵

修复后(假设 B1=4⭐、B4=4⭐):A = (5+4+4+4)/4 = 4.25;B = (4+4+5+4)/4 = 4.25;C = (5+5+5)/3 = 5.00

→ 加权 = 4.25×0.40 + 4.25×0.35 + 5.00×0.25 = 1.70 + 1.4875 + 1.25 = 4.44 → 🟢 可上

12. 数字自洽性校验

A = (3+3+3+3)/4 = 3.00 ✅ | B = (2+1)/2 = 1.50(B1/B4 未评估双剔除)✅ | C = (1+4+4)/3 = 3.00(C2 N/A 剔除)✅

加权 = 3.00×0.40 + 1.50×0.35 + 3.00×0.25 = 1.20 + 0.525 + 0.75 = 2.475 → 2.48 ✅

13. 本报告口径边界(必读)