diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/message/WxCpMessageRouter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/message/WxCpMessageRouter.java index 92de0c238..a0464a725 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/message/WxCpMessageRouter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/message/WxCpMessageRouter.java @@ -209,18 +209,22 @@ public class WxCpMessageRouter { .append("-").append(wxMessage.getCreateTime()) .append("-").append(wxMessage.getFromUserName()); } - - if (StringUtils.isNotEmpty(wxMessage.getUserId())) { - messageId.append("-").append(wxMessage.getUserId()); - } - - if (StringUtils.isNotEmpty(wxMessage.getChangeType())) { - messageId.append("-").append(wxMessage.getChangeType()); - } + append(messageId, wxMessage.getUserId()); + append(messageId, wxMessage.getChangeType()); + append(messageId, wxMessage.getTagId()); + append(messageId, wxMessage.getId()); + append(messageId, wxMessage.getChatId()); + append(messageId, wxMessage.getExternalUserId()); return this.messageDuplicateChecker.isDuplicate(messageId.toString()); } + private void append(StringBuilder sb, String value){ + if(StringUtils.isNotEmpty(value)){ + sb.append("-").append(value); + } + } + /** * 对session的访问结束. */