Просмотр исходного кода

[微信公众号消息接收及处理][修改]

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
cc9c52cd5e
1 измененных файлов: 17 добавлений и 5 удалений
  1. +17
    -5
      mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java

+ 17
- 5
mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java Просмотреть файл

@@ -10,6 +10,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@@ -74,7 +75,7 @@ public class WechatCalllbackController extends BaseController {
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 {
logger.info("[" +getIpAddr() + "]接收微信请求 /{appId}/callback");
InputStream inStream = request.getInputStream();
@@ -110,7 +111,7 @@ public class WechatCalllbackController extends BaseController {
// aes加密的消息
WxMpXmlMessage inMessage = WxOpenXmlMessage.fromEncryptedMpXml(resultxml,
wxOpenService.getWxOpenConfigStorage(), timestamp, nonce, msgSignature);
this.logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString());
logger.debug("\n消息解密后内容为:\n{} ", inMessage.toString());
// 全网发布测试用例
if (StringUtils.equalsAnyIgnoreCase(appId, "wxd101a85aa106f53e", "wx570bc396a51b8ff8")) {
try {
@@ -136,11 +137,22 @@ public class WechatCalllbackController extends BaseController {
logger.error("callback", e);
}
} 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;
}
}

Загрузка…
Отмена
Сохранить