微信被动返回消息接口解析不了返回的xml,提示“该公共账号暂时无法提供服务,请稍后再试”
//请求处理中的逻辑
//关键字自动回复
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
logger.info("::返回的用户的内容是"+printContent);把这个日志贴出来看看
怀疑是 System.currentTimeMillis()/1000+"" 这里,应该先转成整型吧
换一个工号调试!