首先这不是关于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; }