微信小程序订阅消息接口踩坑记

10月12日,微信在小程序模板消息能力方面公布了一项重大调整。原有的模板消息将升级为「订阅消息」,支持一次性和长期性订阅消息,用户可以主动订阅或退订。所有消息由“服务通知”下发,并附带小程序外链入口,支持用户点击消息进入小程序。而模板消息将于2020年1月10日下线。今天在二手市场模块我也修改了一些代码逻辑体验了一下订阅消息的发送方式,以下是一些记录:

1、开通功能

首先需在小程序后台开通订阅消息功能,然后在模版库里选择对应的模版
2019103108121092
但现在模版库里订阅消息模版很少,有需要的话得自己去申请

2、触发方式

2.8.2 版本开始,用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。

目前只测试了点击行为,支付回调未测试。点击行为之后需在小程序内调用

wx.requestSubscribeMessage(Object object)方法

传递的参数为tmplIds,就是第一步设置的模版ID,类型为数组
调用成功后会返回

属性 类型 说明
errMsg String 接口调用成功时errMsg值为’requestSubscribeMessage:ok’
TEMPLATE_ID String [TEMPLATE_ID]是动态的键,即模板id,值包括’accept’、’reject’、’ban’。’accept’表示用户同意订阅该条id对应的模板消息,’reject’表示用户拒绝订阅该条id对应的模板消息,’ban’表示已被后台封禁。例如 { errMsg: “requestSubscribeMessage:ok”, zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: “accept”} 表示用户同意订阅zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE这条消息

真机测试返回以下数据:2019103108235518用户同意订阅之后即可进行下一步操作

 

3、后台发送订阅消息

请求地址

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

请求参数

属性 类型 默认值 必填 说明
touser string 接收者(用户)的 openid
template_id string 所需下发的订阅模板id
page string 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
data Object 模板内容,格式形如 { “key1”: { “value”: any }, “key2”: { “value”: any } }

请求参数与模版消息类似,但是data参数的结构有所不同,示例如下

{
  "touser": "OPENID",
  "template_id": "TEMPLATE_ID",
  "page": "index",
  "data": {
      "number01": {
          "value": "339208499"
      },
      "date01": {
          "value": "2015年01月05日"
      },
      "site01": {
          "value": "TIT创意园"
      } ,
      "site02": {
          "value": "广州市新港中路397号"
      }
  }
}

通过以上步骤即可成功发送订阅消息

2019103108300972

总结:订阅消息相比较模版消息来说没有了7天的时间限制,只要用户订阅了该消息便可一直发送;但发送方式相对来说比较繁琐,前后端代码都需要修改,而且只能定向发送,就是谁订阅了就发送给谁,而且一次订阅只能发送一条,长期订阅的功能暂时不对我们经营的类目开放。这对于某些场景来说有些不大合适,比如说用户下单之后给卖家发送消息通知发货或者买家留言给卖家,卖家也是无法收到通知消息的。不知道微信后期会不会在这方面做优化,后面持续关注一下吧!

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/2610.html

发表评论

登录后才能评论