一、初步认识微信公众平台
1、微信公众号是什么?
官网的介绍:再小的个体也有品牌。
2、微信公众平台,就是我们平时所说的“公众号”,在我刚接触微信开发时,微信公众平台的开发已经是稳定的阶段了,
微信公众平台地址:https://mp./
微信公众平台公分4大板块:订阅号、服务号、小程序、企业号。
3、公众号的类型
公众号的类型分为三种,分别是服务号和订阅号,还有一个大家比较陌生的企业号。订阅号和服务号均为传统意义的“公众号”,具有消息群发能力,前两种大家相对来说熟悉一些,第三种比较陌生。且99%以上的微信公众号都是服务号和订阅号,因此我们主要讨论这两类 。
详细区别见腾讯官方说明 :/faq/120911VrYVrA130805byM32u.html
也可参考知乎上的说明 :/question/21289814
微信公众号的帐号类型分为以下几种:
服务号——为提供服务的
订阅号——以发布信息为主
小程序——新出的产品
企业微信——企业管理使用,不对外公开
注:用户可以根据需求选择适合自己的帐号类型去注册账号,订阅号每天可以发文(每天限一条),服务号每周才能发文一次(每月限4条)
4、服务号和订阅号的区别
三:微信公众平台的通讯过程
1.当我们在微信app上,给公众号发送一条内容的时候,实际会发送到微信的服务器上,此时微信的服务器就会对内容进行封装成某种格式的数据比如xml格式,再转发到我们配置好的URL上,然后网站服务器返回这个请求的结果,再由微信服务器发送到微信app所互动的公众号上,所以该URL实际就是我们处理数据的一个请求路径。所以该URL必须是能暴露给外界访问的一个公网地址,不能使用内网地址,生产环境可以申请腾讯云,阿里云服务器等,但是在开发环境中可以暂时利用一些软件来完成内网穿透,便于修改和测试,如NATAPP,花生壳, ngrok 等软件,使用起来也很方便,在本地安装对应的软件,配置运行后,直接使用软件分配的临时域名来访问本地应用即可(下面两张图都详细的讲解了消息交互的过程)
图一:
图二
上述5个步骤中,作为开发者我们主要精力都集中在步骤3上,这个步骤主实际上要有3项任务:
1.接收来自2的XML信息
2.服务器内部逻辑执行
3.组织并返回用于4的XML信息
上述三项任务我会在后面做详细说明,并提供一整套简单、高效的处理方法。
三:解析微信服务器传来的xml消息
因为微信服务器发送过来的是xml格式的消息,所以我们可以采用 开源框架dom4j去解析xml 。
<dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency>
四:将响应消息转换成xml返回给微信服务器
如何将响应消息转换成xml返回的问题,这里我们将 采用开源框架xstream来实现Java类到xml的转换
<!-- 采用开源框架xstream来实现Java类到xml的转换 --><dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.10</version></dependency>
五:关于微信开发,最后我们来看一张结构图