-
功能
订阅消息一般主要用于小程序推送消息到用户微信,最近做了个消息提醒功能,主要是用户预约医院科室医生看病,然后提前半小时提醒用户就诊。 -
用法
a、打开微信公众平台开通订阅消息
b、使用订阅消息必须使用户授权订阅,这一部分主要是小程序端操作(由于订阅消息是一次性订阅,即用户授权一次,只能给该用户发一条消息,所以要想大量发消息可以通过点击诱导用户授权)以下代码是获取用户授权
toDoctorDetail: function (e) {
let id = e.currentTarget.dataset.id
wx.requestSubscribeMessage({
tmplIds: [‘N-IBTN-wA8L4GMD9TwQSC3LVEEiMNSZkVFbaZeoEXHY’],
success (res) {
if(res.errMsg===“requestSubscribeMessage:ok”){
console.log(“订阅消息成功”)
}
wx.navigateTo({
url: ‘…/doctor-detail/doctor-detail?id=’ + id,
})
}
})
},
c、若订阅消息发送功能写在小程序端,则小程序正式版无法使用该功能(官方对这个有说明),所以消息发送功能在服务端实现
//用于获取消息发送的token值
public String getAccessToken() {
String appId = “wx6818b56868669b32”; //小程序appid
String appSecret = “1a2a46e53834cd8df0a0259d6b79ddee”; //小程序密钥
String result = cn.hutool.http.HttpUtil.get(“https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=” + appId + “&secret=” + appSecret);
JSONObject jsonObject = JSONUtil.parseObj(result);
return jsonObject.getStr(“access_token”);
}//发送消息功能
@RequestMapping("/appointmentDate")
public void getAppointmentDate() throws ParseException {
JSONObject body=new JSONObject();
body.put(“touser”,“要收消息用户的openid”);
body.put(“template_id”,“订阅消息的模板id”);
body.put(“page”,“pages/user-center/my-appointment/my-appointment”);
JSONObject json=new JSONObject();
json.put(“thing2”,new JSONObject().put(“value”,“今日有医院预约,请及时就诊”));
json.put(“date4”,new JSONObject().put(“value”, “2020-09-04”));
body.put(“data”,json);
//发送
String accessToken= getAccessToken();
String post = cn.hutool.http.HttpUtil.post(“https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=” + accessToken, body.toString());
}
功能就基本结束了。
效果就是这样
微信小程序订阅消息-springboot
最新推荐文章于 2024-08-14 09:34:08 发布