Node.js开发第三方微信公众平台
一、写在前面的话
"" src="/UploadFiles/2021-04-02/201706050852011.jpg">
如有不正确的地方,希望大家指正。
二、准备工作
"external nofollow" target="_blank" href="http://nodejs.cn/api/">Node.js中文网文档 打开 微信开发者文档 三、接入微信公众平台 1.创建Node.js 项目
"" src="/UploadFiles/2021-04-02/201706050852012.png">
PS:这里我的 IDE 是 VSCode,各位可随意使用自己喜欢的 IDE。
"htmlcode">
npm install -g express
进行全局安装;由于 Express 自 4.x 版本中将命令工具分离出来,因此还需要输入下一个命令
npm install -g express-generator@4
安装成功后,在dos界面中输入以下 命令
express -h
结果如下图所示:
什么?你的运行结果提示:express不是内部或外部命令。那你必须要检查一下安装 node.js 的时候有没有添加环境变量。点击<a href="http://jingyan.baidu.com/article/1876c8529c79e2890b1376dd.html" target="_blank">解决express不是内部或外部命令问题
2.微信文档步骤
"" src="/UploadFiles/2021-04-02/201706050852045.png">
跳过第一步,直接看第二步,如图:
正如帮助文档所说的那样,我们总结以四个步骤:
获取微信服务器Get请求的参数 signature、timestamp、nonce、echostr 将token、timestamp、nonce三个参数进行字典序排序将三个参数字符串拼接成一个字符串进行sha1加密开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 3.接入功能的实现
"htmlcode">
{ "token":"wechat" }
const express = require('express'), //express 框架 crypto = require('crypto'), //引入加密模块 config = require('./config');//引入配置文件
"./" 表示与 app.js 在同一及目录下,为什么要这么写呢?原因很简单就是在我们通过 npm 命令安装模块时,如果我们指定了全局安装,也就是 -g,安装后的文件则会保存在我们 node.js 安装路径下的 node_modules 文件夹中;同理,我们不指定全局安装,安装后的文件则会保存在我们安装命令输入时所在的文件夹根目录下的 node_modules 文件夹中,此时如果没有该文件,系统会自动创建。
"./" 这个,如果你不想用它的话,你也可以把自定义的模块文件移到 node_modules 文件夹中。
"" src="/UploadFiles/2021-04-02/201706050852047.jpg">
"htmlcode">
//实例 express var app = express(); //用于处理所有进入 3000 端口 get 的连接请求 app.get('/',function(req,res){ //对请求连接返回内容 res.send("Hello Node.js"); }); //监听3000端口 app.listen(3000);
输入命令,启动我们的Node.js项目
node app.js
启动成功后,我们打开浏览器输入地址:http://localhost:3000 访问我们的node.js项目,如图
小技巧 :
"" src="/UploadFiles/2021-04-02/2017060508520511.jpg">
const express = require('express'), //express 框架 crypto = require('crypto'), //引入加密模块 config = require('./config');//引入配置文件 var app = express();//实例express框架 //用于处理所有进入 3000 端口 get 的连接请求 app.get('/',function(req,res){ //1.获取微信服务器Get请求的参数 signature、timestamp、nonce、echostr var signature = req.query.signature,//微信加密签名 timestamp = req.query.timestamp,//时间戳 nonce = req.query.nonce,//随机数 echostr = req.query.echostr;//随机字符串 //2.将token、timestamp、nonce三个参数进行字典序排序 var array = [config.token,timestamp,nonce]; array.sort(); //3.将三个参数字符串拼接成一个字符串进行sha1加密 var tempStr = array.join(''); const hashCode = crypto.createHash('sha1'); //创建加密类型 var resultCode = hashCode.update(tempStr,'utf8').digest('hex'); //对传入的字符串进行加密 //4.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 if(resultCode === signature){ res.send(echostr); }else{ res.send('mismatch'); } }); //监听3000端口 app.listen(3000);
4.部署项目
"" src="/UploadFiles/2021-04-02/2017060508520612.png">
2.点击添加映射
3.配置映射
"" src="/UploadFiles/2021-04-02/2017060508521415.png">
点击修改配置。其中服务器地址,就是我们外网映射的地址;令牌(Token)就是我们在 config.json 文件中 定义的 token 值;消息加密可以点击随机生成按钮,当然你也可以随便定义;消息加解密方式这块可以随便选择,这里我就使用默认的,如图:
"" src="/UploadFiles/2021-04-02/2017060508521419.gif">
你已经成功的步入了Node.js开发微信的开发的第一步。
"uri" rel="external nofollow" href="https://github.com/SilenceHVK/wechatByNode">https://github.com/SilenceHVK/wechatByNode 。对文章有不正确之处,请给予纠正。github源代码请顺手给个 Star,最后感谢您的阅读。
下一篇:js自定义Tab选项卡效果