首页 > PHP资讯 > 工具库 > 利用node.js开发微信公众平台教程

利用node.js开发微信公众平台教程

工具库
这篇文章主要为大家分享利用node.js开发微信公众平台教程,如何进行微信开发,感兴趣的小伙伴们可以参考一下

用nodejs怎样来实现对微信公众平台的开发呢?

  别的就不多说了,先来简单介绍微信公众平台的基本原理。

  微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,微信服务器,然后将请求转发给自定义服务(这里就是我们的具体实现)。服务处理完毕,然后转发给微信服务器,微信服务器再将具体响应回复到终端;通信协议为:HTTP;数据格式为:XML。
  具体的流程如下图所示:

var express = require("express");var path=require('path');var app = express();server = require('http').Server(app);app.set('views',dirname); // 设置视图 app.set('view engine', 'html'); app.engine( '.html', require( 'ejs' ).express );require('./index')(app); //路由配置文件server.listen(80,function(){console.log('App start,port 80.');});

然后再添加一个名为test.html的文件。写入以下内容


汇智网

<%=issuccess%>

  我们还要添加一个名为index.js的文件,来实现我们的路由。点击编辑环境中的添加文件按钮,添加文件,然后我们写入以下代码,其中GET请求用来验证配置的URL合法性,POST请求用来处理微信消息。


module.exports = function(app){app.get('/',function(req,res){res.render('test',{issuccess:"success"})});app.get('/interface',function(req,res){});app.post('/interface',function(req,res){});}

这样我们需要的express框架就完成了,当然我们还可以添加public公共文件夹以及我们要用到的中间件。保存文件,点击【提交运行】,然后点击【访问测试】,去试试吧。记下访问测试的地址,我们将在下一节中会用到该地址。

微信服务器配置

  我们登录微信公众平台,在开发者模式下面找到基本配置,然后修改服务器配置。如图所示:

var token="weixin";var signature = req.query.signature;var timestamp = req.query.timestamp;var echostr = req.query.echostr;var nonce = req.query.nonce;

我们在这里对token进行设置,让其与微信服务器中设置的token一致。

然后对其中的token、timestamp、nonce进行排序,如下代码:


var oriArray = new Array();oriArray[0] = nonce;oriArray[1] = timestamp;oriArray[2] = token;oriArray.sort();

这样我们就完成了排序。

参数加密

  在上节中我们已经对参数进行了排序,然后我们在这一节中要将参数组成一个字符串,进行SH-1加密。在加密以前要用到jssha模块,在我们的文件中要引用该模块。


var jsSHA = require('jssha');

在上一节课中我们已经对参数排序完成,并存放在数组中,我们可以通过join方法来生成一个字符串,如下代码:


var original = oriArray.join('');

最后对该数据进行加密,如下代码:


var jsSHA = require('jssha');var shaObj = new jsSHA(original, 'TEXT');var scyptoString=shaObj.getHash('SHA-1', 'HEX');

好了这样就生成了我们需要的签名字符串scyptoString。

签名对比

  我们已经得到了我们想要的签名字符串scyptoString,然后我们就可以与来自微信服务器的签名进行对比了,对比通过,则我们就可以接收与发送消息了。


 if(signature == scyptoString){ //验证成功 } else { //验证失败 }

以上就是利用node.js开发微信公众平台教程的详细内容,更多请关注php中文网其它相关文章!

工具库

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持27不支持0