| @@ -10,6 +10,7 @@ import org.apache.commons.lang3.StringUtils; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.http.MediaType; | |||||
| import org.springframework.stereotype.Controller; | import org.springframework.stereotype.Controller; | ||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| @@ -74,7 +75,7 @@ public class WechatCalllbackController extends BaseController { | |||||
| return "success"; | return "success"; | ||||
| } | } | ||||
| @RequestMapping("/{appId}/callback") | |||||
| @RequestMapping(value = "/{appId}/callback", method = RequestMethod.POST, produces = MediaType.TEXT_XML_VALUE) | |||||
| public Object callback(@PathVariable("appId") String appId, HttpServletRequest request) throws IOException { | public Object callback(@PathVariable("appId") String appId, HttpServletRequest request) throws IOException { | ||||
| logger.info("[" +getIpAddr() + "]接收微信请求 /{appId}/callback"); | logger.info("[" +getIpAddr() + "]接收微信请求 /{appId}/callback"); | ||||
| InputStream inStream = request.getInputStream(); | InputStream inStream = request.getInputStream(); | ||||
| @@ -110,7 +111,7 @@ public class WechatCalllbackController extends BaseController { | |||||
| // aes加密的消息 | // aes加密的消息 | ||||
| WxMpXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedMpXml(resultxml, | WxMpXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedMpXml(resultxml, | ||||
| wxOpenService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); | wxOpenService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature); | ||||
| this.logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString()); | |||||
| logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString()); | |||||
| // 全网发布测试用例 | // 全网发布测试用例 | ||||
| if (StringUtils.equalsAnyIgnoreCase(appId, "wxd101a85aa106f53e", "wx570bc396a51b8ff8")) { | if (StringUtils.equalsAnyIgnoreCase(appId, "wxd101a85aa106f53e", "wx570bc396a51b8ff8")) { | ||||
| try { | try { | ||||
| @@ -136,11 +137,22 @@ public class WechatCalllbackController extends BaseController { | |||||
| logger.error("callback", e); | logger.error("callback", e); | ||||
| } | } | ||||
| } else { | } else { | ||||
| WxMpXmlOutMessage outMessage = wxOpenService.getWxOpenMessageRouter().route(inMessage, appId); | |||||
| if (outMessage != null) { | |||||
| out = WxOpenXmlMessage.wxMpOutXmlMessageToEncryptedXml(outMessage, wxOpenService.getWxOpenConfigStorage()); | |||||
| /**判断消息类型,调用对应的方法*/ | |||||
| switch (inMessage.getMsgType()){ | |||||
| /* | |||||
| case "event": | |||||
| case "text": | |||||
| WxMpXmlOutMessage outMessage = wxOpenService.getWxOpenMessageRouter().route(inMessage, appId); | |||||
| if (outMessage != null) { | |||||
| out = WxOpenXmlMessage.wxMpOutXmlMessageToEncryptedXml(outMessage, wxOpenService.getWxOpenConfigStorage()); | |||||
| } | |||||
| */ | |||||
| default: | |||||
| return "success"; | |||||
| } | } | ||||
| } | } | ||||
| logger.info(out); | |||||
| return out; | return out; | ||||
| } | } | ||||
| } | } | ||||