SpringBoot打通微信公众号模板消息通知


前言

最近在做OA项目,一个项目有个业务场景是:当上一个用户审核后,需要发送通知给下一节点的用户。因为我们只有小程序端和PC端,所以考虑到采用微信消息的方式


一、为什么使用微信公众号模板消息?

当前项目于只有微信小程序端,能够选择的方式不多。查看微信官方文档发现,小程序和公众号自有的消息订阅功能,普通账号只允许开通一次性订阅功能,只有特定行业的账号才允许开通长期订阅功能。最后发现公众号的消息模板比较符合业务场景。实现的效果类似每次消费后,美团公众号都会推送相应消息,无需多次授权。
在这里插入图片描述

二、实现原理

利用微信开放平台的unionID,实现多应用间用户共享。用户关注相关联的公众号之后,可以拿到用户的unionID与openID,此时如果用户再登录小程序,也可以拿到小程序对应的unionID与openID,因为微信体系中,同一平台下各应用可以通过unionID进行用户关联,所以,此时可以通过小程序的unionID找到公众号对应的openID进行模板消息推送。

三、实现步骤

1.创建微信开放平台账号

2.绑定小程序账号

在这里插入图片描述

3.绑定公众号账号

注意:只有服务号才能使用消息模板功能,在申请公众号时务必注意。
在这里插入图片描述

4.公众号申请开通模板消息

登录公众号,点击新的功能,找到模板消息,申请开通即可

5.公众号配置

不熟悉公众号开发的可以自行百度相关必要配置信息,主要是标红部分
在这里插入图片描述

6.进行微信公众号开发

这里只贴关键逻辑代码,用户关注公众号后,微信服务器会推送一条消息到我们配置的服务器接口,此时,我们需要解析这部分信息,将openID和unionID存起来即可。

获取用户信息

获取accesstoken GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
获取用户信息 GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

在这里插入图片描述

模板消息推送

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

在这里插入图片描述

7.小程序绑定

配置业务域名

在这里插入图片描述

实现思路

小程序可调用原生wx.login()方法获取code,再调用微信jscode2session 接口换取openID**(此接口也会返回unionID信息)**,因为此处调用不需要小程序授权,所以可以静默调用。

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

在这里插入图片描述


总结

现在大部分场景的消息推送功能都可以通过微信公众号模板来实现,无论是APP、小程序、网页应用,只要将对应的应用绑定到同一个微信开放平台账号下。
如果需要公众号跳转小程序,只需要将公众号与小程序绑定,然后在推送的模板消息中设置跳转的小程序appID与pagePath参数即可。

官方文档地址

获取公众号accessToken
获取公众号用户信息(openID和unionID)
模板消息推送
获取小程序AccessToken
获取小程序openID和unionId信息

猜你喜欢

转载自blog.csdn.net/XX777666/article/details/126038900