1、公众号的类别和注册
1.1 公众号类别
微信公众号目前有三种,订阅号、服务号、企业号,另外还有一种后来推出的和公众号带点关系的小程序。
订阅号、服务号和企业号的功能区别如下(更多详细区别戳
参考链接):
![1007017-20180612095223988-844086221.jpg](https://i-blog.csdnimg.cn/blog_migrate/20ae105a8eff641a84780ec2708ecb93.jpeg)
而在我们微信的日常使用中可以看到,订阅号会集中放置在“订阅号”中,不会直接出现在聊天栏,而是放在二级目录下(如虎嗅网、36氦)。服务号的话,则是直接放在聊天面板的一级目录中的(如中国移动10086),主要是用以部分大公司企业提供服务,而订阅号主打是咨询和媒体。而企业号主要是用于公司内部交流,使用不多,这里不展开描述。
1.2 公众号注册
公众号是独立于微信的,需要单独注册然后对微信进行绑定,所以你如果不注册而是直接用你的微信号直接去登陆公众号平台是无法登陆的。
公众号的注册(注册
参考链接)根据开发需要进行选择公众号的不同类别,注册流程简单,填写基本信息,邮箱激活,信息登记等流程按照官方走完,你就拥有了一个公众号了。
登陆微信的公众平台,微信提供了两种模式,开发和非开发,非开发模式下提供了一些基本的如消息发送,菜单定义等,而开发模式的话,则除了非开发的基本功能,还可以根据微信提供的接口创造更多有趣的功能。需要注意的是,一个微信只能在两种模式择一,选择开发模式,则非开发模式会关闭。意思就是说,假如你选择开发模式,那么如果你想定义菜单,你无法使用微信后台管理系统提供的方便的自定义菜单的功能,而是必须使用微信提供的自定义菜单的接口,通过调用接口来实现。
2、微信平台消息传递的基本过程
先讲一下微信平台消息的基本传递过程,接下来的更多概念和接口用法才更容易理解。
我们在使用一些微信公众号的时候,肯定遇到过这种情况,给公众号发送一些消息,它会回复你不同的内容,也就是说,该微信公众号可以识别你的消息类型、内容,然后做出不同的反馈。甚至复杂的,可以模拟出一个自动应答的机器人。(如下图的中国移动为例)
![1007017-20180612095224459-59804053.jpg](https://i-blog.csdnimg.cn/blog_migrate/fe8e110a2e46d9cd46cfccfad1d8daa0.jpeg)
那么我们就了解下这个消息发送过去的处理过程是怎样的。
借用一下
方倍老师博客中的图片和部分叙述:
![1007017-20180612095225299-266415942.png](https://i-blog.csdnimg.cn/blog_migrate/534c28e545ed61d230da55e44ed2965a.png)
用户在给公众号发送一条消息时,并不是直接到达我们的服务器,而是先到达微信服务器,微信服务器会将用户的消息组装为一些特定格式的xml文件,这个xml文件就包括了收发人、消息类型、发送时间等等,然后再交给我们的服务器。我们的服务器对这种格式的消息进行解析,根据需要进行判断,再把我们想要返回的消息组装成一个符合微信规范的xml文件,发给微信服务器,然后交由它进行解析和回传处理。
(其中GET方式请求访问我们的服务器是主要用于微信服务器的校验,POST方式大多是用于交互,即用户发送消息我们设置逻辑进行响应,所以通常请求到我们的服务器以后,要根据不同的请求类型进行判断后,再进行逻辑处理)
所以到这里,我们现在有了微信公众号,除了代码,我们还需要承载代码的服务器,因为微信是在线的,这要求我们的服务器也在线,而不像我们往常测试web项目在自己电脑运行就可以了,所以很多教程也会在开篇告诉读者先去网上准备服务器,作为环境开发。
对于详细的服务器准备,和代码的基本部署,这里就不再详细展开了,可以直接参考下面两篇博文:
如果还希望看到更多的相关参考,那么下面这几个参考链接也是不错的:
当然,使用在线服务器很不方便,因为每次改动代码,需要你重新上传war包,或者说不是不方便,简直就是难以测试。所以我们要
想办法让我们的本地电脑就能当成在线服务器使用,即内网映射,这样就能做到本地测试。这个留到下篇来讲。