微信被动返回消息接口解析不了返回的xml,提示“该公共账号暂时无法提供服务,请稍后再试”

发布于 2021-11-28 09:22:11 字数 2376 浏览 736 评论 2

//请求处理中的逻辑

//关键字自动回复
   if(msg.getMsgType().equals("text")){
    logger.info("::WxOauthAction checkUrl() getEvent() ,调用了text ");
    String content = getUserMsgReturnMsg(msg);
    logger.info("::WxOauthAction checkUrl() getEvent(),打印的内容是:"+content);
    PrintWriter pw = response.getWriter();
    pw.print(content);
    pw.flush();
   }


public String getUserMsgReturnMsg(WeChatReceiveMsg msg){
  String msgType = msg.getMsgType();
  String printContent = "";
  try {
  if(msgType.equals("text")){
   String keywords = msg.getContent();
   WXKeywordsDao wxk = new WXKeywordsDao();
   String content = wxk.getContentByKeywords(keywords);
   if(StringUtils.isNotBlank(content))
    printContent = getTextXml(msg, content);
    logger.info("::返回的用户的内容是"+printContent);
   }
  }catch (Exception e) {
   e.printStackTrace();
  }
  return printContent;
 }
  
 private String getTextXml(WeChatReceiveMsg msg ,String content){
  StringBuffer sb = new StringBuffer("<xml>"
    + "<ToUserName><![CDATA[#toUser#]]></ToUserName>"
    + "<FromUserName><![CDATA[#fromUser#]]></FromUserName>"
    + "<CreateTime>#time#</CreateTime>"
    + "<MsgType><![CDATA[text]]></MsgType>"
    + "<content><![CDATA[#content#]]></content>"
    + "</xml>");
  String str = sb.toString();
  str = str.replace("#toUser#", msg.getFromUserName());
  str = str.replace("#fromUser#", msg.getToUserName());
  str = str.replace("#time#", System.currentTimeMillis()/1000+"");
  str = str.replace("#content#", content);
  return str;
 }

请大神指点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凡尘雨 2021-11-29 23:36:42

logger.info("::返回的用户的内容是"+printContent);把这个日志贴出来看看

怀疑是  System.currentTimeMillis()/1000+""  这里,应该先转成整型吧

一个人的旅程 2021-11-29 12:11:57

换一个工号调试!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文