前言
关于微信公众号开发,Wechat-Group/weixin-java-tools框架比较流行。写篇文章来分析下,该框架处理消息的基本流程。
以下源码均来自:
(weixin-java-tools框架源码)
https://github.com/Wechat-Group/weixin-java-tools
(使用框架Demo)
https://github.com/binarywang/weixin-java-mp-demo-springboot
一、微信消息发送、响应流程
从用户发送消息
-> 微信后台收到消息,再发送消息xml给开发者后台
-> 开发者后台收到消息xml,然后根据消息的路由操作,最后组装回复的消息xml
-> 发送给微信后台
-> 给用户
二、代码流程
以Wx-toos框架源码为例子,理清楚从微信客户端发送一条消息的整个代码流程。(主要解析消息路由器的过程)
文章中所有源码均省略get、set方法
2.1 加载配置信息、配置类
该过程主要依靠,WechatMpConfiguration、WechatMpProperties两个类完成。
WechatMpProperties负责读取配置信息
@ConfigurationProperties(prefix = "wechat.mp")
public class WechatMpProperties {
/**
* 设置微信公众号的appid
*/
private String appId;
/**
* 设置微信公众号的app secret
*/
private String secret;
/**
* 设置微信公众号的token
*/
private String token;
/**
* 设置微信公众号的EncodingAESKey
*/
private String aesKey;
...
}
WechatMpConfiguration配置类,比较重要。
@Configuration
@ConditionalOnClass(WxMpService.class)
@EnableConfigurationProperties(WechatMpProperties.class)
public class WechatMpConfiguration {
...
@Bean
@ConditionalOnMissingBean
public WxMpConfigStorage configStorage() {
WxMpInMemoryConfigStorage configStorage = new WxMpInMemoryConfigStorage();
configStorage.setAppId(this.properties.getAppId());
configStorage.setSecret(this.properties.get
版权声明:本文为xsp_happyboy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。