63 lines
2.1 KiB
Java
63 lines
2.1 KiB
Java
package com.ruoyi.api;
|
||
|
||
import com.ruoyi.api.domain.WeChatMessage;
|
||
import com.ruoyi.api.service.IWeChatMessageService;
|
||
import com.ruoyi.busi.utils.WeChatUtils;
|
||
import com.ruoyi.common.annotation.Anonymous;
|
||
import com.wechat.pay.java.core.http.HttpMethod;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.web.bind.annotation.GetMapping;
|
||
import org.springframework.web.bind.annotation.RequestMapping;
|
||
import org.springframework.web.bind.annotation.RestController;
|
||
|
||
import javax.annotation.Resource;
|
||
import javax.servlet.http.HttpServletRequest;
|
||
import javax.servlet.http.HttpServletResponse;
|
||
import java.io.IOException;
|
||
import java.io.PrintWriter;
|
||
|
||
@RestController
|
||
@RequestMapping("/wxMsgApi")
|
||
public class WxMsgApi {
|
||
@Autowired
|
||
private WeChatUtils weChatUtils;
|
||
@Resource
|
||
private IWeChatMessageService weChatMessageService;
|
||
|
||
/**
|
||
* 校验签名
|
||
*
|
||
* @param message {@link WeChatMessage}
|
||
* @param request {@link HttpServletRequest}
|
||
* @return java.lang.Object
|
||
* @author PQZ
|
||
* @date 12:17 2025/4/25
|
||
**/
|
||
@RequestMapping("/message")
|
||
@Anonymous
|
||
public void register(WeChatMessage message, HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||
String method = request.getMethod();
|
||
if (HttpMethod.GET.name().equalsIgnoreCase(method)) {
|
||
String echostr = weChatMessageService.checkSignature(message);
|
||
response.getOutputStream().write(echostr.getBytes());
|
||
} else if (HttpMethod.POST.name().equalsIgnoreCase(method)) {
|
||
// 进入POST聊天处理
|
||
// 将请求、响应的编码均设置为UTF-8(防止中文乱码)
|
||
request.setCharacterEncoding("UTF-8");
|
||
response.setCharacterEncoding("UTF-8");
|
||
// 接收消息并返回消息
|
||
String result = weChatMessageService.acceptMessage(request, response);
|
||
// 响应消息
|
||
PrintWriter out = response.getWriter();
|
||
out.print(result);
|
||
out.close();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|