最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

node.js微信小程序配置消息推送的实现

来源:动视网 责编:小采 时间:2020-11-27 22:01:06
文档

node.js微信小程序配置消息推送的实现

node.js微信小程序配置消息推送的实现:在开发微信小程序时,有一个消息推送,它的解释是这样的。 消息推送具体的内容是下面的这个网址 https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html,他介绍的也还可以,就是我这里换成了nod
推荐度:
导读node.js微信小程序配置消息推送的实现:在开发微信小程序时,有一个消息推送,它的解释是这样的。 消息推送具体的内容是下面的这个网址 https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html,他介绍的也还可以,就是我这里换成了nod


其中的各个参数微信官网中介绍的也非常的详细。

开发者通过检验 signature 对请求进行校验(下面有校验方式)。若确认此次 GET 请求来自微信服务器,请原样返回 echostr 参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

  • 将token、timestamp、nonce三个参数进行字典序排序
  • 将三个参数字符串拼接成一个字符串进行sha1加密
  • 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
  • 验证URL有效性成功后即接入生效,成为开发者。

    检验signature的node.js示例代码:

    /*
     验证服务器推送url地址
     开发者提交信息后,微信服务器将发送GET请求到填写的服务器URL上,GET请求携带参数如下
     @params signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数,nonce参数
     @params timestamp 时间戳
     @params nonce 随机数
     @params echostr 随机字符串
    */
    exports.check_push = (req, res) => {
     console.log(req.query);
     let signature = req.query.signature,
     timestamp = req.query.timestamp,
     nonce = req.query.nonce,
     echostr = req.query.echostr;
     let a = crypto.createHash('sha1').update([pushToken, timestamp, nonce].sort().join('')).digest('hex'); // 这里的pushToken就是在上面的那里配置的Token
    
     if(a == signature){
     // 如果验证成功则原封不动的返回
     res.send(echostr);
     }else{
     res.send({
     status: 400,
     data: "check msg error"
     })
     }
    };

    其中遇到的两个问题,上面已经说了,这里再说一下这两个问题。

    其中一个是把 token、timestamp、nonce三个参数进行字典序排序,当时想自己写一个方法,写了好久发现有点难受,所以在网上找了一些东西,发现那个 数组的sort方法不传递参数就是那个 默认字符编码排序,所以就非常简单了,加密直接用到crypto模块

    另外一个就是微信都没有告诉我们要把那个echostr返回出去,虽然他的意思就是那个意思。 这样就可以配置成功了。

    如果你同样遇到了这个问题,看了我的文章解决了,我会非常高兴。

    文档

    node.js微信小程序配置消息推送的实现

    node.js微信小程序配置消息推送的实现:在开发微信小程序时,有一个消息推送,它的解释是这样的。 消息推送具体的内容是下面的这个网址 https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html,他介绍的也还可以,就是我这里换成了nod
    推荐度:
    标签: 微信 消息 小程序
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top