server.js
*注意:以下用到的模块大部分需要先安装,安装步骤请在本人其他的博文中查看或自行百度安装
const express = require('express'); //web服务框架模块
const request = require('request'); //http请求模块
const fs = require('fs'); //文件系统模块
const path = require('path'); //文件路径模块
const sha1 = require('node-sha1'); //加密模块
const urlencode= require('urlencode'); //URL编译模块
const hostName = '127.0.0.1'; //ip或域名
const port = 8080; //端口
/**
* [开启跨域便于接口访问]
*/
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*'); //访问控制允许来源:所有
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); //访问控制允许报头 X-Requested-With: xhr请求
res.header('Access-Control-Allow-Metheds', 'PUT, POST, GET, DELETE, OPTIONS'); //访问控制允许方法
res.header('X-Powered-By', 'nodejs'); //自定义头信息,表示服务端用nodejs
res.header('Content-Type', 'application/json;charset=utf-8');
next();
});
/**
* [设置验证微信接口配置参数]
*/
const config = {
token: 'test', //对应测试号接口配置信息里填的token
appid: 'xxxxxxxxxxxxxx', //对应测试号信息里的appID
secret: 'xxxxxxxxxxxxxxxxxxxx', //对应测试号信息里的appsecret
grant_type: 'client_credential' //默认
};
/**
* [验证微信接口配置信息,]
*/
app.get('/', function(req, res) {
const token = config.token; //获取配置的token
const signature = req.query.signature; //获取微信发送请求参数signature
const nonce = req.query.nonce; //获取微信发送请求参数nonce
const timestamp = req.query.timestamp; //获取微信发送请求参数timestamp
const str = [token, timestamp, nonce].sort().join(''); //排序token、timestamp、nonce后转换为组合字符串
const sha = sha1(str); //加密组合字符串
//如果加密组合结果等于微信的请求参数signature,验证通过
if (sha === signature) {
const echostr = req.query.echostr; //获取微信请求参数echostr
res.send(echostr + ''); //正常返回请求参数echostr
} else {
res.send('验证失败');
}
});
app.listen(port, hostName, function() {
console.log(`服务器运行在http://${hostName}:${port}`);
});
运行server.js启动node服务器,保证花生壳成功映射本地服务器至域名,外网可通过域名正常访问本地服务器
然后点击提交,提示“配置成功”表示接口配置完成