首先这不是关于jfinal的问题,但是实在是找不到答案了,只能再次求助,望大佬们不吝赐教。
问题是这样的,我自己实现了微信公众号开发的相关代码(功能比较简单),做到自动回复这一块的时候发现了一个比较灵异的状况:关注事件、菜单点击事件、模板消息发送推送事件都可以正常响应,但是文本回复事件却得不到正常的响应。我打印出了我的返回值貌似也没有任何问题
<xml> <ToUserName><![CDATA[o-uf2t6R0dVazSU1uzxGnNw4cu9U]]></ToUserName> <FromUserName><![CDATA[gh_ae2e574e89a8]]></FromUserName> <CreateTime>1572261071113</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[你好]]></Content> </xml>
文本自动回复在关注事件里可以正常回复,普通文本就不行了,我在公众号发送一个“你好”,控制台也看也执行了,生成了xml,但公众号就是没反应
主要代码如下:
controller:
private void optionText(Map<String,String> msg) throws WxTokenException {
System.out.println(msg.get("Content"));
switch (msg.get("Content")){
case "模板列表"://发送文本分情况讨论
//下面这句执行成功但公众号没有收到信息
renderText(wxService.replyText(msg.get("FromUserName"),"已收到"+msg.get("Content")+"请求"));
//下面这句发送模板成功
wxService.sendTemplate(WxTemplateUtil.auditResultTemplate(msg.get("FromUserName"),"张三","2019-10-10 10:10:10",0,""));
break;
case "你好"://收到“你好”执行 成功,但是没有收到信息
renderText(wxService.replyText(msg.get("FromUserName"),"你好"));
break;
default://随便输入东西也收不到信息
renderText(wxService.replyText(msg.get("FromUserName"),"输入关键字有误"));
}
}WxService:
/**
* 回复文本
* @param openId 收消息的用户
* @param text 文本内容
* @return 返回微信支持的格式
*/
public String replyText(String openId,String text){
String result = String.format(
"<xml>" +
"<ToUserName><![CDATA[%s]]></ToUserName>" +
"<FromUserName><![CDATA[%s]]></FromUserName>" +
"<CreateTime>%s</CreateTime>" +
"<MsgType><![CDATA[text]]></MsgType>" +
"<Content><![CDATA[%s]]></Content>" +
"</xml>",
openId, this.wxNo, new Date().getTime(),text);
System.out.println(result);
return result;
}