iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Node.js开发第三方微信公众平台
  • 386
分享到

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

第三方公众平台 2022-06-04 17:06:55 386人浏览 薄情痞子
摘要

一、写在前面的话   node.js是一个开放源代码、跨平台的javascript语言运行环境,采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高

一、写在前面的话

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

  最近花了差不多近一个月的时间去学习node.js,由于它的代码语言是 Javascript ,因此对于语法上就没有过多的去研究,毕竟做过web开发程序员,很少有不会Javascript的。而写这篇文章,也只是为了


查看图片

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

二、准备工作

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

搭建 Node 环境。Node的安装过程太过简单,网上也有太多的教程,大家可以自行百度;申请微信公众号,同样这里也不做介绍,大家自行百度。服务器和域名。打开Node.js中文网文档 打开 微信开发者文档 三、接入微信公众平台 1.创建Node.js 项目

  首先我们在电脑的任意磁盘上创建文件夹,命名随意,我这命名为 wechat;

  随后在文件夹中创建两个文件,一个是config.JSON,另一个为app.js。如下图所示:
查看图片

PS:这里我的 IDE 是 vscode,各位可随意使用自己喜欢的 IDE。

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

电脑打开运行界面,快捷键为:win+R,输入cmd后回车,进入dos界面,输入命令


 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?st=2&net_type=&bd_page_type=1&os=0&rst=&Word=WWWDHZJS.ORG" target="_blank">解决express不是内部或外部命令问题

2.微信文档步骤

  如果在没有考虑清楚之前,就开始码代码的话,这样做是非常危险的。我们先打开微信文档,点击 开始开发 中的 接入指南,如图:

查看图片

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

查看图片

正如帮助文档所说的那样,我们总结以四个步骤:

获取微信服务器Get请求的参数 signature、timestamp、nonce、echostr 将token、timestamp、nonce三个参数进行字典序排序将三个参数字符串拼接成一个字符串进行sha1加密开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 3.接入功能的实现

   整理好思路后我们就按照上一节的步骤去实现。首先我们在打开 config.json 文件,输入以下内容:


{
 "token":"wechat"
}
   config.json 文件是我们程序的配置文件,在后面的文章中,我们会将程序名称、微信定义的参数名称、请求地址等配置内容存放在该文件中。

   打开 app.js 文件,该文件属于我们程序的入口,在文件启动及以后路由配置都是再次实现的,首先我们导入重要的模块:


const express = require('express'), //express 框架 
  crypto = require('crypto'), //引入加密模块
  config = require('./config');//引入配置文件
上面的代码不难理解,require 就是导入模块的意思。这里主要针对我们自定义的config.json文件讲解一下:
 "./" 表示与 app.js 在同一及目录下,为什么要这么写呢?原因很简单就是在我们通过 npm 命令安装模块时,如果我们指定了全局安装,也就是 -g,安装后的文件则会保存在我们 node.js 安装路径下的 node_modules 文件夹中;同理,我们不指定全局安装,安装后的文件则会保存在我们安装命令输入时所在的文件夹根目录下的 node_modules 文件夹中,此时如果没有该文件,系统会自动创建。

 这里我们都是使用 require 去导入模块的,node.js 怎么分辨系统模块和我们自定义的模块呢,聪明的你一定想到了,没错就是 "./" 这个,如果你不想用它的话,你也可以把自定义的模块文件移到 node_modules 文件夹中。

 require 是通过模块名称去导入模块文件的,因此在引入的时候不需要写入文件的后缀名。如果两个文件重名,但后缀名不同, require 会按照 Node.js 的加载优先级顺序进行导入,即 js文件 > json文件 > node文件。


查看图片

 实际上就是这么简单,我们也就不再纠结这个问题,继续下面的工作。

   实例 express 以及 创建服务器


