方案核验版 · 面向 YoYo 决策阅读

撒野去 × 微信服务号
集成优化看板

代码仓库已经具备约 85% 的微信生态骨架。下一步不是重写,而是把“服务号凭证、消息触达、关注受众、菜单导流、JSAPI 支付”接通最后一米。

85%代码骨架就绪度
4第一批快赢事项
1周Sprint 1 推荐周期
0无需重构主通知链路

一句话结论

推荐先做 P0 + P1,不要一上来铺大而全
✅ 已有

微信登录 / openid / unionid

公众号 OAuth、小程序登录、unionid 合并、支付前静默授权都已编码。

⚠️ 缺口

消息外发只是占位

通知单出口很好,但公众号 channel 当前直接 throw,需要模板/订阅通知映射。

🎯 策略

公众号做“推、传、留”

小程序负责使用,服务号负责主动触达、内容传播、会员/券与客服留存。

代码就绪度矩阵

绿色=可配置激活;黄色=小改;红色=需新模块
能力
状态
下一步
公众号 access_token / jsapi_ticket
已建
配 WECHAT_APPID / SECRET 后可调用
OAuth 登录 + 静默 openid
已建
网页授权域名 + 开关即可联调
JSAPI / Native / 小程序支付
已建
确认服务号与商户号绑定,关闭止血开关
站内通知单出口
占位
把 users.openid 接入 resolveRecipient,并实现微信 channel
公众号事件接收
未建
新增独立 official-message 端点;不要复用小程序 message-push
H5 分享卡片
签名已有
扩 jsApiList,加分享配置组件

对原方案的 4 个关键修正

这些会影响实施成本和验收方式
1

不新增 wechat_openid 列

用户表已有 users.openid。只需让通知收件人解析读取 openid,并修掉过时注释。

2

公众号事件端点要独立

现有 message-push 是小程序内容安全回调。服务号 subscribe / SCAN / CLICK 应走新端点与独立 Token/AESKey。

3

“全仓无 cron”不准确

booking 后端已有 setInterval 到期提醒样板;camp-web 缺通用调度。定时提醒要带去重字段。

4

站内信文案不能直接发微信

微信模板/订阅通知有字段约束,需要“通知类型 → 模板字段”的映射层。

推荐落地节奏

先拿最高 ROI,后做增长与留存

客户侧阻塞项

不写代码,但决定能否开工。

  • 服务号 AppID/Secret
  • 网页授权域名
  • JS 安全域名
  • 模板/订阅通知能力

消息触达 MVP

先让关键通知能发出去。

  • openid 解析
  • 1-2 个模板映射
  • 审核/订单通知

菜单导流

最快让关注者进入业务闭环。

  • 找营地
  • 预约/会员
  • 我的/入驻

支付激活

微信内 H5 真支付闭环。

  • /wechat/enabled
  • 静默授权
  • JSAPI 调起
  • 回调发权益

传播与留存

服务号长期价值。

  • 分享卡片
  • 定时提醒
  • 会员卡/券
  • 图文运营

优先级评分

业务价值 × 仓库就绪度 × 风险控制
01消息外发:最高价值,核心缺口。先覆盖审核/订单,不铺全量。
02自定义菜单:成本最低,马上承接关注者流量。
03JSAPI 支付:代码成熟,但依赖微信后台配置。
04关注受众池:先采集 openid,再通过 OAuth/带参二维码绑定用户。

三条红线

🔒openid 维度不能混:公众号 openid ≠ 小程序 mp_openid,账号合并只靠 unionid。
📣社交互动不外发:点赞、评论、报名只留站内信,避免骚扰和接口风险。
🧭公众号不重复小程序:定位为主动触达、内容传播、会员留存和客服入口。

下一步行动清单

给你和 YoYo 对齐用
1提供已认证服务号 AppID / AppSecret,并确认与小程序绑定同一开放平台。
2配置网页授权域名、JS 接口安全域名、支付商户号绑定。
3确认可用的模板消息或订阅通知类目,提供模板 ID。
1修 notifyChannels:读取 users.openid,清理过时注释。
2新增 wechatOfficialNotify 模块,先支持审核/订单模板。
3新增 official-message 端点,关注事件先入 followers 表。
4新增菜单配置脚本,并单独验 JSAPI 支付。
/api/wechat/enabled 返回 enabled:true、jsapi:true。
微信内打开 H5,静默授权后 users.openid 落库。
营地审核通过/驳回后,用户收到服务号通知。
公众号菜单可直达 H5 关键页面或小程序入口。
推荐第一批代码范围:
- luying-camp-web/lib/server/notifyChannels.ts
- luying-camp-web/lib/server/wechatOfficialNotify.ts(新增)
- luying-camp-web/app/api/wechat/official-message/route.ts(新增)
- scripts/wechat-menu-setup.mjs(新增)