Node和Koa开发微信公众号后台,测试接口配置失败?

  1. 微信提交配置失败。
  2. 编辑app.js文件,就是做微信后台验证,启动服务器;

    var Koa=require("koa");
    var sha1=require("sha1");
    var config = {
        wechat:{
            appID:"*****",
            appSecret:"*****",
            token:"******"
        }
    }
    var app= new Koa();
    
    app.use(function *(next){
        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.query");
        console.log(this.query);
    
        if(sha===signature){
            this.body=echostr+"";
        }else{
            this.body="wrong";
        }
    })
    app.listen(8080);
    console.log("START WECHAT SERVER AT PORT 8080");
  3. 我的问题
  • 为什么配置失败?
  • 在我的app.js文件中,输出的console.log(this.query)为什么是空值?
  • 是不是natapp后台里边的设置出现了问题?
阅读 4.3k
4 个回答

这个问题是我提的,今天我给出解决方法。

  • 监听的端口号不要为8080,统一为80,我配置失败,原因之一就是端口号错了,微信只支持80端口,改成下边这样。
app.listen(80);
console.log("START WECHAT SERVER AT PORT 80");
  • 公网域名,推荐使用natapp
  • 可以花五块钱,买一个月的域名使用,具体使用方法可以查看网站介绍.
  • 在使用natapp配置个人域名的时候,请一定要看清除红色提示信息框,直接使用自己的域名,微信是不支持的,这个网站是有提示信息,可以自动修改域名的,无需担心。我之所以配置失败,原因之二就是因为微信不支持这个公网的接口。
  • 个人使用github仓库node配置微信公众号
  • 编辑于2018-01-20 10:10

楼主解决了么

新手上路,请多包涵

我不知道你用的是koa1还是koa2
如果是koa1,中间件使用的generator(生成器),写法如下
var app=new Koa();
app.use(function *(next){

console.log(next.query);

})
如果是koa2,使用异步函数(async),因为是es7的语法,所以node版本8.0以上,才能解析es7的语法
var app=new Koa();
app.use(async function(next){

console.log(next.query);

})
好了,就这样,只能帮你这么多了

楼主解决了吗!!我也出现了这个问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题