Node.js微信开发-1

一.「临时」代理域名搭建

1.国外代理域名

先node –harmony app
在lt –port 3100

临时域名每一次启动都会变。
(1)ngrok
ngrok所有终端指令
ngrok下载链接
ngrok国内服务器

终端服务器搭建指令:./ngrok http 3100 。端口号「3100」可以修改,推荐4个数字以内。
ngrok域名
外网访问的域名为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'
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值