配置、接入微信公众号

2018-02-17  本文已影响0人  张三疯_735d

首先感谢大佬分享的视频,链接: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
上一篇下一篇

猜你喜欢

热点阅读