微信小程序中怎么实现一个发送订阅消息功能

发布时间:2021-07-08 16:20:08 作者:Leah
来源:亿速云 阅读:288
# 微信小程序中怎么实现一个发送订阅消息功能

微信小程序的订阅消息功能允许开发者向用户发送服务通知,提升用户留存和活跃度。以下是实现订阅消息功能的完整流程和代码示例。

---

## 一、前期准备

1. **开通订阅消息权限**  
   在小程序后台【功能】-【订阅消息】中申请模板,选择行业并获取模板ID(如:`TEMPLATE_ID`)。

2. **用户授权订阅**  
   用户需主动触发订阅行为,通过`wx.requestSubscribeMessage`API请求授权:

   ```javascript
   wx.requestSubscribeMessage({
     tmplIds: ['TEMPLATE_ID'], // 模板ID数组
     success(res) {
       if (res['TEMPLATE_ID'] === 'accept') {
         console.log('用户已授权');
       }
     }
   });

二、后端实现消息发送

订阅消息需通过后端调用微信接口发送,步骤如下:

  1. 获取Access Token
    使用AppID和AppSecret请求接口获取token:
   // 示例:Node.js获取token
   const axios = require('axios');
   const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET`;
   const { data } = await axios.get(url);
   const access_token = data.access_token;
  1. 发送订阅消息
    调用微信接口发送消息(需用户openid和模板ID):
   axios.post(`https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${access_token}`, {
     touser: 'USER_OPENID',
     template_id: 'TEMPLATE_ID',
     page: 'pages/index/index', // 跳转页面
     data: {
       thing1: { value: '消息内容' }, // 模板中的字段
       time2: { value: '2023-01-01' }
     }
   });

三、前端触发逻辑

通常在用户完成关键动作(如下单、签到)后触发订阅:

// 用户点击按钮后发送
handleSubscribe() {
  wx.requestSubscribeMessage({
    tmplIds: ['TEMPLATE_ID'],
    success() {
      // 授权成功后调用后端接口
      wx.cloud.callFunction({
        name: 'sendSubscribeMessage',
        data: { openid: '用户OPENID' }
      });
    }
  });
}

四、注意事项

  1. 模板字段匹配
    消息内容必须与申请模板时定义的字段完全一致(如thing1time2)。

  2. 用户授权时效
    用户授权一次仅允许发送一条消息,长期订阅需特殊行业权限。

  3. 测试技巧
    开发阶段可通过开发者工具的【模板消息】功能快速调试。


通过以上步骤,即可实现小程序订阅消息的完整流程。合理运用此功能可有效提升用户触达率,但需注意避免过度推送导致用户反感。 “`

文章共计约550字,涵盖从权限申请到前后端实现的完整流程,采用Markdown格式便于阅读和代码展示。

推荐阅读:
  1. 用java后端实现微信小程序订阅消息开发
  2. 微信小程序如何实现订阅消息功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

微信小程序

上一篇:微信小程序怎么批量管理部署

下一篇:PHP怎么实现有序数组的平方

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》