Переглянути джерело

格式化开放平台模块代码

Binary Wang 7 роки тому
батько
коміт
e00e7bb0ca
20 змінених файлів з 152 додано та 86 видалено
  1. 1 0
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java
  2. 20 8
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java
  3. 3 0
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenService.java
  4. 6 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java
  5. 37 31
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java
  6. 40 24
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedisConfigStorage.java
  7. 5 2
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpServiceImpl.java
  8. 6 3
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceAbstractImpl.java
  9. 2 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java
  10. 2 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenAuthorizerAccessToken.java
  11. 2 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenComponentAccessToken.java
  12. 3 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/WxOpenAuthorizationInfo.java
  13. 3 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/WxOpenAuthorizerInfo.java
  14. 5 2
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/message/WxOpenXmlMessage.java
  15. 3 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenAuthorizerInfoResult.java
  16. 3 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenAuthorizerOptionResult.java
  17. 3 1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenQueryAuthResult.java
  18. 1 0
      weixin-java-open/src/main/java/me/chanjar/weixin/open/util/WxOpenCryptUtil.java
  19. 5 5
      weixin-java-open/src/main/java/me/chanjar/weixin/open/util/json/WxOpenAuthorizationInfoGsonAdapter.java
  20. 2 2
      weixin-java-open/src/main/java/me/chanjar/weixin/open/util/json/WxOpenAuthorizerInfoGsonAdapter.java

+ 1 - 0
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java

