小程序端 → 获取模板ID → 用户授权 → 服务端发送 → 微信服务通知
登录微信公众平台
进入「开发管理」→「订阅消息」→「模板库」
选择行业模板或自定义模板(需符合微信内容规范)
获取模板ID
成功添加模板后,记录系统分配的模板ID(如:4ondVRxk4L20ihrJ3iI15BDK72XatGPxE0MeCVwHasQ
)
// 触发订阅授权弹窗 uni.requestSubscribeMessage({ tmplIds: ['your_template_id'], success(res) { if(res['your_template_id'] === 'accept') { console.log('用户同意订阅'); } } })
// Node.js示例(需安装wx-server-sdk) const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event) => { try { const result = await cloud.openapi.subscribeMessage.send({ touser: '用户OPENID', templateId: 'your_template_id', page: 'pages/index/index', data: { name1: { value: '商品名称' }, amount2: { value: '¥99.00' }, time3: { value: '2025-04-23 14:30' } } }) return result } catch (err) { console.error(err) } }
4. 接口认证准备
获取access_token
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
获取access_token
有效期2小时,需定时刷新
配置消息推送地址
在「开发管理」→「消息推送」配置服务器URL
// 接收订阅结果回调(Spring Boot示例) @PostMapping("/subscribe/callback") public String handleCallback(@RequestBody String body) { JSONObject json = JSON.parseObject(body); if("subscribe_msg_popup_event".equals(json.getString("Event"))){ // 处理用户订阅状态变更 } return "success"; }
支持事件类型:
用户订阅状态变更(接受/拒绝)
消息发送结果反馈
wx.requestSubscribeMessage({ tmplIds: ['支持语音的模板ID'], withAudio: true // 开启语音提醒 })