背景

使用 NodeJS 进行微信公共号开发,首先需要响应微信发送的Token验证,官方文档

填写服务器配置

登录微信公共平台,在开发下的基本配置打开该页面。

依次填写接口的 URL、自定义的 Token、点击随机生成生成 EncodingAESKey、将消息加密方式选择为明文模式,点击提交时微信会进行服务器的 Token 验证。

响应微信发送的Token验证

项目使用 express 开发,中间件 wechatAuth 如下:

12345678910111213141516171819202122232425262728293031
var app = express();

const crypto = require('crypto');const url = require('url');

//进行sha1加密function sha1(str) { let shasum = crypto.createHash("sha1"); return shasum.update(str,'utf-8').digest("hex");}

function wechatAuth(req, res) { let signature = req.query.signature; let echostr = req.query.echostr; let timestamp = req.query.timestamp; let nonce = req.query.nonce;

 let reqArray = [nonce, timestamp, process.env.WX_TOKEN]; // process.env.WX_TOKEN对应填写服务器配置内的 Token

 reqArray.sort(); //对数组进行字典排序 let sortStr = reqArray.join(''); //连接数组 let sha1Str = sha1(sortStr.toString().replace(/,/g,"")); if (signature === sha1Str) { res.end(echostr); } else { res.end("false"); console.log("授权失败!"); }}

app.use('/wx/token',wechatAuth); // 对应填写服务器配置内的 URL

服务器上线后点击基本配置打开该页面内的提交即可

转载于:https://www.cnblogs.com/kkdn/p/8963288.html

NodeJS 微信公共号开发 - 响应微信发送的Token验证(山东数漫江湖)相关推荐

  1. 微信公共号开发教程java版——请求消息,响应消息及事件消息类的封装(三)

    一:封装请求信息 当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上. 各消息类型的推送XML数据包结构如下: 查看官网详细介绍 文本消息<xml&g ...

  2. 微信公共号开发教程java版——获取用户基本信息(UnionID机制)(七)

    一:UnionID机制说明 官网详细介绍:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839 获取用户基本信息( ...

  3. 微信公众 mysql回复图片_微信公众号开发之微信公共平台消息回复类实例

    本文实例讲述了微信公众号开发之微信公共平台消息回复类.分享给大家供大家参考.具体如下: 微信公众号开发代码我在网上看到了有不少,其实都是大同小义了都是参考官方给出的demo文件进行修改的,这里就给各位 ...

  4. 视频教程-基于python的微信公众号开发教程-微信开发

    基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...

  5. 微信公众号开发之微信公众平台与公众号第三方平台区别

    微信公众号开发分为微信公众平台和公众号第三方平台. 首先需要一个认证服务号,然后在设置,基本配置里面配置公众号开发信息和服务器配置. 这是我们会得到开发者ID(AppID),开发者密码(AppSecr ...

  6. 微信公众号开发--图文消息发送不显示图片的问题

    使用微信公众号接口实现图文消息推送,遇到问题,不显示图片,且content内容中有英文双引号也不行 1.微信不允许有外链的图片,所以会自动过滤 2."双引号格式问题. 前端把双引号传给后端后 ...

  7. 微信公众号开发小记(二)--服务器验证

    这篇是微信公众号开发小记的第二篇,承接上一篇,此次将完成如下主要功能 对接微信服务器和自己的服务器 需要的"材料" 到这里需要梳理一下都需要什么东西,以便在整个编码的过程中方便我们 ...

  8. Java微信公众号开发之微信公众平台接入开发者

    微信开发者接入官方文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 一.微信公共号通讯机制 作为开发 ...

  9. ThinkPHP5.0微信公众号开发之 微信公众号接入

    ThinkPHP5.0 微信公众号接入 第一步:准备工作 首先,要有自己的公众号(这句是废话),个人可以申请微信公众号的订阅号,企业才可以申请服务号,其次要有云空间或者服务器,并且将服务器IP添加至微 ...

  10. 微信公众号开发,微信支付功能开发(网页JSAPI调用)

    1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...

最新文章

  1. JS中的7种设计模式
  2. centos7镜像加速_虚拟机 Linux CentOS7 安装Docker 详解:使用 阿里云Yum源;附加云镜像加速器...
  3. 魔兽怀旧服怎么找不到服务器,魔兽世界怀旧服无法连接服务器怎么解决 服务器连接不上解决方法...
  4. nginx之 nginx-1.9.7 编译安装、理论简介
  5. python windows错误码
  6. Linux无盘工作站架设实例
  7. vue2.0-axios is defined
  8. JS阻止冒泡方法(转)
  9. Linux Apache服务详解——用户个人主页实战
  10. 相似图片搜索的原理(二)(转)
  11. 使用Ligolo-ng建立隐蔽的通信信道
  12. WEB前端知识大整合之JS表单验证
  13. THUSC2021游记
  14. solidity-msg.sender到底是什么?
  15. 南京移动开发者沙龙(创业邦+果合)
  16. 小i机器人要求苹果公司停售iPhone产品
  17. android仿微信充值布局,仿微信充值金额输入框-自定义EditText
  18. linux快速同步多台服务器之间的数据scp和rsync命令用法
  19. 给 iOS 装上旧版 APP,十年前的 iPad mini 重获新生!
  20. android替换Glide通讯组件为Okhttp并监控加载进度,安卓rxjava获取网络时间

热门文章

  1. JavaScript 利用Ajax制作一个汇率转换器
  2. Ubuntu 20.04 创建桌面快捷方式
  3. select2.js插件支持拼音搜索(最新版-4.0.6)
  4. springcloud之gateway的使用
  5. Gateway服务网关
  6. 「小狼毫」-- rimeime 中州韵输入法引擎
  7. 电子设计教程53:555定时器工作原理与常见应用
  8. mysql 累乘_oracle sql语句实现累加、累减、累乘、累除
  9. 安装cad提示command_win7系统安装CAD软件失败总是提示“错误1327”怎么解决
  10. 硬件设计——一键开关机