曲振飞的个人博客

专注于Web全栈开发、APP设计、网站建设

当前位置 : 主页 > 环境搭建 > ngrok将本地文件端口映射到外网进行微信公众号开发

ngrok将本地文件端口映射到外网进行微信公众号开发

时间:2016-12-15 23:01:04 栏目:环境搭建 作者:曲振飞 点击: 156

ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道。本次为大家分享下如何通过ngrok进行微信公众号开发。

环境准备:

linux 下 ubuntu系统
安装nodejs环境

下面开始我们的重点

1.打开ngrok官网 https://ngrok.com/download 下载ngrok压缩包Linux 64-Bit

blob.png

2.解压缩包,生成一个ngrok文件

unzip ngrok.zip

3.执行./ngrok http 1234,看到以下信息端口映射成功,此时会为我们生成一个随机域名,供外部访问

blob.png

到目前为止ngrok端口映射已成功,在外网可访问我们的本地文件,下面进行第二部如何与我们的微信公众号开发结合使用

4.怎么申请微信公众号不用多说了吧直接进入正题,登录微信公众号->开发者工具->公众平台测试账号,看到以下界面:

URL 是开发者用来接收微信消息和事件接口的,url为ngrok生成的二级域名

Token 用来生成一个签名

blob.png

5.新建一个app.js文件来测试当提交配置信息后验证本地文件与微信接口是否成功

'use strict'
var Koa = require('koa');
var sha1 = require('sha1');
var config = {
	wechat:{
		appID:'wx5f5*****8bfaec6',
		appSecrect:'56fffbc7******302cc9ea4a8a9c8bdc',
		token:'quzhenfei'
	}
}
var app = new Koa();
app.use(function *(next){
	console.log(this.query);
	var token = config.wechat.token;
	var signature = this.query.signature;
	var nonce = this.query.nonce;
	// 时间戳
	var timestamp = this.query.timestamp;
	var echostr = this.query.echostr;
	//字典排序
	var str = [token,timestamp,nonce].sort().join('');
	//加密
	var sha = sha1(str);
	//判断加密后的值 是否等于签名值
	console.log(this.method);
	if (sha === signature) {
		this.body = echostr + '';
		console.log('echostr: '+echostr);
	}else{
		this.body = 'wrong';
		console.log('wrong');
	}
});
app.listen(1234); //此处的端口为 ngrok处的端口

成功后在nodejs后台会显示以下信息:

微信公众号这里会显示配置成功

blob.png

nodejs控制台会输出从服务器端接收过来的信息:

blob.png

关键字: Ngrok,微信公众号,反向代理

关于站长

曲振飞,一个热忠、从事于互联网的90后青年.专注于网站建站、网站设计及优化.以用户体验、WEB标准为主旨,将网站的整体设计与网页设计的相关原理紧密结合.