@@ -34,6 +34,7 @@ public interface WxOpenComponentService {
    * 刷新oauth2的access token
    */
   String OAUTH2_REFRESH_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=%s&grant_type=refresh_token&refresh_token=%s&component_appid==%s";
+
   WxMpService getWxMpServiceByAppid(String appid);
 
   WxOpenConfigStorage getWxOpenConfigStorage();

+ 20 - 8
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java

@@ -9,29 +9,39 @@ import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken;
  */
 public interface WxOpenConfigStorage {
 
+  String getComponentAppId();
+
   void setComponentAppId(String componentAppId);
 
+  String getComponentAppSecret();
+
   void setComponentAppSecret(String componentAppSecret);
 
+  String getComponentToken();
+
   void setComponentToken(String componentToken);
 
+  String getComponentAesKey();
+
   void setComponentAesKey(String componentAesKey);
 
-  String getComponentAppId();
-  String getComponentAppSecret();
-  String getComponentToken();
-  String getComponentAesKey();
   String getComponentVerifyTicket();
+
   void setComponentVerifyTicket(String componentVerifyTicket);
+
   String getComponentAccessToken();
+
   boolean isComponentAccessTokenExpired();
+
   void updateComponentAccessTokent(WxOpenComponentAccessToken componentAccessToken);
+
   WxMpConfigStorage getWxMpConfigStorage(String appId);
+
   /**
    * 应该是线程安全的
    *
-   * @param componentAccessToken      新的accessToken值
-   * @param expiresInSeconds 过期时间,以秒为单位
+   * @param componentAccessToken 新的accessToken值
+   * @param expiresInSeconds     过期时间,以秒为单位
    */
   void updateComponentAccessTokent(String componentAccessToken, int expiresInSeconds);
 
@@ -42,7 +52,9 @@ public interface WxOpenConfigStorage {
 
 
   String getAuthorizerRefreshToken(String appId);
+
   void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken);
+
   String getAuthorizerAccessToken(String appId);
 
 
@@ -63,8 +75,8 @@ public interface WxOpenConfigStorage {
   /**
    * 应该是线程安全的
    *
-   * @param authorizerAccessToken      新的accessToken值
-   * @param expiresInSeconds 过期时间,以秒为单位
+   * @param authorizerAccessToken 新的accessToken值
+   * @param expiresInSeconds      过期时间,以秒为单位
    */
   void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds);
 

+ 3 - 0
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenService.java

@@ -7,8 +7,11 @@ import me.chanjar.weixin.common.exception.WxErrorException;
  */
 public interface WxOpenService {
   WxOpenComponentService getWxOpenComponentService();
+
   WxOpenConfigStorage getWxOpenConfigStorage();
+
   void setWxOpenConfigStorage(WxOpenConfigStorage wxOpenConfigStorage);
+
   /**
    * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求
    */

+ 6 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java

@@ -30,9 +30,9 @@ import java.util.Map;
  * @author <a href="https://github.com/007gzs">007</a>
  */
 public class WxOpenComponentServiceImpl implements WxOpenComponentService {
+  private static final Map<String, WxMpService> wxOpenMpServiceMap = new Hashtable<>();
   protected final Logger log = LoggerFactory.getLogger(this.getClass());
   private WxOpenService wxOpenService;
-  private static final Map<String, WxMpService> wxOpenMpServiceMap = new Hashtable<>();
 
   public WxOpenComponentServiceImpl(WxOpenService wxOpenService) {
     this.wxOpenService = wxOpenService;
@@ -62,6 +62,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
   public WxOpenConfigStorage getWxOpenConfigStorage() {
     return wxOpenService.getWxOpenConfigStorage();
   }
+
   @Override
   public boolean checkSignature(String timestamp, String nonce, String signature) {
     try {
@@ -72,6 +73,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
       return false;
     }
   }
+
   @Override
   public String getComponentAccessToken(boolean forceRefresh) throws WxErrorException {
 
@@ -137,6 +139,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
     }
     return null;
   }
+
   @Override
   public WxOpenQueryAuthResult getQueryAuth(String authorizationCode) throws WxErrorException {
     JsonObject jsonObject = new JsonObject();
@@ -145,6 +148,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
     String responseContent = post(API_QUERY_AUTH_URL, jsonObject.toString());
     return WxOpenGsonBuilder.create().fromJson(responseContent, WxOpenQueryAuthResult.class);
   }
+
   @Override
   public WxOpenAuthorizerInfoResult getAuthorizerInfo(String authorizerAppid) throws WxErrorException {
     JsonObject jsonObject = new JsonObject();
@@ -163,6 +167,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
     String responseContent = post(API_GET_AUTHORIZER_OPTION_URL, jsonObject.toString());
     return WxOpenGsonBuilder.create().fromJson(responseContent, WxOpenAuthorizerOptionResult.class);
   }
+
   @Override
   public WxError setAuthorizerOption(String authorizerAppid, String optionName, String optionValue) throws WxErrorException {
     JsonObject jsonObject = new JsonObject();

+ 37 - 31
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java

@@ -35,25 +35,13 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
   private Map<String, Token> cardApiTickets = new Hashtable<>();
 
   @Override
-  public void setComponentAppId(String componentAppId) {
-    this.componentAppId = componentAppId;
-  }
-  @Override
-  public void setComponentAppSecret(String componentAppSecret) {
-    this.componentAppSecret = componentAppSecret;
-  }
-  @Override
-  public void setComponentToken(String componentToken) {
-    this.componentToken = componentToken;
-  }
-  @Override
-  public void setComponentAesKey(String componentAesKey) {
-    this.componentAesKey = componentAesKey;
+  public String getComponentAppId() {
+    return componentAppId;
   }
 
   @Override
-  public String getComponentAppId() {
-    return componentAppId;
+  public void setComponentAppId(String componentAppId) {
+    this.componentAppId = componentAppId;
   }
 
   @Override
@@ -62,16 +50,31 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
   }
 
   @Override
+  public void setComponentAppSecret(String componentAppSecret) {
+    this.componentAppSecret = componentAppSecret;
+  }
+
+  @Override
   public String getComponentToken() {
     return componentToken;
   }
 
   @Override
+  public void setComponentToken(String componentToken) {
+    this.componentToken = componentToken;
+  }
+
+  @Override
   public String getComponentAesKey() {
     return componentAesKey;
   }
 
   @Override
+  public void setComponentAesKey(String componentAesKey) {
+    this.componentAesKey = componentAesKey;
+  }
+
+  @Override
   public String getComponentVerifyTicket() {
     return componentVerifyTicket;
   }
@@ -111,30 +114,34 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
   public boolean autoRefreshToken() {
     return true;
   }
-  private String getTokenString(Map<String, Token> map, String key){
+
+  private String getTokenString(Map<String, Token> map, String key) {
     Token token = map.get(key);
-    if(token == null || (token.expiresTime != null && System.currentTimeMillis() > token.expiresTime)){
+    if (token == null || (token.expiresTime != null && System.currentTimeMillis() > token.expiresTime)) {
       return null;
     }
     return token.token;
   }
-  private void expireToken(Map<String, Token> map, String key){
+
+  private void expireToken(Map<String, Token> map, String key) {
     Token token = map.get(key);
-    if(token != null){
+    if (token != null) {
       token.expiresTime = 0L;
     }
   }
-  private void updateToken(Map<String, Token> map, String key, String tokenString, Integer expiresInSeconds){
+
+  private void updateToken(Map<String, Token> map, String key, String tokenString, Integer expiresInSeconds) {
     Token token = map.get(key);
-    if(token == null){
+    if (token == null) {
       token = new Token();
       map.put(key, token);
     }
     token.token = tokenString;
-    if(expiresInSeconds != null) {
+    if (expiresInSeconds != null) {
       token.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L;
     }
   }
+
   @Override
   public String getAuthorizerRefreshToken(String appId) {
     return getTokenString(authorizerRefreshTokens, appId);
@@ -211,22 +218,21 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
     updateToken(cardApiTickets, appId, cardApiTicket, expiresInSeconds);
   }
 
-  private static class Token{
+  private static class Token {
     private String token;
     private Long expiresTime;
   }
-  private static class WxOpenMpConfigStorage implements WxMpConfigStorage{
+
+  private static class WxOpenMpConfigStorage implements WxMpConfigStorage {
     private WxOpenConfigStorage wxOpenConfigStorage;
     private String appId;
-    private WxOpenMpConfigStorage(WxOpenConfigStorage wxOpenConfigStorage, String appId){
-      this.wxOpenConfigStorage = wxOpenConfigStorage;
-      this.appId = appId;
-    }
-
     private Lock accessTokenLock = new ReentrantLock();
     private Lock jsapiTicketLock = new ReentrantLock();
     private Lock cardApiTicketLock = new ReentrantLock();
-
+    private WxOpenMpConfigStorage(WxOpenConfigStorage wxOpenConfigStorage, String appId) {
+      this.wxOpenConfigStorage = wxOpenConfigStorage;
+      this.appId = appId;
+    }
 
     @Override
     public String getAccessToken() {

+ 40 - 24
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedisConfigStorage.java

@@ -24,6 +24,7 @@ public class WxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage {
   private String authorizerAccessTokenKey;
   private String jsapiTicketKey;
   private String cardApiTicket;
+
   public WxOpenInRedisConfigStorage(JedisPool jedisPool) {
     this.jedisPool = jedisPool;
   }
@@ -38,54 +39,62 @@ public class WxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage {
     jsapiTicketKey = JSAPI_TICKET_KEY.concat(componentAppId);
     cardApiTicket = CARD_API_TICKET_KEY.concat(componentAppId);
   }
+
   @Override
-  public String getComponentVerifyTicket(){
-    try(Jedis jedis = jedisPool.getResource()){
+  public String getComponentVerifyTicket() {
+    try (Jedis jedis = jedisPool.getResource()) {
       return jedis.get(componentVerifyTicketKey);
     }
   }
+
   @Override
-  public void setComponentVerifyTicket(String componentVerifyTicket){
-    try(Jedis jedis = jedisPool.getResource()){
+  public void setComponentVerifyTicket(String componentVerifyTicket) {
+    try (Jedis jedis = jedisPool.getResource()) {
       jedis.set(componentVerifyTicketKey, componentVerifyTicket);
     }
   }
+
   @Override
-  public String getComponentAccessToken(){
-    try(Jedis jedis = jedisPool.getResource()){
+  public String getComponentAccessToken() {
+    try (Jedis jedis = jedisPool.getResource()) {
       return jedis.get(componentAccessTokenKey);
     }
   }
+
   @Override
-  public boolean isComponentAccessTokenExpired(){
-    try(Jedis jedis = jedisPool.getResource()){
+  public boolean isComponentAccessTokenExpired() {
+    try (Jedis jedis = jedisPool.getResource()) {
       return jedis.ttl(componentAccessTokenKey) < 2;
     }
   }
+
   @Override
-  public void updateComponentAccessTokent(String componentAccessToken, int expiresInSeconds){
+  public void updateComponentAccessTokent(String componentAccessToken, int expiresInSeconds) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.setex(componentAccessTokenKey, expiresInSeconds - 200, componentAccessToken);
     }
   }
-  private String getKey(String prefix, String appId){
+
+  private String getKey(String prefix, String appId) {
     return prefix.endsWith(":") ? prefix.concat(appId) : prefix.concat(":").concat(appId);
   }
 
   @Override
-  public String getAuthorizerRefreshToken(String appId){
+  public String getAuthorizerRefreshToken(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       return jedis.get(getKey(authorizerRefreshTokenKey, appId));
     }
   }
+
   @Override
-  public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken){
+  public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.set(getKey(authorizerRefreshTokenKey, appId), authorizerRefreshToken);
     }
   }
+
   @Override
-  public String getAuthorizerAccessToken(String appId){
+  public String getAuthorizerAccessToken(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       return jedis.get(getKey(authorizerAccessTokenKey, appId));
     }
@@ -93,70 +102,77 @@ public class WxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage {
 
 
   @Override
-  public boolean isAuthorizerAccessTokenExpired(String appId){
+  public boolean isAuthorizerAccessTokenExpired(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       return jedis.ttl(getKey(authorizerAccessTokenKey, appId)) < 2;
     }
   }
+
   @Override
-  public void expireAuthorizerAccessToken(String appId){
+  public void expireAuthorizerAccessToken(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.expire(getKey(authorizerAccessTokenKey, appId), 0);
     }
   }
+
   @Override
-  public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds){
+  public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.setex(getKey(authorizerAccessTokenKey, appId), expiresInSeconds - 200, authorizerAccessToken);
     }
   }
 
   @Override
-  public String getJsapiTicket(String appId){
+  public String getJsapiTicket(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       return jedis.get(getKey(jsapiTicketKey, appId));
     }
   }
 
   @Override
-  public boolean isJsapiTicketExpired(String appId){
+  public boolean isJsapiTicketExpired(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       return jedis.ttl(getKey(jsapiTicketKey, appId)) < 2;
     }
   }
+
   @Override
-  public void expireJsapiTicket(String appId){
+  public void expireJsapiTicket(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.expire(getKey(jsapiTicketKey, appId), 0);
     }
   }
+
   @Override
-  public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds){
+  public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.setex(getKey(jsapiTicketKey, appId), expiresInSeconds - 200, jsapiTicket);
     }
   }
 
   @Override
-  public String getCardApiTicket(String appId){
+  public String getCardApiTicket(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       return jedis.get(getKey(jsapiTicketKey, appId));
     }
   }
+
   @Override
-  public boolean isCardApiTicketExpired(String appId){
+  public boolean isCardApiTicketExpired(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       return jedis.ttl(getKey(cardApiTicket, appId)) < 2;
     }
   }
+
   @Override
-  public void expireCardApiTicket(String appId){
+  public void expireCardApiTicket(String appId) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.expire(getKey(cardApiTicket, appId), 0);
     }
   }
+
   @Override
-  public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds){
+  public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds) {
     try (Jedis jedis = this.jedisPool.getResource()) {
       jedis.setex(getKey(cardApiTicket, appId), expiresInSeconds - 200, cardApiTicket);
     }

+ 5 - 2
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpServiceImpl.java

@@ -13,15 +13,18 @@ public class WxOpenMpServiceImpl extends WxMpServiceImpl {
   private WxOpenComponentService wxOpenComponentService;
   private WxMpConfigStorage wxMpConfigStorage;
   private String appId;
-  public WxOpenMpServiceImpl(WxOpenComponentService wxOpenComponentService, String appId, WxMpConfigStorage wxMpConfigStorage){
+
+  public WxOpenMpServiceImpl(WxOpenComponentService wxOpenComponentService, String appId, WxMpConfigStorage wxMpConfigStorage) {
     this.wxOpenComponentService = wxOpenComponentService;
     this.appId = appId;
     this.wxMpConfigStorage = wxMpConfigStorage;
   }
+
   @Override
-  public WxMpConfigStorage getWxMpConfigStorage(){
+  public WxMpConfigStorage getWxMpConfigStorage() {
     return wxMpConfigStorage;
   }
+
   @Override
   public String getAccessToken(boolean forceRefresh) throws WxErrorException {
     return wxOpenComponentService.getAuthorizerAccessToken(appId, forceRefresh);

+ 6 - 3
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceAbstractImpl.java

@@ -17,17 +17,20 @@ import java.io.IOException;
  */
 public abstract class WxOpenServiceAbstractImpl<H, P> implements WxOpenService, RequestHttp<H, P> {
   protected final Logger log = LoggerFactory.getLogger(this.getClass());
-  private WxOpenConfigStorage wxOpenConfigStorage;
   protected WxOpenComponentService wxOpenComponentService = new WxOpenComponentServiceImpl(this);
+  private WxOpenConfigStorage wxOpenConfigStorage;
+
   @Override
   public WxOpenComponentService getWxOpenComponentService() {
     return wxOpenComponentService;
   }
+
   @Override
-  public WxOpenConfigStorage getWxOpenConfigStorage(){
+  public WxOpenConfigStorage getWxOpenConfigStorage() {
     return wxOpenConfigStorage;
   }
-  public void setWxOpenConfigStorage(WxOpenConfigStorage wxOpenConfigStorage){
+
+  public void setWxOpenConfigStorage(WxOpenConfigStorage wxOpenConfigStorage) {
     this.wxOpenConfigStorage = wxOpenConfigStorage;
   }
 

+ 2 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java

@@ -10,9 +10,10 @@ import org.apache.http.impl.client.CloseableHttpClient;
 
 /**
  * apache-http方式实现
+ *
  * @author <a href="https://github.com/007gzs">007</a>
  */
-public  class WxOpenServiceApacheHttpClientImpl extends WxOpenServiceAbstractImpl<CloseableHttpClient, HttpHost> {
+public class WxOpenServiceApacheHttpClientImpl extends WxOpenServiceAbstractImpl<CloseableHttpClient, HttpHost> {
   private CloseableHttpClient httpClient = DefaultApacheHttpClientBuilder.get().build();
   private HttpHost httpProxy = null;
 

+ 2 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenAuthorizerAccessToken.java

@@ -7,7 +7,8 @@ import java.io.Serializable;
 /**
  * @author <a href="https://github.com/007gzs">007</a>
  */
-public class WxOpenAuthorizerAccessToken implements Serializable{
+public class WxOpenAuthorizerAccessToken implements Serializable {
+  private static final long serialVersionUID = -4069745419280727420L;
 
   private String authorizerAccessToken;
 

+ 2 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenComponentAccessToken.java

@@ -7,7 +7,8 @@ import java.io.Serializable;
 /**
  * @author <a href="https://github.com/007gzs">007</a>
  */
-public class WxOpenComponentAccessToken implements Serializable{
+public class WxOpenComponentAccessToken implements Serializable {
+  private static final long serialVersionUID = 2134550135400443725L;
 
   private String componentAccessToken;
 

+ 3 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/WxOpenAuthorizationInfo.java

@@ -9,7 +9,9 @@ import java.util.List;
  * @author <a href="https://github.com/007gzs">007</a>
  */
 @Data
-public class WxOpenAuthorizationInfo implements Serializable{
+public class WxOpenAuthorizationInfo implements Serializable {
+  private static final long serialVersionUID = -8713680081354754208L;
+
   private String authorizerAppid;
   private String authorizerAccessToken;
   private int expiresIn;

+ 3 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/WxOpenAuthorizerInfo.java

@@ -9,7 +9,9 @@ import java.util.Map;
  * @author <a href="https://github.com/007gzs">007</a>
  */
 @Data
-public class WxOpenAuthorizerInfo implements Serializable{
+public class WxOpenAuthorizerInfo implements Serializable {
+  private static final long serialVersionUID = -5327886953416394738L;
+
   private String nickName;
   private String headImg;
   private Integer serviceTypeInfo;

+ 5 - 2
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/message/WxOpenXmlMessage.java

@@ -19,7 +19,9 @@ import java.io.Serializable;
  */
 @XStreamAlias("xml")
 @Data
-public class WxOpenXmlMessage implements Serializable{
+public class WxOpenXmlMessage implements Serializable {
+  private static final long serialVersionUID = -5641769554709507771L;
+
   @XStreamAlias("AppId")
   @XStreamConverter(value = XStreamCDataConverter.class)
   private String appId;
@@ -78,6 +80,7 @@ public class WxOpenXmlMessage implements Serializable{
       encryptedXml);
     return fromXml(plainText);
   }
+
   public static WxMpXmlMessage fromEncryptedMpXml(String encryptedXml,
                                                   WxOpenConfigStorage wxOpenConfigStorage, String timestamp, String nonce,
                                                   String msgSignature) {
@@ -89,7 +92,7 @@ public class WxOpenXmlMessage implements Serializable{
 
   public static WxOpenXmlMessage fromEncryptedXml(InputStream is,
                                                   WxOpenConfigStorage wxOpenConfigStorage, String timestamp, String nonce,
-                                                String msgSignature) {
+                                                  String msgSignature) {
     try {
       return fromEncryptedXml(IOUtils.toString(is, "UTF-8"), wxOpenConfigStorage,
         timestamp, nonce, msgSignature);

+ 3 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenAuthorizerInfoResult.java

@@ -10,7 +10,9 @@ import java.io.Serializable;
  * @author <a href="https://github.com/007gzs">007</a>
  */
 @Data
-public class WxOpenAuthorizerInfoResult implements Serializable{
+public class WxOpenAuthorizerInfoResult implements Serializable {
+  private static final long serialVersionUID = 3166298050833019785L;
+
   private WxOpenAuthorizationInfo authorizationInfo;
   private WxOpenAuthorizerInfo authorizerInfo;
 }

+ 3 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenAuthorizerOptionResult.java

@@ -8,7 +8,9 @@ import java.io.Serializable;
  * @author <a href="https://github.com/007gzs">007</a>
  */
 @Data
-public class WxOpenAuthorizerOptionResult implements Serializable{
+public class WxOpenAuthorizerOptionResult implements Serializable {
+  private static final long serialVersionUID = 4477837353654658179L;
+
   String authorizerAppid;
   String optionName;
   String optionValue;

+ 3 - 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenQueryAuthResult.java

@@ -9,6 +9,8 @@ import java.io.Serializable;
  * @author <a href="https://github.com/007gzs">007</a>
  */
 @Data
-public class WxOpenQueryAuthResult implements Serializable{
+public class WxOpenQueryAuthResult implements Serializable {
+  private static final long serialVersionUID = 2394736235020206855L;
+
   private WxOpenAuthorizationInfo authorizationInfo;
 }

+ 1 - 0
weixin-java-open/src/main/java/me/chanjar/weixin/open/util/WxOpenCryptUtil.java

@@ -2,6 +2,7 @@ package me.chanjar.weixin.open.util;
 
 import me.chanjar.weixin.open.api.WxOpenConfigStorage;
 import org.apache.commons.codec.binary.Base64;
+
 /**
  * @author <a href="https://github.com/007gzs">007</a>
  */

+ 5 - 5
weixin-java-open/src/main/java/me/chanjar/weixin/open/util/json/WxOpenAuthorizationInfoGsonAdapter.java

@@ -22,18 +22,18 @@ public class WxOpenAuthorizationInfoGsonAdapter implements JsonDeserializer<WxOp
     authorizationInfo.setAuthorizerRefreshToken(GsonHelper.getString(jsonObject, "authorizer_refresh_token"));
     List<Integer> funcInfo = new ArrayList<>();
     JsonArray jsonArray = GsonHelper.getAsJsonArray(jsonObject.get("func_info"));
-    if(jsonArray != null && !jsonArray.isJsonNull()){
-      for(int i = 0; i < jsonArray.size(); i++){
+    if (jsonArray != null && !jsonArray.isJsonNull()) {
+      for (int i = 0; i < jsonArray.size(); i++) {
         jsonObject = jsonArray.get(i).getAsJsonObject();
-        if(jsonObject == null || jsonObject.isJsonNull()){
+        if (jsonObject == null || jsonObject.isJsonNull()) {
           continue;
         }
         jsonObject = jsonObject.getAsJsonObject("funcscope_category");
-        if(jsonObject == null || jsonObject.isJsonNull()){
+        if (jsonObject == null || jsonObject.isJsonNull()) {
           continue;
         }
         Integer id = GsonHelper.getInteger(jsonObject, "id");
-        if(id == null) {
+        if (id == null) {
           continue;
         }
         funcInfo.add(id);

+ 2 - 2
weixin-java-open/src/main/java/me/chanjar/weixin/open/util/json/WxOpenAuthorizerInfoGsonAdapter.java

@@ -23,10 +23,10 @@ public class WxOpenAuthorizerInfoGsonAdapter implements JsonDeserializer<WxOpenA
     authorizationInfo.setPrincipalName(GsonHelper.getString(jsonObject, "principal_name"));
     authorizationInfo.setAlias(GsonHelper.getString(jsonObject, "alias"));
     authorizationInfo.setQrcodeUrl(GsonHelper.getString(jsonObject, "qrcode_url"));
-    if(jsonObject.has("service_type_info")) {
+    if (jsonObject.has("service_type_info")) {
       authorizationInfo.setServiceTypeInfo(GsonHelper.getInteger(jsonObject.getAsJsonObject("service_type_info"), "id"));
     }
-    if(jsonObject.has("verify_type_info")) {
+    if (jsonObject.has("verify_type_info")) {
       authorizationInfo.setVerifyTypeInfo(GsonHelper.getInteger(jsonObject.getAsJsonObject("verify_type_info"), "id"));
     }
     Map<String, Integer> businessInfo = WxOpenGsonBuilder.create().fromJson(jsonObject.get("business_info"),