From b3b57c13d1705400b71cc75564053b47ba222a64 Mon Sep 17 00:00:00 2001 From: mofung1 <2279254178@qq.com> Date: Tue, 21 Mar 2023 14:51:01 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E9=AA=8C=E8=AF=81=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../channel/ChannelOaCallBackController.java | 45 ++++ .../service/IChannelOaCallBackService.java | 29 +++ .../impl/ChannelOaCallBackServiceImpl.java | 197 ++++++++++++++++++ 3 files changed, 271 insertions(+) create mode 100644 server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/service/IChannelOaCallBackService.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java new file mode 100644 index 00000000..a7d91bf6 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java @@ -0,0 +1,45 @@ +package com.mdd.admin.controller.channel; + + +import com.mdd.admin.service.IChannelOaCallBackService; +import io.swagger.annotations.Api; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + + +@AllArgsConstructor +@RestController +@RequestMapping("api/channel/oa") +@Api(tags = "公众号服务器验证及消息回复") +public class ChannelOaCallBackController { + + + @Resource + private IChannelOaCallBackService iChannelOaCallBackService; + + // 公众号服务器验证, 消息回复 + @GetMapping(name = "/callback", produces = "text/plain;charset=utf-8") + public String authGet(@RequestParam(name = "signature", required = false) String signature, + @RequestParam(name = "timestamp", required = false) String timestamp, + @RequestParam(name = "nonce", required = false) String nonce, + @RequestParam(name = "echostr", required = false) String echostr) { + return iChannelOaCallBackService.checkSignature(signature, timestamp, nonce, echostr); + } + + + // 消息回复 + @PostMapping(produces = "application/xml; charset=UTF-8") + public String post(@RequestBody String requestBody, + @RequestParam("signature") String signature, + @RequestParam("timestamp") String timestamp, + @RequestParam("nonce") String nonce, + @RequestParam(name = "encrypt_type", required = false) String encType, + @RequestParam(name = "msg_signature", required = false) String msgSignature) { + + return iChannelOaCallBackService.post(requestBody, signature, timestamp, nonce, encType, msgSignature); + } + + +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/IChannelOaCallBackService.java b/server/like-admin/src/main/java/com/mdd/admin/service/IChannelOaCallBackService.java new file mode 100644 index 00000000..2a42bab9 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/service/IChannelOaCallBackService.java @@ -0,0 +1,29 @@ +package com.mdd.admin.service; + + +/** + * 公众号服务器回调 + */ +public interface IChannelOaCallBackService { + + + /** + * 服务器验证 + */ + String checkSignature(String signature, String timestamp, String nonce, String echostr); + + + /** + * 消息回复 + * + * @param requestBody + * @param signature + * @param timestamp + * @param nonce + * @param encType + * @param msgSignature + * @return + */ + String post(String requestBody, String signature, String timestamp, String nonce, String encType, String msgSignature); + +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java new file mode 100644 index 00000000..c7199d45 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java @@ -0,0 +1,197 @@ +package com.mdd.admin.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mdd.admin.service.IChannelOaCallBackService; +import com.mdd.common.entity.OfficialReply; +import com.mdd.common.exception.OperateException; +import com.mdd.common.mapper.OfficialReplyMapper; +import com.mdd.common.plugin.wechat.WxMnpDriver; +import me.chanjar.weixin.common.api.WxConsts; +import me.chanjar.weixin.mp.api.WxMpService; +import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; +import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +import java.util.List; + +import static me.chanjar.weixin.common.api.WxConsts.EventType.SUBSCRIBE; + +@Service +public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { + + + @Resource + private OfficialReplyMapper officialReplyMapper; + + + /** + * 服务器验证 + * + * @param signature + * @param timestamp + * @param nonce + * @param echostr + * @return + */ + @Override + public String checkSignature(String signature, String timestamp, String nonce, String echostr) { + WxMpService wxMpService = WxMnpDriver.oa(); + if (wxMpService.checkSignature(timestamp, nonce, signature)) { + // 消息合法, 原样返回echostr + return echostr; + } + return "非法请求"; + } + + + /** + * 消息回复 + * + * @param requestBody + * @param signature + * @param timestamp + * @param nonce + * @param encType + * @param msgSignature + * @return + */ + @Override + public String post(String requestBody, String signature, String timestamp, String nonce, String encType, String msgSignature) { + + WxMpService wxMpService = WxMnpDriver.oa(); + if (!wxMpService.checkSignature(timestamp, nonce, signature)) { + throw new IllegalArgumentException("非法请求,可能属于伪造的请求!"); + } + + String out = null; + if (encType == null) { + // 明文传输的消息 + WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(requestBody); + WxMpXmlOutMessage outMessage = this.msgHandler(inMessage); + if (outMessage == null) { + return ""; + } + out = outMessage.toXml(); + + } else if ("aes".equalsIgnoreCase(encType)) { + // aes加密的消息 + WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(requestBody, wxMpService.getWxMpConfigStorage(), + timestamp, nonce, msgSignature); + + WxMpXmlOutMessage outMessage = this.msgHandler(inMessage); + if (outMessage == null) { + return ""; + } + out = outMessage.toEncryptedXml(wxMpService.getWxMpConfigStorage()); + } + + return out; + } + + /** + * 消息处理 + * + * @param wxMessage + * @return + */ + private WxMpXmlOutMessage msgHandler(WxMpXmlMessage wxMessage) { + try { + // 文本消息 + if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.TEXT)) { + String msg = keyMsg(wxMessage); + return textBuild(msg, wxMessage); + } + + // 事件消息 + if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.EVENT)) { + if (wxMessage.getEvent().equals(SUBSCRIBE)) { + // 关注回复 + String msg = subMsg(); + return textBuild(msg, wxMessage); + } + } + } catch (Exception e) { + throw new OperateException("公众号回调错误" + e.getMessage()); + } + return null; + } + + /** + * 返回文本消息 + * + * @param content + * @param wxMessage + * @return + */ + private WxMpXmlOutMessage textBuild(String content, WxMpXmlMessage wxMessage) { + return WxMpXmlOutMessage.TEXT().content(content) + .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) + .build(); + } + + /** + * 关键词回复 + * + * @param wxMessage + * @return + */ + private String keyMsg(WxMpXmlMessage wxMessage) { + List oaReplyList = officialReplyMapper.selectList( + new QueryWrapper() + .eq("reply_type", 2) + .eq("is_delete", 0) + .eq("status", 1) + .orderByAsc("id")); + + String msg = null; + for (OfficialReply oaReply : oaReplyList) { + // 全匹配 + if (oaReply.getMatchingType() == 1 && oaReply.getKeyword().equals(wxMessage.getContent())) { + msg = oaReply.getContent(); + } + // 模糊匹配 + if (oaReply.getMatchingType() == 2 && wxMessage.getContent().contains(oaReply.getKeyword())) { + msg = oaReply.getContent(); + } + } + + return msg == null ? defaultMsg() : msg; + } + + /** + * 默认回复 + * + * @return + */ + private String defaultMsg() { + OfficialReply officialReply = officialReplyMapper.selectOne(new QueryWrapper() + .eq("reply_type", 3) + .eq("is_delete", 0) + .eq("status", 1) + .last("limit 1")); + if (officialReply == null) { + return null; + } + return officialReply.getContent(); + } + + /** + * 关注回复内容 + * + * @return + */ + private String subMsg() { + OfficialReply officialReply = officialReplyMapper.selectOne(new QueryWrapper() + .eq("reply_type", 1) + .eq("is_delete", 0) + .eq("status", 1) + .last("limit 1")); + if (officialReply == null) { + return defaultMsg(); + } + return officialReply.getContent(); + } + +} From a32d023a8c64362759dacf9e9ca1a84d188e597e Mon Sep 17 00:00:00 2001 From: mofung1 <2279254178@qq.com> Date: Tue, 21 Mar 2023 14:52:53 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?=E5=92=8C=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/channel/ChannelOaCallBackController.java | 3 --- .../mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java | 1 - 2 files changed, 4 deletions(-) diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java index a7d91bf6..c59ef592 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java @@ -1,15 +1,12 @@ package com.mdd.admin.controller.channel; - import com.mdd.admin.service.IChannelOaCallBackService; import io.swagger.annotations.Api; -import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -@AllArgsConstructor @RestController @RequestMapping("api/channel/oa") @Api(tags = "公众号服务器验证及消息回复") diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java index c7199d45..c573f425 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java @@ -39,7 +39,6 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { public String checkSignature(String signature, String timestamp, String nonce, String echostr) { WxMpService wxMpService = WxMnpDriver.oa(); if (wxMpService.checkSignature(timestamp, nonce, signature)) { - // 消息合法, 原样返回echostr return echostr; } return "非法请求"; From d5c622693040539b51fccb26b08d53e0f62e3413 Mon Sep 17 00:00:00 2001 From: mofung1 <2279254178@qq.com> Date: Tue, 21 Mar 2023 15:05:23 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E5=9B=9E=E8=B0=83=E6=8E=A5=E5=8F=A3=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/channel/ChannelOaCallBackController.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java index c59ef592..8ac546c1 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java @@ -1,6 +1,7 @@ package com.mdd.admin.controller.channel; import com.mdd.admin.service.IChannelOaCallBackService; +import com.mdd.common.aop.NotLogin; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.*; @@ -17,6 +18,7 @@ public class ChannelOaCallBackController { private IChannelOaCallBackService iChannelOaCallBackService; // 公众号服务器验证, 消息回复 + @NotLogin @GetMapping(name = "/callback", produces = "text/plain;charset=utf-8") public String authGet(@RequestParam(name = "signature", required = false) String signature, @RequestParam(name = "timestamp", required = false) String timestamp, @@ -27,6 +29,7 @@ public class ChannelOaCallBackController { // 消息回复 + @NotLogin @PostMapping(produces = "application/xml; charset=UTF-8") public String post(@RequestBody String requestBody, @RequestParam("signature") String signature, From 76ba23188c946196fb72f10abf4debcab7792470 Mon Sep 17 00:00:00 2001 From: mofung1 <2279254178@qq.com> Date: Tue, 21 Mar 2023 15:37:54 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E6=9C=8D=E5=8A=A1=E6=A0=A1=E9=AA=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/channel/ChannelOaCallBackController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java index 8ac546c1..1460f0f9 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java @@ -9,7 +9,7 @@ import javax.annotation.Resource; @RestController -@RequestMapping("api/channel/oa") +@RequestMapping("api/channel/oa/callback") @Api(tags = "公众号服务器验证及消息回复") public class ChannelOaCallBackController { @@ -19,7 +19,7 @@ public class ChannelOaCallBackController { // 公众号服务器验证, 消息回复 @NotLogin - @GetMapping(name = "/callback", produces = "text/plain;charset=utf-8") + @GetMapping(produces = "text/plain;charset=utf-8") public String authGet(@RequestParam(name = "signature", required = false) String signature, @RequestParam(name = "timestamp", required = false) String timestamp, @RequestParam(name = "nonce", required = false) String nonce, From 55436c011adb3cd1817a4a848a8770a970e9606f Mon Sep 17 00:00:00 2001 From: mofung1 <2279254178@qq.com> Date: Tue, 21 Mar 2023 16:13:52 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E5=9B=9E=E8=B0=83=E6=8E=A5=E5=8F=A3=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../channel/ChannelOaCallBackController.java | 7 ++- .../impl/ChannelOaCallBackServiceImpl.java | 47 ++++++++++--------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java index 1460f0f9..205cd6c8 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/channel/ChannelOaCallBackController.java @@ -3,6 +3,7 @@ package com.mdd.admin.controller.channel; import com.mdd.admin.service.IChannelOaCallBackService; import com.mdd.common.aop.NotLogin; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -13,13 +14,12 @@ import javax.annotation.Resource; @Api(tags = "公众号服务器验证及消息回复") public class ChannelOaCallBackController { - @Resource private IChannelOaCallBackService iChannelOaCallBackService; - // 公众号服务器验证, 消息回复 @NotLogin @GetMapping(produces = "text/plain;charset=utf-8") + @ApiOperation(value="公众号服务器地址验证") public String authGet(@RequestParam(name = "signature", required = false) String signature, @RequestParam(name = "timestamp", required = false) String timestamp, @RequestParam(name = "nonce", required = false) String nonce, @@ -28,16 +28,15 @@ public class ChannelOaCallBackController { } - // 消息回复 @NotLogin @PostMapping(produces = "application/xml; charset=UTF-8") + @ApiOperation(value="公众号消息回复") public String post(@RequestBody String requestBody, @RequestParam("signature") String signature, @RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce, @RequestParam(name = "encrypt_type", required = false) String encType, @RequestParam(name = "msg_signature", required = false) String msgSignature) { - return iChannelOaCallBackService.post(requestBody, signature, timestamp, nonce, encType, msgSignature); } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java index c573f425..f9c11ea1 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java @@ -13,7 +13,6 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.stereotype.Service; import javax.annotation.Resource; - import java.util.List; import static me.chanjar.weixin.common.api.WxConsts.EventType.SUBSCRIBE; @@ -29,10 +28,10 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { /** * 服务器验证 * - * @param signature - * @param timestamp - * @param nonce - * @param echostr + * @param signature 微信加密签名 + * @param timestamp 时间戳 + * @param nonce 随机数 + * @param echostr 随机字符串 * @return */ @Override @@ -48,12 +47,12 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { /** * 消息回复 * - * @param requestBody - * @param signature - * @param timestamp - * @param nonce - * @param encType - * @param msgSignature + * @param requestBody 请求数据 + * @param signature 微信加密签名 + * @param timestamp 时间戳 + * @param nonce 随机数 + * @param encType 加密类型 + * @param msgSignature 加密签名 * @return */ @Override @@ -64,7 +63,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { throw new IllegalArgumentException("非法请求,可能属于伪造的请求!"); } - String out = null; + String outMsg = null; if (encType == null) { // 明文传输的消息 WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(requestBody); @@ -72,27 +71,31 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { if (outMessage == null) { return ""; } - out = outMessage.toXml(); + outMsg = outMessage.toXml(); } else if ("aes".equalsIgnoreCase(encType)) { // aes加密的消息 - WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(requestBody, wxMpService.getWxMpConfigStorage(), - timestamp, nonce, msgSignature); + WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml( + requestBody, + wxMpService.getWxMpConfigStorage(), + timestamp, + nonce, + msgSignature); WxMpXmlOutMessage outMessage = this.msgHandler(inMessage); if (outMessage == null) { return ""; } - out = outMessage.toEncryptedXml(wxMpService.getWxMpConfigStorage()); + outMsg = outMessage.toEncryptedXml(wxMpService.getWxMpConfigStorage()); } - return out; + return outMsg; } /** * 消息处理 * - * @param wxMessage + * @param wxMessage 微信回调信息 * @return */ private WxMpXmlOutMessage msgHandler(WxMpXmlMessage wxMessage) { @@ -112,7 +115,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { } } } catch (Exception e) { - throw new OperateException("公众号回调错误" + e.getMessage()); + throw new OperateException("公众号消息回调错误" + e.getMessage()); } return null; } @@ -120,8 +123,8 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { /** * 返回文本消息 * - * @param content - * @param wxMessage + * @param content 文本内容 + * @param wxMessage 微信回调信息 * @return */ private WxMpXmlOutMessage textBuild(String content, WxMpXmlMessage wxMessage) { @@ -133,7 +136,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { /** * 关键词回复 * - * @param wxMessage + * @param wxMessage 微信回调信息 * @return */ private String keyMsg(WxMpXmlMessage wxMessage) { From 694e1ee37fbf30319c5fbf973524034024f0364d Mon Sep 17 00:00:00 2001 From: mofung1 <2279254178@qq.com> Date: Tue, 21 Mar 2023 16:38:31 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChannelOaCallBackServiceImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java index f9c11ea1..78d1e402 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/ChannelOaCallBackServiceImpl.java @@ -32,7 +32,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { * @param timestamp 时间戳 * @param nonce 随机数 * @param echostr 随机字符串 - * @return + * @return String */ @Override public String checkSignature(String signature, String timestamp, String nonce, String echostr) { @@ -53,7 +53,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { * @param nonce 随机数 * @param encType 加密类型 * @param msgSignature 加密签名 - * @return + * @return String */ @Override public String post(String requestBody, String signature, String timestamp, String nonce, String encType, String msgSignature) { @@ -96,7 +96,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { * 消息处理 * * @param wxMessage 微信回调信息 - * @return + * @return WxMpXmlOutMessage */ private WxMpXmlOutMessage msgHandler(WxMpXmlMessage wxMessage) { try { @@ -125,7 +125,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { * * @param content 文本内容 * @param wxMessage 微信回调信息 - * @return + * @return WxMpXmlOutMessage */ private WxMpXmlOutMessage textBuild(String content, WxMpXmlMessage wxMessage) { return WxMpXmlOutMessage.TEXT().content(content) @@ -137,7 +137,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { * 关键词回复 * * @param wxMessage 微信回调信息 - * @return + * @return String */ private String keyMsg(WxMpXmlMessage wxMessage) { List oaReplyList = officialReplyMapper.selectList( @@ -165,7 +165,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { /** * 默认回复 * - * @return + * @return String */ private String defaultMsg() { OfficialReply officialReply = officialReplyMapper.selectOne(new QueryWrapper() @@ -182,7 +182,7 @@ public class ChannelOaCallBackServiceImpl implements IChannelOaCallBackService { /** * 关注回复内容 * - * @return + * @return String */ private String subMsg() { OfficialReply officialReply = officialReplyMapper.selectOne(new QueryWrapper()