使用场景: 当需要服务端需要在自定义时间或者条件推送消息给用户时
1. 前期准备工作
- 微信公众平台注册服务号(只能以组织或者公司注册,个人无法注册)
- 完成微信认证、“新的功能”中添加“模板管理”功能
- 获取公众号AppID、AppSecret(需保存到本地,后续无法查看)
2. 成为微信公众号开发者
- 需要拥有自己的线上服务器IP、域名,可在公网访问,用作微信服务器验证使用
- 服务器中处理微信发来的验证接口并返回对应的参数,成为公众号开发者文档,这里使用node.js做服务端实现一个简单demo
- 在公众号后台基本配置里面新增IP白名单,将服务器IP地址添加至白名单中
在服务端新增接口(用于微信服务器请求校验):
// 使用nodeJs自带的crypto进行sha1加密
const sha1 = (data) => {
return crypto.createHash('sha1').update(data).digest('hex');
}
// 字典排序
const sort = (arr) => {
return arr.sort(function (a, b) {
return a.localeCompare(b)
})
}
app.get('/verify', async (req, res) => {
const {
timestamp, nonce, signature, echostr } = req.query // 接口微信服务器请求参数
const str = sort([ 'hcha', timestamp, nonce