polish code

This commit is contained in:
Daniel Qian
2014-08-22 16:08:30 +08:00
parent e5e729918b
commit c2b166becc
8 changed files with 16 additions and 21 deletions

View File

@@ -6,7 +6,7 @@ import chanjarster.weixin.bean.WxXmlMessage;
/** /**
* 微信消息拦截器,可以用来做一些验证 * 微信消息拦截器,可以用来做验证
* @author qianjia * @author qianjia
* *
*/ */

View File

@@ -75,5 +75,5 @@ public interface WxService {
*/ */
public WxMenu getMenu() throws WxErrorException; public WxMenu getMenu() throws WxErrorException;
public void setWxConfigProvider(WxConfigStorage wxConfigProvider); public void setWxConfigStorage(WxConfigStorage wxConfigProvider);
} }

View File

@@ -35,11 +35,11 @@ public class WxServiceImpl implements WxService {
protected static final CloseableHttpClient httpclient = HttpClients.createDefault(); protected static final CloseableHttpClient httpclient = HttpClients.createDefault();
protected WxConfigStorage wxConfigProvider; protected WxConfigStorage wxConfigStorage;
public boolean checkSignature(String timestamp, String nonce, String signature) { public boolean checkSignature(String timestamp, String nonce, String signature) {
try { try {
String token = wxConfigProvider.getToken(); String token = wxConfigStorage.getToken();
MessageDigest sha1 = MessageDigest.getInstance("SHA1"); MessageDigest sha1 = MessageDigest.getInstance("SHA1");
String[] arr = new String[] { token, timestamp, nonce }; String[] arr = new String[] { token, timestamp, nonce };
Arrays.sort(arr); Arrays.sort(arr);
@@ -70,8 +70,8 @@ public class WxServiceImpl implements WxService {
if (!GLOBAL_ACCESS_TOKEN_REFRESH_FLAG.getAndSet(true)) { if (!GLOBAL_ACCESS_TOKEN_REFRESH_FLAG.getAndSet(true)) {
try { try {
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=" + wxConfigProvider.getAppId() + "&appid=" + wxConfigStorage.getAppId()
+ "&secret=" + wxConfigProvider.getSecret() + "&secret=" + wxConfigStorage.getSecret()
; ;
try { try {
HttpGet httpGet = new HttpGet(url); HttpGet httpGet = new HttpGet(url);
@@ -82,7 +82,7 @@ public class WxServiceImpl implements WxService {
throw new WxErrorException(error); throw new WxErrorException(error);
} }
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
wxConfigProvider.updateAccessToken(accessToken.getAccess_token(), accessToken.getExpires_in()); wxConfigStorage.updateAccessToken(accessToken.getAccess_token(), accessToken.getExpires_in());
} catch (ClientProtocolException e) { } catch (ClientProtocolException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} catch (IOException e) { } catch (IOException e) {
@@ -147,10 +147,10 @@ public class WxServiceImpl implements WxService {
* @throws WxErrorException * @throws WxErrorException
*/ */
protected String execute(String method, String uri, String data) throws WxErrorException { protected String execute(String method, String uri, String data) throws WxErrorException {
if (StringUtils.isBlank(wxConfigProvider.getAccessToken())) { if (StringUtils.isBlank(wxConfigStorage.getAccessToken())) {
refreshAccessToken(); refreshAccessToken();
} }
String accessToken = wxConfigProvider.getAccessToken(); String accessToken = wxConfigStorage.getAccessToken();
String uriWithAccessToken = uri; String uriWithAccessToken = uri;
uriWithAccessToken += uri.indexOf('?') == -1 ? "?access_token=" + accessToken : "&access_token=" + accessToken; uriWithAccessToken += uri.indexOf('?') == -1 ? "?access_token=" + accessToken : "&access_token=" + accessToken;
@@ -196,8 +196,8 @@ public class WxServiceImpl implements WxService {
} }
} }
public void setWxConfigProvider(WxConfigStorage wxConfigProvider) { public void setWxConfigStorage(WxConfigStorage wxConfigProvider) {
this.wxConfigProvider = wxConfigProvider; this.wxConfigStorage = wxConfigProvider;
} }
} }

View File

@@ -2,7 +2,6 @@ package chanjarster.weixin.bean;
import java.io.InputStream; import java.io.InputStream;
import javax.management.RuntimeErrorException;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;

View File

@@ -28,16 +28,16 @@ public class WxServiceTest {
InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml"); InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml");
WxXmlConfigStorage config1 = XmlTransformer.fromXml(WxXmlConfigStorage.class, is1); WxXmlConfigStorage config1 = XmlTransformer.fromXml(WxXmlConfigStorage.class, is1);
this.wxService = new WxServiceImpl(); this.wxService = new WxServiceImpl();
this.wxService.setWxConfigProvider(config1); this.wxService.setWxConfigStorage(config1);
} }
@Test @Test
public void testRefreshAccessToken() throws WxErrorException { public void testRefreshAccessToken() throws WxErrorException {
WxConfigStorage configProvider = wxService.wxConfigProvider; WxConfigStorage configStorage = wxService.wxConfigStorage;
String before = configProvider.getAccessToken(); String before = configStorage.getAccessToken();
wxService.refreshAccessToken(); wxService.refreshAccessToken();
String after = configProvider.getAccessToken(); String after = configStorage.getAccessToken();
Assert.assertNotEquals(before, after); Assert.assertNotEquals(before, after);
Assert.assertTrue(StringUtils.isNotBlank(after)); Assert.assertTrue(StringUtils.isNotBlank(after));
@@ -45,7 +45,7 @@ public class WxServiceTest {
@Test(dependsOnMethods = "testRefreshAccessToken") @Test(dependsOnMethods = "testRefreshAccessToken")
public void sendCustomMessage() throws WxErrorException { public void sendCustomMessage() throws WxErrorException {
WxXmlConfigStorage configProvider = (WxXmlConfigStorage) wxService.wxConfigProvider; WxXmlConfigStorage configProvider = (WxXmlConfigStorage) wxService.wxConfigStorage;
WxCustomMessage message = new WxCustomMessage(); WxCustomMessage message = new WxCustomMessage();
message.setMsgtype(WxConsts.MSG_TEXT); message.setMsgtype(WxConsts.MSG_TEXT);
message.setTouser(configProvider.getOpenId()); message.setTouser(configProvider.getOpenId());

View File

@@ -4,7 +4,6 @@ import org.testng.Assert;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import chanjarster.weixin.api.WxConsts; import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.bean.WxCustomMessage;
import chanjarster.weixin.bean.WxCustomMessage.WxArticle; import chanjarster.weixin.bean.WxCustomMessage.WxArticle;
@Test @Test

View File

@@ -3,8 +3,6 @@ package chanjarster.weixin.bean;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import chanjarster.weixin.bean.WxError;
@Test @Test
public class WxErrorTest { public class WxErrorTest {

View File

@@ -4,7 +4,6 @@ import org.testng.Assert;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import chanjarster.weixin.api.WxConsts; import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.bean.WxXmlMessage;
@Test @Test
public class WxXmlMessageTest { public class WxXmlMessageTest {