diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpMsgAuditServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpMsgAuditServiceImpl.java index 5f7cbf52a..d6cadbda7 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpMsgAuditServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpMsgAuditServiceImpl.java @@ -78,9 +78,12 @@ public class WxCpMsgAuditServiceImpl implements WxCpMsgAuditService { Finance.loadingLibraries(osLib, prefixPath); long sdk = Finance.NewSdk(); - - long ret = Finance.Init(sdk, cpService.getWxCpConfigStorage().getCorpId(), - cpService.getWxCpConfigStorage().getCorpSecret()); + //因为会话存档单独有个secret,优先使用会话存档的secret + String msgAuditSecret = cpService.getWxCpConfigStorage().getMsgAuditSecret(); + if(StringUtils.isEmpty(msgAuditSecret)) { + msgAuditSecret = cpService.getWxCpConfigStorage().getCorpSecret(); + } + long ret = Finance.Init(sdk, cpService.getWxCpConfigStorage().getCorpId(),msgAuditSecret); if (ret != 0) { Finance.DestroySdk(sdk); throw new WxErrorException("init sdk err ret " + ret); diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpConfigStorage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpConfigStorage.java index 16608f9d2..36203aab1 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpConfigStorage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpConfigStorage.java @@ -257,4 +257,10 @@ public interface WxCpConfigStorage { * @return key webhook key */ String getWebhookKey(); + + /** + * 获取会话存档的secret + * @return msg audit secret + */ + String getMsgAuditSecret(); } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java index 442e437cf..57647b371 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java @@ -46,6 +46,7 @@ public class WxCpDefaultConfigImpl implements WxCpConfigStorage, Serializable { /** * 会话存档私钥以及sdk路径 */ + private volatile String msgAuditSecret; private volatile String msgAuditPriKey; private volatile String msgAuditLibPath; private volatile String oauth2redirectUri; @@ -435,4 +436,18 @@ public class WxCpDefaultConfigImpl implements WxCpConfigStorage, Serializable { this.webhookKey = webhookKey; return this; } + + @Override + public String getMsgAuditSecret() { + return this.msgAuditSecret; + } + + /** + * 设置会话存档secret + * @param msgAuditSecret + */ + public WxCpDefaultConfigImpl setMsgAuditSecret(String msgAuditSecret) { + this.msgAuditSecret = msgAuditSecret; + return this; + } } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedisConfigImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedisConfigImpl.java index 53cc475ef..4225cff0a 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedisConfigImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedisConfigImpl.java @@ -466,4 +466,8 @@ public class WxCpRedisConfigImpl implements WxCpConfigStorage { return this.getWebhookKey(); } + @Override + public String getMsgAuditSecret() { + return null; + } }