小程序消息订阅的整个实现流程

以下是微信小程序消息订阅的完整实现流程,分为 5个核心步骤3个关键注意事项


一、消息订阅完整流程

步骤1:配置订阅消息模板
  1. 登录微信公众平台
  2. 进入「功能」→「订阅消息」
  3. 选择公共模板或申请自定义模板,获取模板ID(如 TEMPLATE_ID
    • 示例模板内容

      复制代码
      标题:会议提醒  
      内容:  
      {{thing1.DATA}}  
      时间:{{time2.DATA}}  
      地点:{{thing3.DATA}}
步骤2:前端发起订阅请求
javascript 复制代码
// 小程序端代码(需用户主动触发,如按钮点击)
wx.requestSubscribeMessage({
  tmplIds: ['TEMPLATE_ID'], // 模板ID列表
  success(res) {
    if (res['TEMPLATE_ID'] === 'accept') {
      console.log('用户已授权');
      // 将授权结果发送至服务器保存
      wx.request({
        url: 'https://api.example.com/save-subscription',
        data: { openid: getApp().globalData.openid }
      });
    }
  },
  fail(err) {
    console.error('授权失败', err);
  }
});
步骤3:服务端存储订阅关系
javascript 复制代码
// 服务端示例(Node.js)
const saveSubscription = async (openid) => {
  // 1. 校验用户身份
  // 2. 存储关联关系:openid + 模板ID + 授权状态
  await db.collection('subscriptions').updateOne(
    { openid },
    { $set: { 'templates.TEMPLATE_ID': true } },
    { upsert: true }
  );
};
步骤4:触发消息发送
javascript 复制代码
// 服务端发送消息(需access_token)
const sendSubscribeMessage = async (openid) => {
  const accessToken = await getAccessToken(); // 获取接口调用凭证
  const result = await axios.post(
    `https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${accessToken}`,
    {
      touser: openid,
      template_id: 'TEMPLATE_ID',
      page: 'pages/index/index', // 点击消息跳转页面
      data: {
        thing1: { value: '项目评审会' },
        time2: { value: '2023-10-01 14:00' },
        thing3: { value: 'A栋201会议室' }
      }
    }
  );
  // 处理发送结果(成功/失败)
};
步骤5:消息状态监控
javascript 复制代码
// 接收微信推送的发送结果(需配置消息推送)
router.post('/message-callback', (req, res) => {
  const { MsgID, Status } = req.body;
  console.log(`消息ID: ${MsgID} 状态: ${Status}`);
  // 更新数据库中的发送状态
  res.send('success');
});

二、关键注意事项

  1. 授权时效性

    • 用户授权一次仅可发送 1条消息(一次性订阅)
    • 长期订阅需特殊资质(政务、医疗等民生类目)
  2. 触发限制

    • 必须由用户主动操作触发(如点击按钮)
    • 禁止页面加载自动弹出授权窗口
  3. 内容规范

    • 禁止营销类内容(如促销、广告)

    • 字段值需与模板匹配,示例:

      json 复制代码
      "data": {
        "thing1": { "value": "文本内容(长度≤20)" },
        "number2": { "value": 123 }
      }

三、调试工具与错误码

工具/方法 用途
微信开发者工具「订阅消息」面板 模拟授权与消息发送
真机调试 验证实际授权流程
错误码 43101 用户拒绝授权,需引导重新触发

通过以上流程可实现合规的消息订阅功能,建议结合业务场景设计友好的授权引导界面,并监控消息到达率优化用户体验。

相关推荐
说私域39 分钟前
基于AI智能名片链动2+1模式S2B2C商城小程序的企业运营能力提升策略研究
大数据·人工智能·小程序·开源·流量运营
宁夏雨科网41 分钟前
家电公司想开发小程序有没有现成的
小程序·家电·商城小程序·家电小程序·家电商城
计算机毕设指导61 小时前
基于微信小程序的咖啡店点餐系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
计算机程序设计小李同学18 小时前
婚纱摄影集成管理系统小程序
java·vue.js·spring boot·后端·微信小程序·小程序
幽络源小助理1 天前
SpringBoot+小程序高校素拓分管理系统源码 – 幽络源免费分享
spring boot·后端·小程序
Mr -老鬼1 天前
移动端跨平台适配技术框架:从发展到展望
android·ios·小程序·uni-app
内存不泄露1 天前
棋牌预约小程序系统论文
小程序
说私域2 天前
短视频私域流量池的变现路径创新:基于AI智能名片链动2+1模式S2B2C商城小程序的实践研究
大数据·人工智能·小程序
毕设源码-邱学长2 天前
【开题答辩全过程】以 基于微信小程序的松辽律所咨询系统的设计与实现为例,包含答辩的问题和答案
微信小程序·小程序
+VX:Fegn08952 天前
计算机毕业设计|基于springboot + vue物流配送中心信息化管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·小程序·课程设计