微信消息管理包含接收普通消息/事件推送、發送被動回覆/客服/群發/模板消息、獲取自動回覆配置等接口。核心交互模式:用戶發消息 → 微信服務器 POST XML 到開發者 URL → 開發者解析處理 → 響應 XML 給微信服務器 → 轉發給用戶。
request.getInputStream() 讀取原始 XML 流InputStream is = req.getInputStream();
SAXReader reader = new SAXReader();
Document document = reader.read(is);
Element root = document.getRootElement();
List<Element> elementList = root.elements();
Map<String, String> map = new HashMap<>();
for (Element e : elementList) {
map.put(e.getName(), e.getText());
}
構建 TextMsg Bean,設置 ToUserName/FromUserName 互換、CreateTime、MsgType="text"、Content。使用 XStream 別名映射轉換為 XML:xStream.alias("xml", TextMsg.class)。
構建 PicAndTextMsg 包含 Article 列表,每個 Article 含 Title、Description、PicUrl、Url。MsgType="news",ArticleCount 設置列表大小。XStream 需額外別名:xStream.alias("item", Article.class) 確保生成符合規範的 <item> 節點。
List<Article> articles = new ArrayList<>();
Article a = new Article();
a.setTitle("圖文標題");
a.setDescription("描述內容");
a.setPicUrl("有效圖片URL");
a.setUrl("點擊跳轉鏈接");
articles.add(a);
PicAndTextMsg msg = new PicAndTextMsg();
msg.setArticles(articles);
msg.setArticleCount(1);
// ... 設置公共字段
String xml = xStream.toXML(msg);
resp.getWriter().print(xml);
doGet():服務器接入驗證doPost():消息接收解析 + 自動回覆(文本/圖文)