Java 识堂:高原创、高收藏、有干货的微信公众号,欢迎关注

2024-08-07
来源:网络整理

本文为小编原创文章,首发于Java知识堂,一个原创度高、收藏度高、实用性强的微信公众号,一起成长、一起提高,欢迎关注

源代码

地址:

渲染

如果你不需要定制服务,只是想要推送一些文章,则不需要自己开发服务器,步骤1和步骤4就足够了。

本地测试下载解决外网访问内网问题

LZ 使用 -

下载链接:

LZ看了作者的博文后下载了Win版本并进行了设置

所以我将本地地址映射到

但中国人很真诚,所以我用了另一个

教程地址:

ngrok http 80

进入软件所在路径,在命令行中运行上述命令,这样会把一个外网地址映射到内网,但是每次重启域名都会变。

创建测试账户

地址:

并将在未来使用

url的内容是,其中//是接口名,因为是Boot项目,所以不用写项目名,随便写,主要是为了验证,点击提交会显示配置失败,因为还要启动本地服务,让微信完成验证

这是官方的验证声明:

开启本地服务,点击提交即可成功。

框架

api里有3个类,(get),(save and),(菜单管理,LZ只写了创建菜单的函数。查询和删除可以根据自己的需求来写)

bean 中有 1 个类需要保存

有一个类是与微信交互的接口

有4个类,(事件类型),(消息类型),(消息处理器),(默认消息处理器)

msg中有三种类型的类,是事件类型,in是接收消息的类型,out是发送消息的类型。

UI封装了菜单类和各种按钮类

util中有3个类: (微信验证的类)、 (发送get和post的类)、 (xml转为map的辅助类)

它是由UI包中的各种图形控件组成的界面。

整个想法

消息类的继承关系如图所示,接收的消息和发送的消息都继承一个基类,方便对消息进行统一处理。

将接收到的XML文件统一转换成map,根据type类型确定数据类型,再通过map构建消息类型,也就是工厂模式。并将各类消息的处理交给各类抽象函数,这样就实现了各类消息的处理。

消息构造完成后,会以 XML 文件的形式发送到微信公众平台。我知道的有两种方法可以处理,一种是使用库将 Java 对象转换为 XML 类型。这种方法每次都需要 new 一个对象,比较麻烦。我没有使用这种方法,而是重写了 () 函数。这样每次发送消息时,父类都会调用 () 函数,如下所示。但是对图文消息类型不太友好,LZ 很少用图文消息,所以我还是用 () 函数。

数据测试

地址如下:你可以检查一下返回的数据是否正确。

分享