content: package org.ruoyi.controller;
  
  
  import jakarta.servlet.http.HttpServletRequest;
  import lombok.extern.slf4j.Slf4j;
  import org.apache.commons.lang3.StringUtils;
  import org.ruoyi.service.WeixinUserService;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.web.bind.annotation.*;
  
  /**
   * 企业微信应用
   *
   * @author ageerle
   * @date 2025-05-03
   */
  @Slf4j
  @RestController
  public class WeixinServerController {
  
      @Autowired
      private WeixinUserService weixinUserService;
  
      @GetMapping(value = "/weixin/check")
      public String weixinCheck(HttpServletRequest request) {
          String signature = request.getParameter("signature");
          String timestamp = request.getParameter("timestamp");
          String nonce = request.getParameter("nonce");
          String echostr = request.getParameter("echostr");
  
          if (StringUtils.isEmpty(signature) || StringUtils.isEmpty(timestamp) || StringUtils.isEmpty(nonce)) {
              return "";
          }
          weixinUserService.checkSignature(signature, timestamp, nonce);
          return echostr;
      }
  
      @PostMapping(value = "/weixin/check")
      public String weixinMsg(@RequestBody String requestBody, @RequestParam("signature") String signature,
          @RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce) {
  
          log.debug("requestBody:{}", requestBody);
          log.debug("signature:{}", signature);
          log.debug("timestamp:{}", timestamp);
          log.debug("nonce:{}", nonce);
  
          weixinUserService.checkSignature(signature, timestamp, nonce);
          return weixinUserService.handleWeixinMsg(requestBody);
      }
  
  }
  