diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java index 1c770f4..9e6d4fe 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java @@ -28,9 +28,11 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.PrintWriter; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Date; @@ -157,8 +159,7 @@ public class WechatCalllbackController extends BaseController { @RequestMapping(value = "/{appId}/callback") @ApiOperation("消息回调") - @ResponseBody - public String callback(@PathVariable("appId") String appId, HttpServletRequest request) throws IOException { + public void callback(@PathVariable("appId") String appId, HttpServletRequest request, HttpServletResponse response) throws IOException { logger.info("[" + getIpAddr() + "]接收微信APP回调 /{appId}/callback"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); @@ -217,18 +218,30 @@ public class WechatCalllbackController extends BaseController { default: break; } - return "success"; + PrintWriter pr = response.getWriter(); + pr.print("success"); + pr.flush(); + pr.close(); + return; } case "text": WxMpXmlOutMessage outMessage = openService.getWxOpenMessageRouter().route(inMessage, appId); if (outMessage == null) { - return "success"; + PrintWriter pr = response.getWriter(); + pr.print("success"); + pr.flush(); + pr.close(); + return; } out = WxOpenXmlMessage.wxMpOutXmlMessageToEncryptedXml(outMessage, openService.getWxOpenConfigStorage()); logger.info(out); break; default: - return "success"; + PrintWriter pr = response.getWriter(); + pr.print("success"); + pr.flush(); + pr.close(); + return; } } else { // 公众号 @@ -237,18 +250,24 @@ public class WechatCalllbackController extends BaseController { WxMpXmlOutMessage outMessage = mpManager.getRouter(mpService).route(inMessage); if (outMessage == null) { this.logger.info("2 return: success"); - return "success"; + PrintWriter pr = response.getWriter(); + pr.print("success"); + pr.flush(); + pr.close(); + return; } logger.info("组装回复" + outMessage.toXml()); out = outMessage.toEncryptedXml(mpService.getWxMpConfigStorage()); logger.info("组装回复消息-->"+out); - return "success"; } catch (Exception e) { logger.error("路由消息时出现异常!", e); } } - return out; + PrintWriter pr = response.getWriter(); + pr.print(out); + pr.flush(); + pr.close(); } private void updateAuditStatus(String appId, boolean success, String reason) { diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/builder/TextBuilder.java b/mlWechatOpen/src/main/java/com/iformall/mp/builder/TextBuilder.java index d051b88..4253950 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/builder/TextBuilder.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/builder/TextBuilder.java @@ -16,13 +16,9 @@ public class TextBuilder extends AbstractBuilder { @Override public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage, WxMpService service) { - logger.info("content->" +content); - logger.info("getToUser->" +wxMessage.getToUser()); - logger.info("getFromUser->" +wxMessage.getFromUser()); WxMpXmlOutTextMessage m = WxMpXmlOutMessage.TEXT().content(content) .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) .build(); - logger.info(m.toString()); return m; }