docs: 微信订阅消息骨架(#11)变更记录与开发交接记录

This commit is contained in:
weijuesen
2026-08-12 17:30:17 +08:00
parent bdf0515f2a
commit fa86542e55
2 changed files with 37 additions and 0 deletions
+10
View File
@@ -148,6 +148,16 @@
- 第八次部署(schema 变更前 pg_dump `silk-20260812-1720.dump`);冒烟:蚕匾/批次/饲养记录 创建→列表→删除(级联)均 200;回滚点见服务器 README(后端 `server-go-linux.old-20260812-11`、web `dist.old-20260812-3`
- 说明:批次的龄期字段为 #9 阶段系数 / #13 自动风险提示提供数据来源(后续接线);消毒记录(P1)、蚕种来源全链(P2)等未做
### 微信订阅消息骨架(计划 #11)
- 后端:`wechat_bindings` 表(用户 openid + 授权模板列表);`/wechat/binding`(查询)、`/wechat/bind`wx.login code 换 openid 并绑定)、`/wechat/subscribe`(授权/取消场景订阅);`WechatService`code2session、access_token 缓存、订阅消息发送,未配置时返回明确错误);巡检风险非绿(黄/橙/红)时异步触发推送(未配置/未授权静默跳过)
- 配置占位:`WECHAT_APPID``WECHAT_SECRET``WECHAT_TEMPLATE_ALARM``WECHAT_TEMPLATE_INSPECTION`(默认空)
- 权限:新增 `notification:read/write`
- 小程序:「消息订阅」设置页(绑定微信、授权订阅、场景/模板状态展示;模板 ID 占位 `miniapp/src/api/wechat.ts`
- 测试:微信服务 6 个单测(模板键/授权判断/数据构造/code2session/发送/错误码,TDD 红→绿)
- 第九次部署(schema 变更前 pg_dump `silk-20260812-1730.dump`);冒烟:binding 未绑定、bind 未配置返回 502 明确提示、巡检触发不崩溃;回滚点见服务器 README(旧二进制 `server-go-linux.old-20260812-12`
- 待办:提供小程序 AppID/Secret 与订阅消息模板 ID 后联调真实推送;告警触发点(告警产生时)待接入
## 2026-07-17 安全与界面优化整改
### 变更背景
+27
View File
@@ -266,6 +266,33 @@
---
## 2026-08-12 模块:微信订阅消息骨架(计划 #11)
### 做了什么
- 后端:`wechat_bindings` 表 + `/wechat/binding|bind|subscribe``WechatService`code2session、access_token 内存缓存、订阅消息发送);巡检风险非绿时异步触发(未配置/未授权静默跳过)。
- 小程序:「消息订阅」设置页(绑定、授权订阅、状态展示)。
### 思路与决策
- 按用户选择先做**骨架 + 环境变量占位**:`WECHAT_APPID/WECHAT_SECRET/WECHAT_TEMPLATE_*` 默认空,未配置时接口返回明确中文错误,触发逻辑静默跳过,不影响主流程;
- 微信订阅消息为一次性订阅:每次触发需用户先 `wx.requestSubscribeMessage` 授权,小程序端已实现授权流程,模板 ID 占位待替换;
- access_token 内存缓存(提前 60 秒过期),避免每次发送都换 token;
- 订阅消息 data 用 `thing1`(等级)/`thing2`(评分)占位字段,正式模板字段不同时改 `BuildSubscribeData`
### 验证与部署
- 微信服务 6 个单测(TDD 红→绿),`go test/build/vet` 通过;`build:weapp` 通过;
- 第九次部署(schema 变更前 pg_dump `silk-20260812-1730.dump`);冒烟:binding 未绑定、bind 返回「微信未配置」502、巡检触发不崩溃;
- 相关提交:`921b185`(后端)、`bdf0515`(小程序);回滚见服务器 README(旧二进制 `server-go-linux.old-20260812-12`)。
### 待办
- 提供 AppID/Secret + 订阅消息模板 ID,替换占位后联调真实推送;
- 告警产生时的推送触发点(当前只接了巡检)。
---
## 环境与踩坑备忘(新同事必读)
- **VPN**:开发服务器经 NetBird 访问;服务 Running 后需 `netbird up`,登录走 SSO(管理端 `115.191.19.95:6680`)。