51 lines
3.5 KiB
Markdown
51 lines
3.5 KiB
Markdown
---
|
||
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]]
|