公司管理小程序需要做到关闭小程序后能收到审核通过或驳回得消息通知,短信推送的成本太高,查询了一下小程序的文档,有一个订阅消息,但是只能一次性订阅点一次订阅只能接收一次推送,微信没有对一般企业开放长期订阅的模板消息,明显不符合业务逻辑需求。而统一服务消息查询官方公告已经下线,不知道为什么文档上还有。
于是考虑采用公众号模板消息推送:
具体思路是通过小程序webview授权拿到公众号openid并绑定对应小程序的用户。然后服务端根据小程序发送的审核通过请求去找下一个人的公众号openid进行模板消息发送。接收人通过关注的公众号接收
这里注意一下:
特别注意,这个公众号必须是已申请开通模板消息功能,好像是服务号才可以
1.公众号的主体必须和小程序的同一个主体
2.公众号必须关联小程序
3.公众号公众平台上填写授权回调域名
4.公众号开发者工具配置开发人员账号,不然开发工具会提示未绑定该网页
首先小程序新建一个webview页面,登录时判断后台返回是否绑定公众号openid来跳转webview进行绑定
wxml页面
<view class="web">
<web-view src="{{url}}" ></web-view>
</view>
js页面
/**
* 页面的初始数据
*/
data: {
url: '',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
//这里用的微信公众号的静默授权
let phone = app.globalData.phone;
this.setData({
url: `https://open.weixin.qq.com/connect/oauth2/authorize?appid=公众号的APPID&redirect_uri=回调授权地址&response_type=code&scope=snsapi_base&state=${要传绑定用户信息这里用的登录后的phone}#wechat_redirect`
})
},
回调授权地址,这里我用的之前广告项目的一个新页面
<template>
<div class="home">
<h3>系统数据获取中,请稍后...</h3>
<p>请关注 <span</span> 公众号获取更多信息,</p>
<p>实时接收最新消息</p>
</div>
</template>
<script>
import wx from "weixin-js-sdk";
export default {
name: "Home",
components: {},
mounted(){
// 这里小程序webview授权回调会把授权后获得的code和传递的phone返回过来
let { code = "", state = "" } = this.$route.query;
// 通过请求后台的接口传入code和用户的phone让后台去获取openid然后绑定上对应的用户。
//后台再通过服务端模板消息,通过对应的公众号openid进行发送就可以了
//注意这个消息只能在关注的公众号收到
};
</script>