Java 修改微信公众号后台服务器地址URL后,微信公众平台客服功能接收不到用户发送的消息的解决办法

在这里插入图片描述
解决办法:
检查一下微信回调URL是否转发了客服消息。

/**
 * 处理具体的回调信息
 */
@PostMapping("/callback")
public void callback(@RequestParam(name = "signature", required = false) String signature,
                       @RequestParam(name = "timestamp", required = false) String timestamp,
                       @RequestParam(name = "nonce", required = false) String nonce,
                       @RequestParam(name = "echostr", required = false) String echostr,
                       @RequestParam(name = "openid", required = false) String openid,
                       @RequestBody String msg,
                       HttpServletResponse response) {
    log.info("处理具体的回调信息");
    log.info("======微信回调msg======:" +msg);
    try {
        weChatService.handleWxCallBackMsg(msg, response);
    } catch (Exception e) {
        log.info("handleWxCallBackMsg", e);
    }
}
public void handleWxCallBackMsg(String msg, HttpServletResponse response) {
    try {
        Document document = XmlUtil.readXML(msg);
        String msgType = String.valueOf(XmlUtil.getByXPath("//MsgType", document, XPathConstants.STRING));
        if ("text".equals(msgType)) {
            handleWxTextCallBack(document, response);
        }
    } catch (Exception e) {
        log.info("handleWxCallBackMsg_error:", e);
    }
}
private void handleWxTextCallBack(Document document, HttpServletResponse response) throws Exception {
    log.info("======进入微信消息处理回调======");

    String fromUserName = String.valueOf(XmlUtil.getByXPath("//FromUserName", document, XPathConstants.STRING));
    String toUserName = String.valueOf(XmlUtil.getByXPath("//ToUserName", document, XPathConstants.STRING));
    String createTime = String.valueOf(XmlUtil.getByXPath("//CreateTime", document, XPathConstants.STRING));
    String xml = String.format("""
            <xml>
              <ToUserName><![CDATA[%s]]></ToUserName>
              <FromUserName><![CDATA[%s]]></FromUserName>
              <CreateTime>%s</CreateTime>
              <MsgType><![CDATA[transfer_customer_service]]></MsgType>
            </xml>
            """, fromUserName, toUserName, createTime);

    response.setContentType("text/xml;charset=UTF-8");
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
    response.getOutputStream().print(xml);
}

参考博客:
1.JAVA微信公众号网页开发——将接收的消息转发到微信自带的客服系统
2.将消息转发到客服

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值