一、写在前面的话
"" 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,最后感谢您的阅读。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 谭嘉仪-EyesOnMe新曲+精选2022【低速原抓WAV+CUE】
- 尚士达《莫回头》[320K/MP3][184.64MB]
- 尚士达《莫回头》[Hi-Res][24bit 48kHz][FLAC/分轨][1.27G]
- 群星《奔赴!万人现场 第3期》[320K/MP3][98.9MB]
- 谭嘉仪《Lonely》【WAV+CUE】
- 群星《红色钢琴浪漫曲》2CD【WAV+CUE】
- 凤飞飞《浮世情怀》HQCD[正版原抓WAV+CUE]
- 群星《奔赴!万人现场 第3期》[FLAC/分轨][537.75MB]
- 群星 《2024好听新歌23》十倍音质 U盘音乐 [WAV分轨][1.6G]
- 群星《妙音纪念珍藏版》蓝光BSCD[WAV+CUE][1G]
- 【发烧试音】蔡克信严讯人间天籁》[原抓WAV+CUE]
- [ABC唱片]山姆泰勒《西电之声·萨克斯风》[低速原抓WAV+CUE]
- 童丽《微风细雨XRCD2》[原抓WAV+CUE]
- 群星 《车乐坊1》DTS魔音[WAV+CUE][1.7G]
- 邓丽君.2024 -《生誕70年ベスト?アルバム 沒後30年》环球日版 [WAV+分轨][993M]