//实例 express
var app = express();
//用于处理所有进入 3000 端口 get 的连接请求
app.get('/',function(req,res){
 //对请求连接返回内容
 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 框架 
  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.部署项目

   完成了代码后我们就可以把项目发布到外网上了,这里我用的是花生壳内网映射外网的软件,各位可以随意使用其他工具。

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

查看图片

2.点击添加映射

查看图片

3.配置映射

查看图片

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

5.接入验证

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

查看图片

查看图片

点击修改配置。其中服务器地址,就是我们外网映射的地址;令牌(Token)就是我们在 config.json 文件中 定义的 token 值;消息加密可以点击随机生成按钮,当然你也可以随便定义;消息加解密方式这块可以随便选择,这里我就使用默认的,如图:

查看图片

查看图片

  点击提交按钮,提示 提交成功,那么我就要祝贺你了

查看图片

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

   GitHub源代码:https://github.com/SilenceHVK/wechatByNode 。对文章有不正确之处,请给予纠正。github源代码请顺手给个 Star,最后感谢您的阅读。

--结束END--

本文标题: Node.js开发第三方微信公众平台

本文链接: https://www.lsjlt.com/news/12557.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js开发第三方微信公众平台
    一、写在前面的话   Node.js是一个开放源代码、跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高...
    99+
    2022-06-04
    第三方 公众 平台
  • Java微信公众平台开发(1) 接入微信公众平台
    前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接!(一)接入流程解析在我们的开发过程中无论如何最好的参考工具当然是...
    99+
    2023-05-31
    java 微信公众平台
  • node.js微信公众平台开发教程
    用nodejs怎样来实现对微信公众平台的开发呢?   别的就不多说了,先来简单介绍微信公众平台的基本原理。   微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,微信服务器,然后...
    99+
    2022-06-04
    公众 教程 平台
  • 如何用C#开发微信公众平台
    这篇文章主要讲解了“如何用C#开发微信公众平台”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用C#开发微信公众平台”吧!服务号和订阅号服务号是公司申请的微信公共账号,订阅号是个人申请的,...
    99+
    2023-06-17
  • 微信公众平台开发使用Java如何实现关联微信的三大平台
    本篇文章为大家展示了微信公众平台开发使用Java如何实现关联微信的三大平台,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。微信公众平台(map.weixin.qq.com)/开放平台(open.wei...
    99+
    2023-05-31
    java 平台
  • 如何利用Python开发微信公众平台
    这篇文章主要讲解了“如何利用Python开发微信公众平台”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用Python开发微信公众平台”吧!自动回复实现原理首先了解一下,到底是什么样的机...
    99+
    2023-06-16
  • Java微信公众平台开发(15) 微信JSSDK的使用
    在前面的文章中有介绍到我们在微信web开发过程中常常用到的 【微信JSSDK中Config配置】 ,但是我们在真正的使用中我们不仅仅只是为了配置Config而已,而是要在我们的项目中真正去使用微信JS-SDK给我们带来便捷,那么这里我们就简...
    99+
    2023-05-31
    java js
  • Java微信公众平台开发(13) 微信JSSDK中Config配置
    前端开发工程师和关注前端开发的开发者们在2015年中肯定被腾讯的JSSDk引爆过,搞APP的、搞前端的甚至是是搞后端的都跑过来凑热闹,一时之间也把微信JSSDK捧得特别牛逼,但是在我们的技术眼里它的实现原理和根本是不能够被改变的,这篇文章就...
    99+
    2023-05-31
    java jssdk
  • 微信小程序 | 微信公众平台SpringBoot开发实例 │ 开发一个简易的个人微信公众号
     开发一个简易的个人微信公众号,并演示对不同相对地址的整合方法、JSON数据的处理方法(处理后以HTML文件显示)。 1、应用开发 1●创建类InitMenu 在包edu.bookcode中创建caseex子包,并在包edu.boo...
    99+
    2023-08-31
    微信公众平台 spring boot java 微信
  • 微信小程序第三方开发平台接入的方法
    本文小编为大家详细介绍“微信小程序第三方开发平台接入的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序第三方开发平台接入的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。微信第三方平台开发接入授权...
    99+
    2023-06-26
  • 微信小程序 | 微信公众平台SpringBoot开发实例 │ 模板消息的应用开发
     在手机微信公众号中输入文本(如“你好”),公众号发送两条模板消息,如下图所示。 1、说明 1●模板消息的基本规则 模板消息用来帮助公众号进行业务通知,是在模板内容中设定参数(参数必须以{ {开头,且以.DATA} }结尾)并在调用时为这...
    99+
    2023-09-20
    微信公众平台 java 开发语言 微信小程序 小程序
  • 微信公众平台开发使用Java如何实现获取token
    微信公众平台开发使用Java如何实现获取token?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。(一)token的介绍引用:access_token是公众号的全局唯一票据,...
    99+
    2023-05-31
    java token
  • thinkphp5.1 easywechat4微信第三方开放平台的示例分析
    小编给大家分享一下thinkphp5.1 easywechat4微信第三方开放平台的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!thinkphp5.1 ...
    99+
    2023-06-20
  • ASP.NET MVC开发接入微信公共平台
    目录申请微信公共账号编写网站逻辑配置微信公共平台上的信息申请微信公共账号 既然要接入微信公共平台,微信公共号是必须的(当然如果只是测试的话也可以申请微信公共平台接口测试账号),来这里...
    99+
    2022-11-13
  • ASP.NET MVC开发接入微信公共平台的方法
    这篇文章主要讲解了“ASP.NET MVC开发接入微信公共平台的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET MVC开发接入微信公共平台的方法”吧!申...
    99+
    2023-06-30
  • 使用NodeJs 开发微信公众号(三)微信事件交互实例
    微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成。比如说自定义菜单功能,必须通过发送post请求的方式生成。本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么样与微...
    99+
    2022-06-04
    实例 公众 事件
  • 微信公众平台开发中使用Java如何实现获取用户的信息
    本篇文章为大家展示了微信公众平台开发中使用Java如何实现获取用户的信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。(一)用户微信消息的获取实现在关注者与公众号产生消息交互后,公众号可获得关注者的...
    99+
    2023-05-31
    java 获取用户信息
  • 微信小程序怎么选择第三方开发公司
    本文小编为大家详细介绍“微信小程序怎么选择第三方开发公司”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序怎么选择第三方开发公司”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第三方微信小程序开发公司应该在...
    99+
    2023-06-27
  • 使用Nodejs开发微信公众号后台服务实例
    摘要: 微信,庞大的用户基数,极强的用户粘性,在近两年吸引了无数的开发者注意力。 Nodejs,近两年发展非常快的开发工具,尤其适合构建移动后台。本文就以笔者自己开发的实例,来描述如何基于Nodejs开发属...
    99+
    2022-06-04
    后台 实例 公众
  • 微信公众平台开发中使用Java如何实现帐号申请功能
    本篇文章给大家分享的是有关微信公众平台开发中使用Java如何实现帐号申请功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。①登入到微信公众平台,我们到【开发】——>【开发...
    99+
    2023-05-31
    java 帐号申请
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作