手机版

Node.js开发第三方微信公众平台

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

一、前面写的字

Node.js是一个开源的、跨平台的JavaScript语言运行环境,使用Google开发的V8运行代码,使用事件驱动、非阻塞、异步的输入输出模型来提高性能,优化应用的传输量和规模。这些技术通常用于数据密集型的实际应用。——来自维基百科

最近学Node.js用了将近一个月,因为它的代码语言是Javascript,所以语法方面的研究不多。毕竟做过Web开发的程序员很少不会做Javascript。而写这篇文章只是为了

如果有不准确的地方,希望大家指正。

二、准备工作

在正式开始代码之前,我们需要准备以下内容:

设置节点环境。Node的安装过程太简单,网上教程太多。可以自己百度;申请微信微信官方账号,这里就不介绍了,自己百度。服务器和域名。打开Node.js中文网站文档,打开微信开发者文档。3.进入微信公众平台1。创建Node.js项目

首先,我们在电脑的任意磁盘上创建一个文件夹,随便命名。我在这里命名为微信;

然后在文件夹中创建两个文件,一个是config.json,一个是app.js如下图所示:

我这里的IDE是VSCode,所以你可以随意使用你喜欢的IDE。

为了扩展以下功能,我加入了Express框架,具体操作如下:

电脑打开运行界面,快捷键是:win R,输入cmd,进入dos界面,输入命令

npm install -g express的全球安装;由于Express已经将命令工具从4.x版本中分离出来,因此有必要输入下一个命令

成功安装npm install -g [emailprotected]后,在dos界面输入以下命令

express -h结果如下图所示:

什么事?您的运行结果表明express不是内部或外部命令。那你在安装node.js的时候一定要检查是否添加了环境变量点击a href=' http://jingyan . Baidu.com/article/1876 c 8529 c 79 e 2890 b 1376 DD . html?ST=2 net _ type=BD _ page _ type=1os=0rst=word=wwwdhzjs . org ' target=' _ blank '解决了express不是内部或外部命令的问题

2.微信文档步骤

没有想清楚就开始编码是非常危险的。我们先打开微信文档,点击正在开发的访问指南,如图:

跳过第一步,直接看第二步,如图:

正如帮助文档所说,我们总结为四个步骤:

获取微信服务器的参数signature、timestamp、nonce、echostr获取请求,按照字典顺序对token、timestamp、nonce进行排序,将三个参数字符串拼接成一个字符串,进行sha1加密。开发者获得的加密字符串可以与签名进行比较,表明请求来自微信3。访问功能的实现

理清思路后,我们就按照上一节的步骤来。首先,我们打开config.json文件并输入以下内容:

{'token' : '微信' } config.json文件是我们程序的配置文件。在接下来的文章中,我们将把程序名、微信定义的参数名、请求地址等配置内容存储在这个文件中。打开app.js文件,属于我们程序的入口。文件启动并再次实现路由配置后,首先我们导入重要模块:

Const express=require ('express '),//express framework crypto=require(' crypto '),//引入加密模块config=require('。/config ');//不难理解配置文件上面的代码。需要意味着导入模块。这里,我们主要解释一下我们的自定义config.json文件。/'表示和app.js在同一个目录,为什么要这样写?原因很简单:我们通过npm命令安装模块时,如果指定全局安装,也就是-g,安装的文件会保存在我们node.js安装路径下的node_modules文件夹中;同样,我们不指定全局安装,安装的文件将保存在我们输入安装命令的文件夹根目录下的node_modules文件夹中。如果没有这样的文件,系统将自动创建它。在这里,我们都使用require来导入模块。node.js如何区分系统模块和我们的自定义模块?你一定想到了聪明的那个,没错。/'.如果您不想使用它,也可以将自定义模块文件移动到node_modules文件夹。

要求按模块名导入模块文件,所以导入时不需要写文件的后缀名。如果两个文件同名但后缀名不同,require会按照Node.js的加载优先级顺序导入它们,也就是js文件json文件Node文件。

其实就这么简单,我们就不再担心这个问题,继续接下来的工作。

实例快速和创建服务器

//实例express var app=express();//用于处理所有连接请求app.get ('/',function (req,RES){//返回contents res.send('Hello Node.js ')到请求的连接;});//在端口3000上侦听app . listen(3000);通过注释上面的代码,我们可以理解它的含义,所以我在这里就不详细解释了。再次进入dos界面,通过命令进入我们项目文件的根目录,如图:

输入命令启动我们的Node.js项目

node app.js启动成功后,我们打开浏览器,输入地址:http://localhost:3000访问我们的node.js项目,如图

提示:

每次更改node.js项目,都需要先停止node.js(快捷键: Ctrl C),然后通过命令再次运行,特别麻烦。我推荐在这里使用supervisor工具,npm安装命令是:npm install -g supervisor。这样,我们启动node.js项目的命令,将其更改为supervisor app.js,更改项目后,只需要保存并刷新浏览器页面,就可以得到更改后的结果。

完成以上工作后,我们就可以正式开始编写进入微信公众平台的主代码了,直接发帖代码就不多说了

Const express=require ('express '),//express framework crypto=require(' crypto '),//引入加密模块config=require('。/config ');//导入配置文件var app=express();//instance express framework//用于处理所有连接请求app.get('/'),function(req,Res){ //1。获取参数signature,timestamp,nonce,echostar var signature=req.query .微信服务器Get请求的签名,//微信加密签名timestamp=req.query.timestamp,//timestamp nonce=req . query . nonce,//随机数echostr=req . query . echostr;//随机字符串//2。按照字典顺序对令牌、时间戳和随机数进行排序。vararray=[配置。令牌、时间戳、随机数];array . sort();//3.将三个参数字符串拼接成一个字符串进行sha1加密。var tempStr=array . join(');const HashCode=crypto . create hash(' sha1 ');//创建加密类型var结果代码=hashcode.update (tempstr,' utf8 ')。摘要(' hex ');//加密传入字符串//4。开发者得到的加密字符串可以和签名进行比对,表示请求来自微信if(结果码===签名){ RES . send(echostar);}else{ res.send('不匹配');}});//在端口3000上侦听app . listen(3000);4.部署项目

完成代码后,我们可以将项目发布到外联网。这里我用的是从花生壳内网映射外网的软件,你可以随意使用其他工具。

1.打开花生壳软件,点击内网穿透:

2.单击添加映射

3.配置映射

由于微信只接受80个端口,我们在映射类型中选择网站的80个端口;内部网主机是我们计算机的IP地址;Intranet端口号是node.js的监听端口;点击确定后,成功映射到外部网络,可以通过花生壳提供的域名进行访问。

5.访问验证

再次进入微信公众平台,点击左侧菜单中的基本配置,如图:

单击修改配置。服务器地址是我们外部网络映射的地址;令牌是在config.json文件中定义的令牌值;消息加密可以点击随机生成按钮,当然也可以随便定义;您可以随意选择消息的加密和解密方式,这里我将使用默认的方式,如图所示:

点击提交按钮提示提交成功,那么我就恭喜你了。

你已经成功进入了Node.js开发微信的第一步

GITHUB源代码:https://github.com/SilenceHVK/wechatByNode.请纠正文章中的任何不准确之处。Github源代码,请给它一颗星,最后感谢您的阅读。

版权声明:Node.js开发第三方微信公众平台是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。