评论

小程序中集成微信服务通知

小程序集成微信服务通知

微信小程序的服务通知(Service Notification)是一种用于向用户推送重要信息的功能。它不同于消息通知,服务通知不会在微信聊天列表中显示,而是在微信的“服务通知”入口展示。

我的小程序豆子工具,就使用了服务通知,非常好用,推荐给大家。豆子工具中用户提交IP归属地,后台审核后会下发豆子点数奖励。这是一个异步操作,非常适合服务通知。服务通知特别适合那种不是马上就能获得结果的场景,或者需要经过人工审核的场景。

以下是实现微信小程序服务通知的基本步骤:

1. 开通服务通知

你需要在微信公众平台(https://mp.weixin.qq.com/)上申请并开通小程序的服务通知功能。

2. 后端服务器配置

服务通知需要通过后端服务器调用微信接口来发送。首先需要在微信公众平台获取 access_token,然后使用该 access_token 调用服务通知接口。

获取 access_token


GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

发送服务通知


POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN



请求体示例:


{
    "touser": "OPENID",
    "template_id": "TEMPLATE_ID",
    "page": "index",
    "data": {
        "first": {
            "value": "您有新的订单,请查收。",
            "color": "#173177"
        },
        "keyword1": {
            "value": "订单号: 1234567890",
            "color": "#173177"
        },
        "remark": {
            "value": "感谢您的使用。",
            "color": "#173177"
        }
    }
}

3. 模板消息管理

在微信公众平台的小程序后台,可以创建和管理模板消息。每个模板消息都有一个唯一的 template_id,用于标识不同的通知内容和格式。

创建模板消息

登录微信公众平台 -> 小程序管理 -> 功能设置 -> 模板消息管理 -> 添加模板消息。

4. 前端代码

在小程序前端,需要处理用户订阅服务通知的流程。当用户同意订阅后,会返回一个 openid,这个 openid 用于后端发送服务通知。

请求用户授权


wx.requestSubscribeMessage({
    tmplIds: ['arnId'], // 需要下发的订阅消息模板id数组
    success(res) {
        if (res['arnId'] === 'accept') {
            console.log('用户同意订阅');
            // 将用户的 openid 发送给后端,以便后续发送服务通知
            const openid = res['arnId'];
            // 这里可以将 openid 保存到数据库或者直接发送给后端
        } else {
            console.log('用户拒绝订阅');
        }
    },
    fail(err) {
        console.error(err);
    }
});

注意事项

  1. 权限控制:确保你的小程序已经获得相应的权限,并且用户已经同意接收相关的通知。
  2. 频率限制:微信对服务通知的发送频率有一定限制,避免频繁发送导致用户体验不佳。
  3. 数据保护:注意保护用户的隐私数据,不要滥用用户的信息。

通过以上步骤,你可以在微信小程序中实现服务通知功能,及时向用户推送重要的信息。

我在使用豆子工具实现服务通知过程中,发现服务通知,需要用户同意,才能有一次下发机会。每次下发新的通知,都需要用户重新点击同意按钮重新进行订阅。

更多的内容,请参考微信官方文档。

最后,发个推荐:

豆子工具是一个微信小程序,内含IP地址查询、音频格式转换、网络调试等工具。欢迎浏览收藏。


点赞 0
收藏
评论

1 个评论

  • aMu
    aMu
    12-08

    请问微信中的 服务通知 是小程序才有的功能吗?

    12-08
    赞同
    回复 1
    • 神经蛙
      神经蛙
      发表于小程序端
      12-10

      小程序中有,其它不知道

      12-10
      回复
登录 后发表内容