| @@ -55,7 +55,7 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| @Override | @Override | ||||
| public boolean checkSignature(String timestamp, String nonce, String signature) { | public boolean checkSignature(String timestamp, String nonce, String signature) { | ||||
| try { | try { | ||||
| return SHA1.gen(this.wxMpConfigStorage.getToken(), timestamp, nonce) | |||||
| return SHA1.gen(this.getWxMpConfigStorage().getToken(), timestamp, nonce) | |||||
| .equals(signature); | .equals(signature); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| return false; | return false; | ||||
| @@ -69,18 +69,18 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| @Override | @Override | ||||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | public String getAccessToken(boolean forceRefresh) throws WxErrorException { | ||||
| Lock lock = this.wxMpConfigStorage.getAccessTokenLock(); | |||||
| Lock lock = this.getWxMpConfigStorage().getAccessTokenLock(); | |||||
| try { | try { | ||||
| lock.lock(); | lock.lock(); | ||||
| if (forceRefresh) { | if (forceRefresh) { | ||||
| this.wxMpConfigStorage.expireAccessToken(); | |||||
| this.getWxMpConfigStorage().expireAccessToken(); | |||||
| } | } | ||||
| if (this.wxMpConfigStorage.isAccessTokenExpired()) { | |||||
| if (this.getWxMpConfigStorage().isAccessTokenExpired()) { | |||||
| String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" + | String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" + | ||||
| "&appid=" + this.wxMpConfigStorage.getAppId() + "&secret=" | |||||
| + this.wxMpConfigStorage.getSecret(); | |||||
| "&appid=" + this.getWxMpConfigStorage().getAppId() + "&secret=" | |||||
| + this.getWxMpConfigStorage().getSecret(); | |||||
| try { | try { | ||||
| HttpGet httpGet = new HttpGet(url); | HttpGet httpGet = new HttpGet(url); | ||||
| if (this.httpProxy != null) { | if (this.httpProxy != null) { | ||||
| @@ -94,7 +94,7 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| throw new WxErrorException(error); | throw new WxErrorException(error); | ||||
| } | } | ||||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | ||||
| this.wxMpConfigStorage.updateAccessToken(accessToken.getAccessToken(), | |||||
| this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), | |||||
| accessToken.getExpiresIn()); | accessToken.getExpiresIn()); | ||||
| } finally { | } finally { | ||||
| httpGet.releaseConnection(); | httpGet.releaseConnection(); | ||||
| @@ -106,7 +106,7 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| } finally { | } finally { | ||||
| lock.unlock(); | lock.unlock(); | ||||
| } | } | ||||
| return this.wxMpConfigStorage.getAccessToken(); | |||||
| return this.getWxMpConfigStorage().getAccessToken(); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -116,27 +116,27 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| @Override | @Override | ||||
| public String getJsapiTicket(boolean forceRefresh) throws WxErrorException { | public String getJsapiTicket(boolean forceRefresh) throws WxErrorException { | ||||
| Lock lock = this.wxMpConfigStorage.getJsapiTicketLock(); | |||||
| Lock lock = this.getWxMpConfigStorage().getJsapiTicketLock(); | |||||
| try { | try { | ||||
| lock.lock(); | lock.lock(); | ||||
| if (forceRefresh) { | if (forceRefresh) { | ||||
| this.wxMpConfigStorage.expireJsapiTicket(); | |||||
| this.getWxMpConfigStorage().expireJsapiTicket(); | |||||
| } | } | ||||
| if (this.wxMpConfigStorage.isJsapiTicketExpired()) { | |||||
| if (this.getWxMpConfigStorage().isJsapiTicketExpired()) { | |||||
| String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi"; | String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi"; | ||||
| String responseContent = execute(new SimpleGetRequestExecutor(), url, null); | String responseContent = execute(new SimpleGetRequestExecutor(), url, null); | ||||
| JsonElement tmpJsonElement = JSON_PARSER.parse(responseContent); | JsonElement tmpJsonElement = JSON_PARSER.parse(responseContent); | ||||
| JsonObject tmpJsonObject = tmpJsonElement.getAsJsonObject(); | JsonObject tmpJsonObject = tmpJsonElement.getAsJsonObject(); | ||||
| String jsapiTicket = tmpJsonObject.get("ticket").getAsString(); | String jsapiTicket = tmpJsonObject.get("ticket").getAsString(); | ||||
| int expiresInSeconds = tmpJsonObject.get("expires_in").getAsInt(); | int expiresInSeconds = tmpJsonObject.get("expires_in").getAsInt(); | ||||
| this.wxMpConfigStorage.updateJsapiTicket(jsapiTicket, expiresInSeconds); | |||||
| this.getWxMpConfigStorage().updateJsapiTicket(jsapiTicket, expiresInSeconds); | |||||
| } | } | ||||
| } finally { | } finally { | ||||
| lock.unlock(); | lock.unlock(); | ||||
| } | } | ||||
| return this.wxMpConfigStorage.getJsapiTicket(); | |||||
| return this.getWxMpConfigStorage().getJsapiTicket(); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -147,7 +147,7 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| String signature = SHA1.genWithAmple("jsapi_ticket=" + jsapiTicket, | String signature = SHA1.genWithAmple("jsapi_ticket=" + jsapiTicket, | ||||
| "noncestr=" + noncestr, "timestamp=" + timestamp, "url=" + url); | "noncestr=" + noncestr, "timestamp=" + timestamp, "url=" + url); | ||||
| WxJsapiSignature jsapiSignature = new WxJsapiSignature(); | WxJsapiSignature jsapiSignature = new WxJsapiSignature(); | ||||
| jsapiSignature.setAppId(this.wxMpConfigStorage.getAppId()); | |||||
| jsapiSignature.setAppId(this.getWxMpConfigStorage().getAppId()); | |||||
| jsapiSignature.setTimestamp(timestamp); | jsapiSignature.setTimestamp(timestamp); | ||||
| jsapiSignature.setNonceStr(noncestr); | jsapiSignature.setNonceStr(noncestr); | ||||
| jsapiSignature.setUrl(url); | jsapiSignature.setUrl(url); | ||||
| @@ -212,7 +212,7 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state) { | public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state) { | ||||
| StringBuilder url = new StringBuilder(); | StringBuilder url = new StringBuilder(); | ||||
| url.append("https://open.weixin.qq.com/connect/oauth2/authorize?"); | url.append("https://open.weixin.qq.com/connect/oauth2/authorize?"); | ||||
| url.append("appid=").append(this.wxMpConfigStorage.getAppId()); | |||||
| url.append("appid=").append(this.getWxMpConfigStorage().getAppId()); | |||||
| url.append("&redirect_uri=").append(URIUtil.encodeURIComponent(redirectURI)); | url.append("&redirect_uri=").append(URIUtil.encodeURIComponent(redirectURI)); | ||||
| url.append("&response_type=code"); | url.append("&response_type=code"); | ||||
| url.append("&scope=").append(scope); | url.append("&scope=").append(scope); | ||||
| @@ -228,7 +228,7 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| String state) { | String state) { | ||||
| StringBuilder url = new StringBuilder(); | StringBuilder url = new StringBuilder(); | ||||
| url.append("https://open.weixin.qq.com/connect/qrconnect?"); | url.append("https://open.weixin.qq.com/connect/qrconnect?"); | ||||
| url.append("appid=").append(this.wxMpConfigStorage.getAppId()); | |||||
| url.append("appid=").append(this.getWxMpConfigStorage().getAppId()); | |||||
| url.append("&redirect_uri=").append(URIUtil.encodeURIComponent(redirectURI)); | url.append("&redirect_uri=").append(URIUtil.encodeURIComponent(redirectURI)); | ||||
| url.append("&response_type=code"); | url.append("&response_type=code"); | ||||
| url.append("&scope=").append(scope); | url.append("&scope=").append(scope); | ||||
| @@ -254,8 +254,8 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| public WxMpOAuth2AccessToken oauth2getAccessToken(String code) throws WxErrorException { | public WxMpOAuth2AccessToken oauth2getAccessToken(String code) throws WxErrorException { | ||||
| StringBuilder url = new StringBuilder(); | StringBuilder url = new StringBuilder(); | ||||
| url.append("https://api.weixin.qq.com/sns/oauth2/access_token?"); | url.append("https://api.weixin.qq.com/sns/oauth2/access_token?"); | ||||
| url.append("appid=").append(this.wxMpConfigStorage.getAppId()); | |||||
| url.append("&secret=").append(this.wxMpConfigStorage.getSecret()); | |||||
| url.append("appid=").append(this.getWxMpConfigStorage().getAppId()); | |||||
| url.append("&secret=").append(this.getWxMpConfigStorage().getSecret()); | |||||
| url.append("&code=").append(code); | url.append("&code=").append(code); | ||||
| url.append("&grant_type=authorization_code"); | url.append("&grant_type=authorization_code"); | ||||
| @@ -266,7 +266,7 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| public WxMpOAuth2AccessToken oauth2refreshAccessToken(String refreshToken) throws WxErrorException { | public WxMpOAuth2AccessToken oauth2refreshAccessToken(String refreshToken) throws WxErrorException { | ||||
| StringBuilder url = new StringBuilder(); | StringBuilder url = new StringBuilder(); | ||||
| url.append("https://api.weixin.qq.com/sns/oauth2/refresh_token?"); | url.append("https://api.weixin.qq.com/sns/oauth2/refresh_token?"); | ||||
| url.append("appid=").append(this.wxMpConfigStorage.getAppId()); | |||||
| url.append("appid=").append(this.getWxMpConfigStorage().getAppId()); | |||||
| url.append("&grant_type=refresh_token"); | url.append("&grant_type=refresh_token"); | ||||
| url.append("&refresh_token=").append(refreshToken); | url.append("&refresh_token=").append(refreshToken); | ||||
| @@ -393,8 +393,8 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| */ | */ | ||||
| if (error.getErrorCode() == 42001 || error.getErrorCode() == 40001) { | if (error.getErrorCode() == 42001 || error.getErrorCode() == 40001) { | ||||
| // 强制设置wxMpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token | // 强制设置wxMpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token | ||||
| this.wxMpConfigStorage.expireAccessToken(); | |||||
| if (this.wxMpConfigStorage.autoRefreshToken()) { | |||||
| this.getWxMpConfigStorage().expireAccessToken(); | |||||
| if (this.getWxMpConfigStorage().autoRefreshToken()) { | |||||
| return this.execute(executor, uri, data); | return this.execute(executor, uri, data); | ||||
| } | } | ||||
| } | } | ||||
| @@ -426,20 +426,20 @@ public class WxMpServiceImpl implements WxMpService { | |||||
| apacheHttpClientBuilder = DefaultApacheHttpClientBuilder.get(); | apacheHttpClientBuilder = DefaultApacheHttpClientBuilder.get(); | ||||
| } | } | ||||
| apacheHttpClientBuilder.httpProxyHost(this.wxMpConfigStorage.getHttpProxyHost()) | |||||
| .httpProxyPort(this.wxMpConfigStorage.getHttpProxyPort()) | |||||
| .httpProxyUsername(this.wxMpConfigStorage.getHttpProxyUsername()) | |||||
| .httpProxyPassword(this.wxMpConfigStorage.getHttpProxyPassword()); | |||||
| apacheHttpClientBuilder.httpProxyHost(this.getWxMpConfigStorage().getHttpProxyHost()) | |||||
| .httpProxyPort(this.getWxMpConfigStorage().getHttpProxyPort()) | |||||
| .httpProxyUsername(this.getWxMpConfigStorage().getHttpProxyUsername()) | |||||
| .httpProxyPassword(this.getWxMpConfigStorage().getHttpProxyPassword()); | |||||
| // if (this.wxMpConfigStorage.getSSLContext() != null) { | |||||
| // if (this.getWxMpConfigStorage().getSSLContext() != null) { | |||||
| // SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( | // SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( | ||||
| // this.wxMpConfigStorage.getSSLContext(), new String[] { "TLSv1" }, null, | |||||
| // this.getWxMpConfigStorage().getSSLContext(), new String[] { "TLSv1" }, null, | |||||
| // new DefaultHostnameVerifier()); | // new DefaultHostnameVerifier()); | ||||
| // apacheHttpClientBuilder.sslConnectionSocketFactory(sslsf); | // apacheHttpClientBuilder.sslConnectionSocketFactory(sslsf); | ||||
| // } | // } | ||||
| if (this.wxMpConfigStorage.getHttpProxyHost() != null && this.wxMpConfigStorage.getHttpProxyPort() > 0) { | |||||
| this.httpProxy = new HttpHost(this.wxMpConfigStorage.getHttpProxyHost(), this.wxMpConfigStorage.getHttpProxyPort()); | |||||
| if (this.getWxMpConfigStorage().getHttpProxyHost() != null && this.getWxMpConfigStorage().getHttpProxyPort() > 0) { | |||||
| this.httpProxy = new HttpHost(this.getWxMpConfigStorage().getHttpProxyHost(), this.getWxMpConfigStorage().getHttpProxyPort()); | |||||
| } | } | ||||
| this.httpClient = apacheHttpClientBuilder.build(); | this.httpClient = apacheHttpClientBuilder.build(); | ||||