Parcourir la source

格式化开放平台模块代码

master
Binary Wang il y a 7 ans
Parent
révision
e00e7bb0ca
20 fichiers modifiés avec 152 ajouts et 86 suppressions
  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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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
@@ -61,16 +49,31 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
return componentAppSecret;
}

@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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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"),


Chargement…
Annuler
Enregistrer