最近从新研究了微信公众号的高级接口,原来也利用C#或JAVA写过微信公众号,主要是消息的基础接口。前端
因为当时不知道微信公众号能够申请测试公众号,微信测试公众号基本上没有任何限制,对于开发来讲是一个不错的选择,node
之后如须要实现本身的公众号只须要认证或申请服务号,把代码中的APPID和APPSECERT进行替换就OK了。webpack
本次主要是用NodeJS为进行实现,为何换成NodeJS呢而不是之前已处理好的C#或JAVA呢?git
主要是想用一个免费的公共云服务进行部署应用(具体https://leancloud.cn/),二是NodeJS处理起来比较简单不须要编译和发布。github
现在前端的百花齐放不也正是由于V8和NodeJS的出现么,各类前端构建工具,如webpack,gulp,grunt等。web
如利用NodeJS写一个命令行工具也是很简单的。gulp
如文件搜索过滤。服务器
如去除代码文件中的换行符或注释(利用nodejs stream的pipe能够很简单的处理)微信
处理前前端构建
处理后
代码:
好像扯了比较远呢。回到正题。
微信公众号主要是经过消息的转发进行实现大部分工做。
如客户端须要查询天气状况,客户端先发送获取天气指令消息到公众号(微信服务器),微信服务器将消息转发到开发的应用程序,
应用程序接受到消息后,判断是获取天气的指令,而后经过第三方平台的天气接口进行查询天气状况,并把结果返回到客户端。
代码处理,第一步将微信的XML消息转换成JSON格式,程序比较容易处理。
第二步根据微信的消息类型进行消息处理。
第三步根据消息进行处理并返回处理结果
上面只是简单的消息,还有其余如建立菜单,订阅事件,上报地理处理,扫一扫,JSSDK,订阅用户列表,获取用户信息(直接获或经过oatuh2.0获取)等接口。
如感兴趣可获取源码:https://github.com/hhqqnu/weixin
实现最后的效果: