接入微信公众号是开发的第一步。(项目github位置:https://github.com/Panfen/wem...)1、使用公众平台测试账号登录微信公众平台。由于很多开发者都没有微信认证公众号,所以比较便宜这个方法中的方法是使用公众平台测试账号来测试功能,优点是可以测试微信的大部分功能公众号不受认证门槛的限制。进入测试账号管理界面:我们需要配置该界面的信息,URL和Token是微信公众平台与本地开发服务建立连接的桥梁。微信配置完成后,扫描屏幕下方测试号二维码,即可在手机端测试开发的功能。2.验证公众号一图胜千言。访问公众号时,微信公众平台需要验证开发者身份,并向开发者填写的URL发送GET请求。该请求包含4个参数:signature、echostr、timestamp和nonce。收到这个请求后,我们需要做什么:将token、timestamp、nonce这三个参数在字典中排序;将三个字符串拼接成一个字符串进行sha1加密;将加密后的字符串与签名进行比较,如果相同,则说明请求来自微信,我们直接原样返回echostr的内容,访问验证成功。3、搭建开发服务器搭建开发服务器的方式有很多种,比如购买云服务器、使用花生壳、ngrok、localtunnel等,这里为了简单起见使用localtunnel。先全局安装localtunnel,npminstall-gltstartltlt--port8080//对外暴露8080端口,端口号可以自己设置4.写代码,现在开始写的代码app.js:'usestrict'varkoa=require('koa');varsha1=require('sha1');varconfig={wechat:{appID:'...',//填自己的appIDappSecret:'...',//填写自己的appSecrettoken:'...'//填写自己的token}};varapp=newKoa();app.use(function*(next){vartoken=config.wechat.token;varsignature=this.query.signature;varnonce=this.query.nonce;vartimestamp=this.query.timestamp;varechostr=this.query.echostr;varstr=[token,timestamp,nonce].sort().join('');//按字典排序,拼接字符串varsha=sha1(str);//加密this.body=(sha===signature)?echostr+'':'failed';//比较并返回结果});app.listen(8080);5.配置测试公众号信息代码编写完毕,现在开始正式配置。在终端输入lt--port8080启动localtunnel,得到一个外部可访问的URL:在测试账号管理界面的URL中填写这个URL,Token字段随意填写。为方便起见,请使用wemovie!填写完成后点击提交,发现验证成功,恭喜!注意:由于localtunnel不是很稳定,可能是一开始点击提交时黄条配置失败,需要点击一次或两次按钮;每次重启程序,都需要重启localtunnel获取新的URL,然后重新配置。(这就是选择简单的代价T_T)至此,微信公众号开发的大门已经打开。接下来,我们继续探索nodejs微信公众号开发之旅。
