| @@ -39,37 +39,37 @@ public class WxCpServiceApacheHttpClientImpl extends BaseWxCpServiceImpl<Closeab | |||
| @Override | |||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | |||
| if (this.configStorage.isAccessTokenExpired() || forceRefresh) { | |||
| synchronized (this.globalAccessTokenRefreshLock) { | |||
| if (this.configStorage.isAccessTokenExpired()) { | |||
| String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?" | |||
| + "&corpid=" + this.configStorage.getCorpId() | |||
| + "&corpsecret=" + this.configStorage.getCorpSecret(); | |||
| try { | |||
| HttpGet httpGet = new HttpGet(url); | |||
| if (this.httpProxy != null) { | |||
| RequestConfig config = RequestConfig.custom() | |||
| .setProxy(this.httpProxy).build(); | |||
| httpGet.setConfig(config); | |||
| } | |||
| String resultContent = null; | |||
| try (CloseableHttpClient httpclient = getRequestHttpClient(); | |||
| CloseableHttpResponse response = httpclient.execute(httpGet)) { | |||
| resultContent = new BasicResponseHandler().handleResponse(response); | |||
| } finally { | |||
| httpGet.releaseConnection(); | |||
| } | |||
| WxError error = WxError.fromJson(resultContent, WxType.CP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.configStorage.updateAccessToken( | |||
| accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| } catch (IOException e) { | |||
| throw new RuntimeException(e); | |||
| } | |||
| if (!this.configStorage.isAccessTokenExpired() && !forceRefresh) { | |||
| return this.configStorage.getAccessToken(); | |||
| } | |||
| synchronized (this.globalAccessTokenRefreshLock) { | |||
| String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?" | |||
| + "&corpid=" + this.configStorage.getCorpId() | |||
| + "&corpsecret=" + this.configStorage.getCorpSecret(); | |||
| try { | |||
| HttpGet httpGet = new HttpGet(url); | |||
| if (this.httpProxy != null) { | |||
| RequestConfig config = RequestConfig.custom() | |||
| .setProxy(this.httpProxy).build(); | |||
| httpGet.setConfig(config); | |||
| } | |||
| String resultContent; | |||
| try (CloseableHttpClient httpclient = getRequestHttpClient(); | |||
| CloseableHttpResponse response = httpclient.execute(httpGet)) { | |||
| resultContent = new BasicResponseHandler().handleResponse(response); | |||
| } finally { | |||
| httpGet.releaseConnection(); | |||
| } | |||
| WxError error = WxError.fromJson(resultContent, WxType.CP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.configStorage.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| } catch (IOException e) { | |||
| throw new RuntimeException(e); | |||
| } | |||
| } | |||
| return this.configStorage.getAccessToken(); | |||
| @@ -30,30 +30,29 @@ public class WxCpServiceJoddHttpImpl extends BaseWxCpServiceImpl<HttpConnectionP | |||
| @Override | |||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | |||
| if (this.configStorage.isAccessTokenExpired() || forceRefresh) { | |||
| synchronized (this.globalAccessTokenRefreshLock) { | |||
| if (this.configStorage.isAccessTokenExpired()) { | |||
| String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?" | |||
| + "&corpid=" + this.configStorage.getCorpId() | |||
| + "&corpsecret=" + this.configStorage.getCorpSecret(); | |||
| if (!this.configStorage.isAccessTokenExpired() && !forceRefresh) { | |||
| return this.configStorage.getAccessToken(); | |||
| } | |||
| synchronized (this.globalAccessTokenRefreshLock) { | |||
| String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?" | |||
| + "&corpid=" + this.configStorage.getCorpId() | |||
| + "&corpsecret=" + this.configStorage.getCorpSecret(); | |||
| HttpRequest request = HttpRequest.get(url); | |||
| if (this.httpProxy != null) { | |||
| httpClient.useProxy(this.httpProxy); | |||
| } | |||
| request.withConnectionProvider(httpClient); | |||
| HttpResponse response = request.send(); | |||
| HttpRequest request = HttpRequest.get(url); | |||
| if (this.httpProxy != null) { | |||
| httpClient.useProxy(this.httpProxy); | |||
| } | |||
| request.withConnectionProvider(httpClient); | |||
| HttpResponse response = request.send(); | |||
| String resultContent = response.bodyText(); | |||
| WxError error = WxError.fromJson(resultContent, WxType.CP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.configStorage.updateAccessToken( | |||
| accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| } | |||
| String resultContent = response.bodyText(); | |||
| WxError error = WxError.fromJson(resultContent, WxType.CP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.configStorage.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| } | |||
| return this.configStorage.getAccessToken(); | |||
| } | |||
| @@ -33,34 +33,33 @@ public class WxCpServiceOkHttpImpl extends BaseWxCpServiceImpl<OkHttpClient, OkH | |||
| @Override | |||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | |||
| this.log.debug("WxCpServiceOkHttpImpl is running"); | |||
| if (this.configStorage.isAccessTokenExpired() || forceRefresh) { | |||
| synchronized (this.globalAccessTokenRefreshLock) { | |||
| if (this.configStorage.isAccessTokenExpired()) { | |||
| String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?" | |||
| + "&corpid=" + this.configStorage.getCorpId() | |||
| + "&corpsecret=" + this.configStorage.getCorpSecret(); | |||
| //得到httpClient | |||
| OkHttpClient client = getRequestHttpClient(); | |||
| //请求的request | |||
| Request request = new Request.Builder().url(url).get().build(); | |||
| String resultContent = null; | |||
| try { | |||
| Response response = client.newCall(request).execute(); | |||
| resultContent = response.body().string(); | |||
| } catch (IOException e) { | |||
| this.log.error(e.getMessage(), e); | |||
| } | |||
| if (!this.configStorage.isAccessTokenExpired() && !forceRefresh) { | |||
| return this.configStorage.getAccessToken(); | |||
| } | |||
| synchronized (this.globalAccessTokenRefreshLock) { | |||
| String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?" | |||
| + "&corpid=" + this.configStorage.getCorpId() | |||
| + "&corpsecret=" + this.configStorage.getCorpSecret(); | |||
| //得到httpClient | |||
| OkHttpClient client = getRequestHttpClient(); | |||
| //请求的request | |||
| Request request = new Request.Builder().url(url).get().build(); | |||
| String resultContent = null; | |||
| try { | |||
| Response response = client.newCall(request).execute(); | |||
| resultContent = response.body().string(); | |||
| } catch (IOException e) { | |||
| this.log.error(e.getMessage(), e); | |||
| } | |||
| WxError error = WxError.fromJson(resultContent, WxType.CP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.configStorage.updateAccessToken(accessToken.getAccessToken(), | |||
| accessToken.getExpiresIn()); | |||
| WxError error = WxError.fromJson(resultContent, WxType.CP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.configStorage.updateAccessToken(accessToken.getAccessToken(), | |||
| accessToken.getExpiresIn()); | |||
| } | |||
| return this.configStorage.getAccessToken(); | |||
| } | |||
| @@ -1,31 +1,6 @@ | |||
| package cn.binarywang.wx.miniapp.api.impl; | |||
| import java.io.IOException; | |||
| import java.util.HashMap; | |||
| import java.util.Map; | |||
| import java.util.concurrent.locks.Lock; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.apache.http.HttpHost; | |||
| import org.apache.http.client.config.RequestConfig; | |||
| import org.apache.http.client.methods.CloseableHttpResponse; | |||
| import org.apache.http.client.methods.HttpGet; | |||
| import org.apache.http.impl.client.BasicResponseHandler; | |||
| import org.apache.http.impl.client.CloseableHttpClient; | |||
| import cn.binarywang.wx.miniapp.api.WxMaAnalysisService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaCodeService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaJsapiService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaMediaService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaMsgService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaQrcodeService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaRunService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaSecCheckService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaSettingService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaShareService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaTemplateService; | |||
| import cn.binarywang.wx.miniapp.api.WxMaUserService; | |||
| import cn.binarywang.wx.miniapp.api.*; | |||
| import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; | |||
| import cn.binarywang.wx.miniapp.config.WxMaConfig; | |||
| import com.google.common.base.Joiner; | |||
| @@ -38,13 +13,21 @@ import me.chanjar.weixin.common.error.WxError; | |||
| import me.chanjar.weixin.common.error.WxErrorException; | |||
| import me.chanjar.weixin.common.util.DataUtils; | |||
| import me.chanjar.weixin.common.util.crypto.SHA1; | |||
| import me.chanjar.weixin.common.util.http.HttpType; | |||
| import me.chanjar.weixin.common.util.http.RequestExecutor; | |||
| import me.chanjar.weixin.common.util.http.RequestHttp; | |||
| import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; | |||
| import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; | |||
| import me.chanjar.weixin.common.util.http.*; | |||
| import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; | |||
| import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.apache.http.HttpHost; | |||
| import org.apache.http.client.config.RequestConfig; | |||
| import org.apache.http.client.methods.CloseableHttpResponse; | |||
| import org.apache.http.client.methods.HttpGet; | |||
| import org.apache.http.impl.client.BasicResponseHandler; | |||
| import org.apache.http.impl.client.CloseableHttpClient; | |||
| import java.io.IOException; | |||
| import java.util.HashMap; | |||
| import java.util.Map; | |||
| import java.util.concurrent.locks.Lock; | |||
| import static cn.binarywang.wx.miniapp.constant.WxMaConstants.ErrorCode.*; | |||
| @@ -118,40 +101,41 @@ public class WxMaServiceImpl implements WxMaService, RequestHttp<CloseableHttpCl | |||
| @Override | |||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | |||
| if (!this.getWxMaConfig().isAccessTokenExpired() && !forceRefresh) { | |||
| return this.getWxMaConfig().getAccessToken(); | |||
| } | |||
| Lock lock = this.getWxMaConfig().getAccessTokenLock(); | |||
| lock.lock(); | |||
| try { | |||
| lock.lock(); | |||
| if (this.getWxMaConfig().isAccessTokenExpired() || forceRefresh) { | |||
| String url = String.format(WxMaService.GET_ACCESS_TOKEN_URL, this.getWxMaConfig().getAppid(), | |||
| this.getWxMaConfig().getSecret()); | |||
| try { | |||
| HttpGet httpGet = new HttpGet(url); | |||
| if (this.getRequestHttpProxy() != null) { | |||
| RequestConfig config = RequestConfig.custom().setProxy(this.getRequestHttpProxy()).build(); | |||
| httpGet.setConfig(config); | |||
| } | |||
| try (CloseableHttpResponse response = getRequestHttpClient().execute(httpGet)) { | |||
| String resultContent = new BasicResponseHandler().handleResponse(response); | |||
| WxError error = WxError.fromJson(resultContent); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMaConfig().updateAccessToken(accessToken.getAccessToken(), | |||
| accessToken.getExpiresIn()); | |||
| } finally { | |||
| httpGet.releaseConnection(); | |||
| String url = String.format(WxMaService.GET_ACCESS_TOKEN_URL, this.getWxMaConfig().getAppid(), | |||
| this.getWxMaConfig().getSecret()); | |||
| try { | |||
| HttpGet httpGet = new HttpGet(url); | |||
| if (this.getRequestHttpProxy() != null) { | |||
| RequestConfig config = RequestConfig.custom().setProxy(this.getRequestHttpProxy()).build(); | |||
| httpGet.setConfig(config); | |||
| } | |||
| try (CloseableHttpResponse response = getRequestHttpClient().execute(httpGet)) { | |||
| String resultContent = new BasicResponseHandler().handleResponse(response); | |||
| WxError error = WxError.fromJson(resultContent); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| } catch (IOException e) { | |||
| throw new RuntimeException(e); | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMaConfig().updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| return this.getWxMaConfig().getAccessToken(); | |||
| } finally { | |||
| httpGet.releaseConnection(); | |||
| } | |||
| } catch (IOException e) { | |||
| throw new RuntimeException(e); | |||
| } | |||
| } finally { | |||
| lock.unlock(); | |||
| } | |||
| return this.getWxMaConfig().getAccessToken(); | |||
| } | |||
| @Override | |||
| @@ -63,37 +63,38 @@ public class WxMpServiceHttpClientImpl extends BaseWxMpServiceImpl<CloseableHttp | |||
| @Override | |||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | |||
| if (!this.getWxMpConfigStorage().isAccessTokenExpired() && !forceRefresh) { | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } | |||
| Lock lock = this.getWxMpConfigStorage().getAccessTokenLock(); | |||
| lock.lock(); | |||
| try { | |||
| lock.lock(); | |||
| if (this.getWxMpConfigStorage().isAccessTokenExpired() || forceRefresh) { | |||
| String url = String.format(WxMpService.GET_ACCESS_TOKEN_URL, | |||
| this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret()); | |||
| try { | |||
| HttpGet httpGet = new HttpGet(url); | |||
| if (this.getRequestHttpProxy() != null) { | |||
| RequestConfig config = RequestConfig.custom().setProxy(this.getRequestHttpProxy()).build(); | |||
| httpGet.setConfig(config); | |||
| } | |||
| try (CloseableHttpResponse response = getRequestHttpClient().execute(httpGet)) { | |||
| String resultContent = new BasicResponseHandler().handleResponse(response); | |||
| WxError error = WxError.fromJson(resultContent, WxType.MP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), | |||
| accessToken.getExpiresIn()); | |||
| } finally { | |||
| httpGet.releaseConnection(); | |||
| String url = String.format(WxMpService.GET_ACCESS_TOKEN_URL, | |||
| this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret()); | |||
| try { | |||
| HttpGet httpGet = new HttpGet(url); | |||
| if (this.getRequestHttpProxy() != null) { | |||
| RequestConfig config = RequestConfig.custom().setProxy(this.getRequestHttpProxy()).build(); | |||
| httpGet.setConfig(config); | |||
| } | |||
| try (CloseableHttpResponse response = getRequestHttpClient().execute(httpGet)) { | |||
| String resultContent = new BasicResponseHandler().handleResponse(response); | |||
| WxError error = WxError.fromJson(resultContent, WxType.MP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| } catch (IOException e) { | |||
| throw new RuntimeException(e); | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } finally { | |||
| httpGet.releaseConnection(); | |||
| } | |||
| } catch (IOException e) { | |||
| throw new RuntimeException(e); | |||
| } | |||
| } finally { | |||
| lock.unlock(); | |||
| } | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } | |||
| } | |||
| @@ -48,36 +48,37 @@ public class WxMpServiceJoddHttpImpl extends BaseWxMpServiceImpl<HttpConnectionP | |||
| @Override | |||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | |||
| if (!this.getWxMpConfigStorage().isAccessTokenExpired() && !forceRefresh) { | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } | |||
| Lock lock = this.getWxMpConfigStorage().getAccessTokenLock(); | |||
| lock.lock(); | |||
| try { | |||
| lock.lock(); | |||
| if (this.getWxMpConfigStorage().isAccessTokenExpired() || forceRefresh) { | |||
| String url = String.format(WxMpService.GET_ACCESS_TOKEN_URL, | |||
| this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret()); | |||
| HttpRequest request = HttpRequest.get(url); | |||
| if (this.getRequestHttpProxy() != null) { | |||
| SocketHttpConnectionProvider provider = new SocketHttpConnectionProvider(); | |||
| provider.useProxy(getRequestHttpProxy()); | |||
| request.withConnectionProvider(provider); | |||
| } | |||
| HttpResponse response = request.send(); | |||
| String resultContent = response.bodyText(); | |||
| WxError error = WxError.fromJson(resultContent, WxType.MP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), | |||
| accessToken.getExpiresIn()); | |||
| String url = String.format(WxMpService.GET_ACCESS_TOKEN_URL, | |||
| this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret()); | |||
| HttpRequest request = HttpRequest.get(url); | |||
| if (this.getRequestHttpProxy() != null) { | |||
| SocketHttpConnectionProvider provider = new SocketHttpConnectionProvider(); | |||
| provider.useProxy(getRequestHttpProxy()); | |||
| request.withConnectionProvider(provider); | |||
| } | |||
| HttpResponse response = request.send(); | |||
| String resultContent = response.bodyText(); | |||
| WxError error = WxError.fromJson(resultContent, WxType.MP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } finally { | |||
| lock.unlock(); | |||
| } | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } | |||
| } | |||
| @@ -36,38 +36,36 @@ public class WxMpServiceOkHttpImpl extends BaseWxMpServiceImpl<OkHttpClient, OkH | |||
| @Override | |||
| public String getAccessToken(boolean forceRefresh) throws WxErrorException { | |||
| this.log.debug("WxMpServiceOkHttpImpl is running"); | |||
| if (!this.getWxMpConfigStorage().isAccessTokenExpired() && !forceRefresh) { | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } | |||
| Lock lock = this.getWxMpConfigStorage().getAccessTokenLock(); | |||
| lock.lock(); | |||
| try { | |||
| lock.lock(); | |||
| if (this.getWxMpConfigStorage().isAccessTokenExpired() || forceRefresh) { | |||
| String url = String.format(WxMpService.GET_ACCESS_TOKEN_URL, | |||
| this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret()); | |||
| String url = String.format(WxMpService.GET_ACCESS_TOKEN_URL, | |||
| this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret()); | |||
| Request request = new Request.Builder().url(url).get().build(); | |||
| Response response = getRequestHttpClient().newCall(request).execute(); | |||
| String resultContent = response.body().string(); | |||
| WxError error = WxError.fromJson(resultContent, WxType.MP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), | |||
| accessToken.getExpiresIn()); | |||
| Request request = new Request.Builder().url(url).get().build(); | |||
| Response response = getRequestHttpClient().newCall(request).execute(); | |||
| String resultContent = response.body().string(); | |||
| WxError error = WxError.fromJson(resultContent, WxType.MP); | |||
| if (error.getErrorCode() != 0) { | |||
| throw new WxErrorException(error); | |||
| } | |||
| WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); | |||
| this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } catch (IOException e) { | |||
| this.log.error(e.getMessage(), e); | |||
| throw new RuntimeException(e); | |||
| } finally { | |||
| lock.unlock(); | |||
| } | |||
| return this.getWxMpConfigStorage().getAccessToken(); | |||
| } | |||
| @Override | |||
| public void initHttp() { | |||
| this.log.debug("WxMpServiceOkHttpImpl initHttp"); | |||
| //设置代理 | |||
| if (wxMpConfigStorage.getHttpProxyHost() != null && wxMpConfigStorage.getHttpProxyPort() > 0) { | |||
| httpProxy = OkHttpProxyInfo.httpProxy(wxMpConfigStorage.getHttpProxyHost(), | |||