diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java
index 519aa2fc..e3723a71 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java
@@ -65,7 +65,7 @@ public class WxCpServiceImpl implements WxCpService {
*/
protected final Object globalJsapiTicketRefreshLock = new Object();
- protected WxCpConfigStorage wxCpConfigStorage;
+ protected WxCpConfigStorage configStorage;
protected CloseableHttpClient httpClient;
@@ -81,7 +81,7 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public boolean checkSignature(String msgSignature, String timestamp, String nonce, String data) {
try {
- return SHA1.gen(this.wxCpConfigStorage.getToken(), timestamp, nonce, data)
+ return SHA1.gen(this.configStorage.getToken(), timestamp, nonce, data)
.equals(msgSignature);
} catch (Exception e) {
return false;
@@ -102,14 +102,14 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public String getAccessToken(boolean forceRefresh) throws WxErrorException {
if (forceRefresh) {
- this.wxCpConfigStorage.expireAccessToken();
+ this.configStorage.expireAccessToken();
}
- if (this.wxCpConfigStorage.isAccessTokenExpired()) {
+ if (this.configStorage.isAccessTokenExpired()) {
synchronized (this.globalAccessTokenRefreshLock) {
- if (this.wxCpConfigStorage.isAccessTokenExpired()) {
+ if (this.configStorage.isAccessTokenExpired()) {
String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?"
- + "&corpid=" + this.wxCpConfigStorage.getCorpId() + "&corpsecret="
- + this.wxCpConfigStorage.getCorpSecret();
+ + "&corpid=" + this.configStorage.getCorpId()
+ + "&corpsecret=" + this.configStorage.getCorpSecret();
try {
HttpGet httpGet = new HttpGet(url);
if (this.httpProxy != null) {
@@ -129,7 +129,7 @@ public class WxCpServiceImpl implements WxCpService {
throw new WxErrorException(error);
}
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
- this.wxCpConfigStorage.updateAccessToken(
+ this.configStorage.updateAccessToken(
accessToken.getAccessToken(), accessToken.getExpiresIn());
} catch (ClientProtocolException e) {
throw new RuntimeException(e);
@@ -139,7 +139,7 @@ public class WxCpServiceImpl implements WxCpService {
}
}
}
- return this.wxCpConfigStorage.getAccessToken();
+ return this.configStorage.getAccessToken();
}
@Override
@@ -150,23 +150,23 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public String getJsapiTicket(boolean forceRefresh) throws WxErrorException {
if (forceRefresh) {
- this.wxCpConfigStorage.expireJsapiTicket();
+ this.configStorage.expireJsapiTicket();
}
- if (this.wxCpConfigStorage.isJsapiTicketExpired()) {
+ if (this.configStorage.isJsapiTicketExpired()) {
synchronized (this.globalJsapiTicketRefreshLock) {
- if (this.wxCpConfigStorage.isJsapiTicketExpired()) {
+ if (this.configStorage.isJsapiTicketExpired()) {
String url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket";
String responseContent = execute(new SimpleGetRequestExecutor(), url, null);
JsonElement tmpJsonElement = new JsonParser().parse(responseContent);
JsonObject tmpJsonObject = tmpJsonElement.getAsJsonObject();
String jsapiTicket = tmpJsonObject.get("ticket").getAsString();
int expiresInSeconds = tmpJsonObject.get("expires_in").getAsInt();
- this.wxCpConfigStorage.updateJsapiTicket(jsapiTicket,
+ this.configStorage.updateJsapiTicket(jsapiTicket,
expiresInSeconds);
}
}
}
- return this.wxCpConfigStorage.getJsapiTicket();
+ return this.configStorage.getJsapiTicket();
}
@Override
@@ -187,7 +187,7 @@ public class WxCpServiceImpl implements WxCpService {
jsapiSignature.setSignature(signature);
// Fixed bug
- jsapiSignature.setAppid(this.wxCpConfigStorage.getCorpId());
+ jsapiSignature.setAppid(this.configStorage.getCorpId());
return jsapiSignature;
}
@@ -200,19 +200,19 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public void menuCreate(WxMenu menu) throws WxErrorException {
- menuCreate(this.wxCpConfigStorage.getAgentId(), menu);
+ menuCreate(this.configStorage.getAgentId(), menu);
}
@Override
public void menuCreate(String agentId, WxMenu menu) throws WxErrorException {
String url = "https://qyapi.weixin.qq.com/cgi-bin/menu/create?agentid="
- + this.wxCpConfigStorage.getAgentId();
+ + this.configStorage.getAgentId();
post(url, menu.toJson());
}
@Override
public void menuDelete() throws WxErrorException {
- menuDelete(this.wxCpConfigStorage.getAgentId());
+ menuDelete(this.configStorage.getAgentId());
}
@Override
@@ -223,7 +223,7 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public WxMenu menuGet() throws WxErrorException {
- return menuGet(this.wxCpConfigStorage.getAgentId());
+ return menuGet(this.configStorage.getAgentId());
}
@Override
@@ -258,7 +258,7 @@ public class WxCpServiceImpl implements WxCpService {
String url = "https://qyapi.weixin.qq.com/cgi-bin/media/get";
return execute(
new MediaDownloadRequestExecutor(
- this.wxCpConfigStorage.getTmpDirFile()),
+this.configStorage.getTmpDirFile()),
url, "media_id=" + media_id);
}
@@ -475,7 +475,7 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public String oauth2buildAuthorizationUrl(String state) {
return this.oauth2buildAuthorizationUrl(
- this.wxCpConfigStorage.getOauth2redirectUri(),
+this.configStorage.getOauth2redirectUri(),
state
);
}
@@ -483,7 +483,7 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public String oauth2buildAuthorizationUrl(String redirectUri, String state) {
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?";
- url += "appid=" + this.wxCpConfigStorage.getCorpId();
+ url += "appid=" + this.configStorage.getCorpId();
url += "&redirect_uri=" + URIUtil.encodeURIComponent(redirectUri);
url += "&response_type=code";
url += "&scope=snsapi_base";
@@ -496,7 +496,7 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public String[] oauth2getUserInfo(String code) throws WxErrorException {
- return oauth2getUserInfo(this.wxCpConfigStorage.getAgentId(), code);
+ return oauth2getUserInfo(this.configStorage.getAgentId(), code);
}
@Override
@@ -599,7 +599,7 @@ public class WxCpServiceImpl implements WxCpService {
*/
if (error.getErrorCode() == 42001 || error.getErrorCode() == 40001) {
// 强制设置wxCpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token
- this.wxCpConfigStorage.expireAccessToken();
+ this.configStorage.expireAccessToken();
return execute(executor, uri, data);
}
if (error.getErrorCode() != 0) {
@@ -619,20 +619,22 @@ public class WxCpServiceImpl implements WxCpService {
@Override
public void setWxCpConfigStorage(WxCpConfigStorage wxConfigProvider) {
- this.wxCpConfigStorage = wxConfigProvider;
- ApacheHttpClientBuilder apacheHttpClientBuilder = this.wxCpConfigStorage
+ this.configStorage = wxConfigProvider;
+ ApacheHttpClientBuilder apacheHttpClientBuilder = this.configStorage
.getApacheHttpClientBuilder();
if (null == apacheHttpClientBuilder) {
apacheHttpClientBuilder = DefaultApacheHttpClientBuilder.get();
}
- apacheHttpClientBuilder
- .httpProxyHost(this.wxCpConfigStorage.getHttpProxyHost())
- .httpProxyPort(this.wxCpConfigStorage.getHttpProxyPort())
- .httpProxyUsername(this.wxCpConfigStorage.getHttpProxyUsername())
- .httpProxyPassword(this.wxCpConfigStorage.getHttpProxyPassword());
-
- this.httpProxy = new HttpHost(this.wxCpConfigStorage.getHttpProxyHost(),
- this.wxCpConfigStorage.getHttpProxyPort());
+
+ apacheHttpClientBuilder.httpProxyHost(this.configStorage.getHttpProxyHost())
+ .httpProxyPort(this.configStorage.getHttpProxyPort())
+ .httpProxyUsername(this.configStorage.getHttpProxyUsername())
+ .httpProxyPassword(this.configStorage.getHttpProxyPassword());
+
+ if (this.configStorage.getHttpProxyHost() != null && this.configStorage.getHttpProxyPort() > 0) {
+ this.httpProxy = new HttpHost(this.configStorage.getHttpProxyHost(), this.configStorage.getHttpProxyPort());
+ }
+
this.httpClient = apacheHttpClientBuilder.build();
}
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBaseAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBaseAPITest.java
index d2ac69e8..d2eb2ec6 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBaseAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBaseAPITest.java
@@ -1,12 +1,14 @@
package me.chanjar.weixin.cp.api;
-import com.google.inject.Inject;
-import me.chanjar.weixin.common.exception.WxErrorException;
-import me.chanjar.weixin.common.util.StringUtils;
import org.testng.Assert;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
+import com.google.inject.Inject;
+
+import me.chanjar.weixin.common.exception.WxErrorException;
+import me.chanjar.weixin.common.util.StringUtils;
+
/**
* 基础API测试
*
@@ -20,7 +22,7 @@ public class WxCpBaseAPITest {
protected WxCpServiceImpl wxService;
public void testRefreshAccessToken() throws WxErrorException {
- WxCpConfigStorage configStorage = this.wxService.wxCpConfigStorage;
+ WxCpConfigStorage configStorage = this.wxService.configStorage;
String before = configStorage.getAccessToken();
this.wxService.getAccessToken(false);
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
index 8bfe07e6..b7bcf7a3 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
@@ -1,11 +1,13 @@
package me.chanjar.weixin.cp.api;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
+
import com.google.inject.Inject;
+
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.cp.bean.WxCpMessage;
-import org.testng.annotations.Guice;
-import org.testng.annotations.Test;
/***
* 测试发送消息
@@ -20,7 +22,7 @@ public class WxCpMessageAPITest {
protected WxCpServiceImpl wxService;
public void testSendCustomMessage() throws WxErrorException {
- ApiTestModule.WxXmlCpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlCpInMemoryConfigStorage) this.wxService.wxCpConfigStorage;
+ ApiTestModule.WxXmlCpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlCpInMemoryConfigStorage) this.wxService.configStorage;
WxCpMessage message1 = new WxCpMessage();
message1.setAgentId(configStorage.getAgentId());
message1.setMsgType(WxConsts.CUSTOM_MSG_TEXT);
@@ -32,7 +34,7 @@ public class WxCpMessageAPITest {
.TEXT()
.agentId(configStorage.getAgentId())
.toUser(configStorage.getUserId())
- .content("欢迎欢迎,热烈欢迎\n换行测试\n超链接:Hello World")
+ .content("欢迎欢迎,热烈欢迎\n换行测试\n超链接:Hello World")
.build();
this.wxService.messageSend(message2);
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java
index deddaab6..2bff6482 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java
@@ -515,8 +515,10 @@ public class WxMpServiceImpl implements WxMpService {
apacheHttpClientBuilder.sslConnectionSocketFactory(sslsf);
}
- this.httpProxy = new HttpHost(this.configStorage.getHttpProxyHost(),
- this.configStorage.getHttpProxyPort());
+ if (this.configStorage.getHttpProxyHost() != null && this.configStorage.getHttpProxyPort() > 0) {
+ this.httpProxy = new HttpHost(this.configStorage.getHttpProxyHost(), this.configStorage.getHttpProxyPort());
+ }
+
this.httpClient = apacheHttpClientBuilder.build();
}