Bläddra i källkod

#333 修复消息验重问题(mp和cp同时存在的问题)

master
Binary Wang 7 år sedan
förälder
incheckning
e5bd65f2db
2 ändrade filer med 15 tillägg och 10 borttagningar
  1. +9
    -6
      weixin-java-cp/src/main/java/me/chanjar/weixin/cp/message/WxCpMessageRouter.java
  2. +6
    -4
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java

+ 9
- 6
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/message/WxCpMessageRouter.java Visa fil

@@ -11,6 +11,7 @@ import me.chanjar.weixin.common.util.LogExceptionHandler;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -215,17 +216,19 @@ public class WxCpMessageRouter {
}

protected boolean isDuplicateMessage(WxCpXmlMessage wxMessage) {

String messageId = "";
String messageId;
if (wxMessage.getMsgId() == null) {
messageId = String.valueOf(wxMessage.getCreateTime())
+ "-" + String.valueOf(wxMessage.getAgentId() == null ? "" : wxMessage.getAgentId())
+ "-" + StringUtils.trimToEmpty(String.valueOf(wxMessage.getAgentId()))
+ "-" + wxMessage.getFromUserName()
+ "-" + String.valueOf(wxMessage.getEventKey() == null ? "" : wxMessage.getEventKey())
+ "-" + String.valueOf(wxMessage.getEvent() == null ? "" : wxMessage.getEvent())
+ "-" + StringUtils.trimToEmpty(wxMessage.getEventKey())
+ "-" + StringUtils.trimToEmpty(wxMessage.getEvent())
;
} else {
messageId = String.valueOf(wxMessage.getMsgId());
messageId = new StringBuilder().append(wxMessage.getMsgId())
.append("-").append(wxMessage.getCreateTime())
.append("-").append(wxMessage.getFromUserName())
.toString();
}

return this.messageDuplicateChecker.isDuplicate(messageId);


+ 6
- 4
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java Visa fil

@@ -10,6 +10,7 @@ import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.common.util.LogExceptionHandler;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -195,16 +196,17 @@ public class WxMpMessageRouter {
}

protected boolean isMsgDuplicated(WxMpXmlMessage wxMessage) {

StringBuilder messageId = new StringBuilder();
if (wxMessage.getMsgId() == null) {
messageId.append(wxMessage.getCreateTime())
.append("-").append(wxMessage.getFromUser())
.append("-").append(wxMessage.getEventKey() == null ? "" : wxMessage.getEventKey())
.append("-").append(wxMessage.getEvent() == null ? "" : wxMessage.getEvent())
.append("-").append(StringUtils.trimToEmpty(wxMessage.getEventKey()))
.append("-").append(StringUtils.trimToEmpty(wxMessage.getEvent()))
;
} else {
messageId.append(wxMessage.getMsgId());
messageId.append(wxMessage.getMsgId())
.append("-").append(wxMessage.getCreateTime())
.append("-").append(wxMessage.getFromUser());
}

return this.messageDuplicateChecker.isDuplicate(messageId.toString());


Laddar…
Avbryt
Spara