美文网首页
配置、接入微信公众号

配置、接入微信公众号

作者: 张三疯_735d | 来源:发表于2018-02-17 15:22 被阅读0次

    首先感谢大佬分享的视频,链接:https://www.isharebest.com/nodejswechat.htm

    前期准备:提供外网IP地址的服务器(阿里云,腾讯云,ngrok等等)、安装好环境Node、webstorm等、如果是个人开发可以使用测试公众号(https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)。

    我使用的是腾讯云,购买后,在服务器上也安装好Node环境,最好使用最新版本的Node,因为我开始用的不是最新版本,后面安装Koa的时候,提示因为版本不对发生错误。
    Node版本更新,可以直接在官网上https://www.baidu.com/link?url=ylySX4--5jfmAeY4KU_ZJ5rnVvsVkMce2yY3owBNGM8FSCnuJsFcIl4Ak4yhHrqd&wd=&eqid=8234e99f00043584000000025a87d2db下载最新版本点击安装即可。

    接口配置信息代码部分

    1、新建wechat项目,然后新建app.js文件,使用git Bash 或命令行里安装Koa和sha1加密模块

    npm install Koa sha1
    

    2、app.js文件中的代码

    'use strict'  //使用严格模式
    
    var Koa = require('koa');
    var sha1 = require('sha1');
    
    var config = {  //微信公众号的基本配置信息
        wechat: {
            appID: 'wx9dad68746eaca383',
            appsecret: '6e79e2763ce3159f1d556795812a1a12',
            token: 'farm'  //自己写的一个
        }
    };
    
    var app = new Koa();
    
    app.use(function *(next) {
        console.log(this.query);  //测试微信服务端返回的数据,启动项目后,可以在命令行中看到返回的数据
        //将获取到的token、signature、nonce拼接成数组,排序、连接成字符串后使用sha1加密,判断加密后的字符串和微信服务器返回的数据中的signature是否相同,如果相同,yan
        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 = new Array(token, timestamp, nonce);
        str = str.sort().join('');
        var sha = sha1(str);
    
        console.log(signature)
    
        console.log(token)
    
        if (sha === signature) {
            this.body = echostr + '';
        }
        else {
            this.body = 'wrong';
        }
    })
    
    app.listen(80);
    console.log('listening: 80');
    

    3、通过 node --harmony app.js 启动项目。将项目IP地址和自己设定的token填入测试账号的配置信息部分。注意,要使用80端口或443端口。
    这样就配置好了。

    总结:在这次信息配置中,自己作为新手入门,还是折腾了一番,很多东西都没有接触过,例如购买服务器之类的,因为之前没有弄懂ip地址这些,作为通信专业学生,没有把计算机网络学好,很惭愧,自己尝试过用ngrok映射外网,不过这样映射的外网地址是动态的,每次启动项目后,都要重新配置URL。还有就是token验证,微信开发者文档中逻辑写的很清晰(下图),自己代码功底不足,没能自己实现,仿照视频写的,积攒一点小经验,希望以后继续努力。


    0.jpg
    微信图片_20180217152137.png

    相关文章

      网友评论

          本文标题:配置、接入微信公众号

          本文链接:https://www.haomeiwen.com/subject/acwmtftx.html