一.「临时」代理域名搭建
1.国外代理域名
先node –harmony app
在lt –port 3100
临时域名每一次启动都会变。
(1)ngrok
ngrok所有终端指令
ngrok下载链接
ngrok国内服务器
终端服务器搭建指令:./ngrok http 3100 。端口号「3100」可以修改,推荐4个数字以内。
外网访问的域名为2个Forwarding并内网,如下
- 内网 localhost:3100
- 外网1 http://c648a140.ngrok.io
- 外网2 https://c648a140.ngrok.io
(2)node.js的localtunnel服务。临时
localtunnel全部指令
终端指令:sodu npm install -g localtunnel #下载
终端指令:lt –port 3100 #建立「域名」
(3)PageKite 花生壳
2.国内代理域名
(1)tunnel,已经暂停使用。
优点:代理域名固定。
终端服务器搭建指令:/ngrok -config ngrok.cfg -subdomain nihao1234-wechat 1234 。「nihao1234-wechat」部分可自行设定,不与他人重复即可。
(2)国内版ngrok
(3)Sunny-Ngrok内网穿透服务
Sunny-Ngrok使用教程
Mac OSX 64Bit版本下载
运行客户端命令
Mac:./sunny clientid 客户端id
3.内网域名搭建
(1)python在终端指令:
python
python -m SimpleHTTPServer 3100
命名为app.js的代码:
'use strict'
var Koa = require('koa')
var sha1 = require('sha1')
var config = {
wechat:{
appID: 'wx9f36f6ba8731c695',
appSecrect: 'c1c15b7e305a9abab44e8b3948ae98a6',
token:'bodanliweidong'
}
}
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)
if (sha === signature){
this.body = echostr + ''
}else{
this.body = 'wrong'
}
})
app.listen(1234)
console.log('Listening:1234')
在微信中配置,需要等待十几秒钟。
g.js,Genertor
'use strict'
var Koa = require('koa')
var wechat = require('./wechat/g')
var config = {
wechat:{
appID: 'wx9f36f6ba8731c695',
appSecrect: 'c1c15b7e305a9abab44e8b3948ae98a6',
token:'bodanliweidong'
}
}
var app = new Koa()
app.use(wechat(config.wechat))//传递配置参数
app.listen(1234)
console.log('Listening:1234')
//验证的代码拷贝
//作为中间件
'use strict'
var sha1 = require('sha1')
module.exports = function(opts){
return function *(next){
console.log(this.query)
var token = opts.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)
if (sha === signature){
this.body = echostr + ''
}else{
this.body = 'wrong'
}
}
}