Files

51 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: mp-weixin-verify
description: fly-home customer-app(uni-app)本机小程序端自动化验证完整配方——构建、微信开发者工具 automator 连接、登录态注入、观测探针、分包坏态修复。当需要在微信小程序端走查/验证页面、注入 toc 登录态、复现砍价/下单等 C 端链路时使用。触发关键词:小程序验证、小程序走查、automator、mp-weixin 联调、小程序登录态注入。
---
# 小程序端本机验证配方(fly-home customer-app)
> 经验证链路(2026-09-17 砍价 9370 七轮探针定论,勿回退)。适用 codes/fly-home-customer-app。
## 链路总览
```
corepack pnpm dev:mp-weixin # pnpm 不在 PATH,node 默认 v24 可用;产物 dist/dev/mp-weixin
→ 微信开发者工具 cli.bat auto --project <dist> --auto-port 9420
→ miniprogram-automator connect({wsEndpoint:'ws://localhost:9420'})
→ 驱动走查 + 截图存证
```
**工具位置**:
- DevTools CLI:`F:\tools\微信开发者工具\微信web开发者工具\cli.bat`(不在默认 Program Files)
- automator:装在 `%TEMP%\mpauto`(npm i miniprogram-automator,勿入项目依赖)
## 坑(按代价排序,全部实测)
1. **服务端口必须人工开**:CLI 全家族强制"设置→安全设置→服务端口",SendKeys/配置直改都绕不过,需人工开一次
2. **kill 自动化会话会留分包坏态**:症状=该分包页面"NavBar 壳在、正文全空、wx://not-found、无 JS 异常、重连无效"。必须重启 IDE + 新开 cli auto。pagesGoods/createOrder 这类重分包页 IDE 重启后首次进入也常空渲染——先单独 reLaunch 该页等正文出现再驱动
3. **会话生命周期**:`mp.close()` 连带杀 9420 端口;复跑用 `mp.disconnect()` 只断 ws 再重起 cli auto;9420 起不来先杀僵尸 node.exe
4. dist 是否含新代码:别 grep import 名(编译改写),grep 函数体引用(如 getBargainZone)
5. 小程序请求走 `.env.development.local` 的 VITE_BASE_URL(本机联调指 localhost:8092 网关);dist project.config.json 需 urlCheck=false 才能请求 localhost
## 登录态注入(关键)
- 存储键 = `<VITE_APP_TITLE>__<版本>__TOKEN__` 大写(实测 `得依享家__2.1.0__TOKEN__`),值 = **JSON 壳** `{value, time, expire}`(dev 不加密;`wx.getStorageInfoSync` 看真键)
- **expire 必须是未来毫秒时间戳**(对齐 setToken 默认 7 天):getCache 对 `expire:null` 会当场 remove 该键——症状"注入回读 OK、首个请求即未登录",曾误判为导航擦除存储
- 写与导航分两步:evaluate 写完回读 ack → **原生 `mp.reLaunch`**(evaluate 内 wx.reLaunch 在新会话不可靠)
- USER__INFO__ 同壳同键族,USER_INFO_KEY='USER__INFO__'
- token 从 dev redis(192.168.1.101:6379 db1 ruoyi123)scan `Authorization:login:token:*` 按 payload `toc_user:<id>` 匹配;**用前 curl 实测有效性**(same-token 频繁互踢,批量测试前先重扫)
## 观测三件套(比猜页面状态快得多)
1. hook `wx.showToast` 存 `_toastlog`(业务错误/拦截全走 toast)
2. hook `wx.request` 记 url+method
3. 包 `opts.success` 截关键接口响应体(如 createBuy)
## 业务墙
- 每日发起/帮砍限额是真业务墙:联调日用满 5 次 dailyLaunchLimit 换 toc 测试用户(dev 库 userId 21/110/133/160 轮用)
- 助推手段:`UPDATE bargain_order SET current_price=1, cut_amount=原价-1`(dev 库)
相关:[[fly-home-dev-service-test]] [[gateway-whitelist-nacos]]