技术分享

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服务器,保证花生壳成功映射本地服务器至域名,外网可通过域名正常访问本地服务器

然后点击提交,提示“配置成功”表示接口配置完成

Contact Me