From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 01 四月 2025 16:03:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/QYWXCallBackController.java | 26 +++++++++++++++++++------- 1 files changed, 19 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/QYWXCallBackController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/QYWXCallBackController.java index b5e8e7c..9ad316a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/QYWXCallBackController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/QYWXCallBackController.java @@ -1,12 +1,13 @@ package com.ruoyi.system.controller.conslole; +import com.ruoyi.common.core.utils.StringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.log4j.Log4j2; import me.chanjar.weixin.common.util.crypto.WxCryptUtil; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @@ -31,9 +32,8 @@ private WxCryptUtil wxCryptUtil; @ApiOperation(value = "消息与事件接收配置") - @RequestMapping(value = "/qywxNotify", - method = RequestMethod.POST,consumes = "text/xml",produces = "text/xml;charset=utf-8") - public String wechatPlatformEvent(@PathVariable String APPID, + @RequestMapping(value = "/qywxNotify", method = {RequestMethod.GET,RequestMethod.POST}) + public String wechatPlatformEvent(@RequestBody(required = false) String body, HttpServletRequest request, HttpServletResponse response ) throws Exception { @@ -41,6 +41,7 @@ String timestamp = request.getParameter("timestamp"); String signature = request.getParameter("signature"); String msgSignature = request.getParameter("msg_signature"); + String echostr = request.getParameter("echostr"); String encType = request.getParameter("encrypt_type"); String xml = IOUtils.toString(request.getReader()); log.info("企业微信回调参数nonce"+nonce); @@ -49,8 +50,19 @@ log.info("企业微信回调参数msgSignature"+msgSignature); log.info("企业微信回调参数encType"+encType); log.info("企业微信回调参数xml"+xml); - String reponseStr = wxCryptUtil.decryptXml(msgSignature,timestamp,nonce,xml); - log.info("企业微信回调参数xml解析"+reponseStr); - return "SUCCESS"; + log.info("企业微信回调参数echostr"+echostr); + if(StringUtils.isNotBlank(msgSignature)&&StringUtils.isNotBlank(timestamp)&&StringUtils.isNotBlank(nonce)&&StringUtils.isNotBlank(xml)){ + String reponseStr = wxCryptUtil.decryptXml(msgSignature,timestamp,nonce,xml); + log.info("企业微信回调参数xml解析"+reponseStr); + } + if(StringUtils.isNotBlank(msgSignature)&&StringUtils.isNotBlank(timestamp)&&StringUtils.isNotBlank(nonce)&&StringUtils.isNotBlank(echostr)){ + String reponseStr = wxCryptUtil.decryptContent(msgSignature,timestamp,nonce,echostr); + log.info("企业微信回调参数xml解析"+reponseStr); + return reponseStr; + } + return echostr; } + + + } -- Gitblit v1.7.1