package cc.mrbird.febs.pay.controller; import cc.mrbird.febs.common.properties.XcxProperties; import cc.mrbird.febs.common.utils.SpringContextHolder; import cc.mrbird.febs.pay.util.WechatEventUtil; import cc.mrbird.febs.pay.util.WeixinServiceUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * 微信事件通知 - 控制层 */ @Slf4j @RestController @RequestMapping(value = "/api/wechat/reply") public class AutoReplyController { private final String wechatToken = "ywgpzfwh"; @Autowired WechatEventUtil wechatEventUtil; /** * 服务器校验 * @param req 请求 * @return 校验结果 */ @GetMapping("/event") public String verification(HttpServletRequest req) { return wechatEventUtil.verification(req, wechatToken); } /** * 消息事件 * @param req 请求 * @return 结果 */ @PostMapping("/event") public void messageEvent(HttpServletRequest req, HttpServletResponse resp) throws IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); String message = "success"; PrintWriter out = resp.getWriter(); try { String messageEvent = wechatEventUtil.messageEvent(req); if(messageEvent != null) { message = messageEvent; } } catch (Exception e) { e.printStackTrace(); } finally { log.info("消息事件:"+message); out.write(message); if (out != null) { out.close(); } } } }