微信小程序订阅消息
这篇解决什么
小程序订阅模版从哪拉、服务端按什么键发送。读完能对上 GET /get-subscribe-template-list 和 templateTitle,不要去建本地订阅表,也不要和公众号模版消息混用。
默认端口 48080。先完成 微信小程序登录。公众号模版见 模版消息。
示意图:列表给用户端勾选。真正推送由业务模块 RPC,没有 App 发送 HTTP。
从哪接
没有订阅模版 DO,也没有 member_subscribe_* 表。列表走微信 + Redis 缓存 wxa_subscribe_template。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 用户端列表 | GET /get-subscribe-template-list | ruoyi-office/yudao-module-member/.../controller/app/social/AppSocialUserController.java |
| 发送 RPC | SocialClientApi#sendWxaSubscribeMessage | yudao-module-system |
| 实现 | 按标题匹配再发 | SocialClientServiceImpl#sendSubscribeMessage |
| 测试发送 | POST /system/social-client/send-subscribe-message | 管理端,注释写明测试用 |
| 状态 | yudao.wxa-subscribe-message.miniprogram-state | 开发常为 developer,代码默认 formal |
views/member/ 没有订阅管理页。配置仍在系统管理 → 三方应用。dump 里也没有单独菜单。
用户端列表 @PermitAll。返回 id(微信 priTmplId)、title、content、example、type(2 一次性,3 长期)。
字段
发送 DTO:userId、userType、templateTitle、page、messages(字段 Map)。openid 从 system_social_user 按 userType + userId + socialType=34 查。
源码里已经写死的标题常量:
| 名称 | 说明 | 仓库路径 |
|---|---|---|
订单发货通知 | 交易发货 | yudao-module-mall 交易 API MessageTemplateConstants |
拼团结果通知 | 拼团 | 营销 API 同名常量类 |
充值成功通知 | 钱包充值 | yudao-module-pay API |
匹配规则是 标题和微信后台模版 title 完全相等。没有本地 templateId 列可改。
不是公众号模版表
mp_message_template 要同步、按 templateId 发送。这里不落库、按标题找。两套微信产品,两套接口。
用户必须先订阅
服务端发送前,小程序要对同一 priTmplId 调 wx.requestSubscribeMessage。只配社交客户端、用户没点允许,发送会失败。
示意图:没有 POST /sync。改标题要同时改常量。
