node微信公众号服务器配置
2017-11-29 本文已影响0人
adtk
const koa= require('koa');
const router = require('koa-router')();
const bodyParser = require('koa-bodyparser');
const crypto = require('crypto');//加密模块
var app = new koa();
app.use(bodyParser());
function signFn(arr){
const sha1 = crypto.createHash('sha1');//sha1
var str=arr.sort().join('');
sha1.update(encodeURI(str));//添加需要的加密数据
return sha1.digest('hex');//加密,(hex表示16进制)
}
router.get("/",async function(ctx,next){
ctx.body='index'
})
router.get("/url_token",async function(ctx,next){
// 对值进行排序sha1加密
var obj=['server',ctx.query.timestamp,ctx.query.nonce];
// token:'server',
// timestamp:ctx.query.timestamp,
// nonce:ctx.query.nonce
var sign=signFn(obj);
if(sign==ctx.query.signature){
ctx.body=ctx.query.echostr //对比成功原样返回微信请求的echostr 字段
}else{
ctx.body='不匹配'
}
})
app.use(router.routes());
app.listen(80);//端口80或者443
image.png