收藏
回答

微信公众号回调url判断到关注事件后返回xml消息通知,但是没有消息通知,我代码有问题吗?

回调请求进来了,但是return完,公众号没消息推过来。

@PostMapping("")
public String handleEvent(@RequestBody String xmlData) throws Exception {
    // 解析XML
    Document document = DocumentHelper.parseText(xmlData);
    Element root = document.getRootElement();

    // 获取关键字段
    String msgType = root.elementText("MsgType");
    String event = root.elementText("Event");
    String fromUser = root.elementText("FromUserName");
    String toUser = root.elementText("ToUserName");

    // 处理关注事件
    if ("event".equals(msgType) && "subscribe".equals(event)) {
        return buildWelcomeMessage(fromUser, toUser);
    }

    return "success";
}

/**
 * 构建欢迎消息XML
 */
private String buildWelcomeMessage(String fromUser, String toUser) {
    return String.format(
            "<xml>" +
                    "<ToUserName><![CDATA[%s]]></ToUserName>" +
                    "<FromUserName><![CDATA[%s]]></FromUserName>" +
                    "<CreateTime>%d</CreateTime>" +
                    "<MsgType><![CDATA[text]]></MsgType>" +
                    "<Content><![CDATA[欢迎关注!感谢您的支持!]]></Content>" +
                    "</xml>",
            fromUser, toUser, System.currentTimeMillis() / 1000
    );
}
回答关注问题邀请回答
收藏

1 个回答

  • Serein.
    Serein.
    2025-07-03

    已解决,问题出在响应体

    public String handleEvent(@RequestBody String xmlData) throws Exception {不能直接返回String字符串类型,需要有code:200 body: xml消息
    
    2025-07-03
    有用 1
    回复
登录 后发表内容