持续优化代码

This commit is contained in:
jinyu 2015-06-30 19:21:48 +08:00
parent 8a30e4c72e
commit 402d87c978
6 changed files with 37 additions and 11 deletions

View File

@ -9,6 +9,7 @@ import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Consts;
import com.foxinmy.weixin4j.mp.model.OauthToken;
import com.foxinmy.weixin4j.mp.model.User;
import com.foxinmy.weixin4j.mp.type.Lang;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.StringUtil;
@ -146,19 +147,40 @@ public class OauthApi extends MpApi {
* oauth获取用户信息(需scope为 snsapi_userinfo)
*
* @param token
* 授权票据
* 授权信息(token&openid)
* @return 用户对象
* @throws WeixinException
* @see <a
* href="http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html">取用户信息</a>
* href="http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html">授权获取用户信息</a>
* @see com.foxinmy.weixin4j.mp.model.User
* @see com.foxinmy.weixin4j.mp.model.OauthToken
* @see {@link com.foxinmy.weixin4j.mp.api.UserApi#getOauthToken(String)}
* @see {@link com.foxinmy.weixin4j.mp.api.OauthApi#getOauthToken(String)}
* @see {@link com.foxinmy.weixin4j.mp.api.OauthApi#getUser(String,Sring,Lang)}
*/
public User getUser(OauthToken token) throws WeixinException {
return getUser(token.getAccessToken(), token.getOpenid(), Lang.zh_CN);
}
/**
* oauth获取用户信息(需scope为 snsapi_userinfo)
*
* @param oauthToken
* 授权票据
* @param openid
* 用户openid
* @param lang
* 使用语言
* @return 用户对象
* @throws WeixinException
* @see <a
* href="http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html">授权获取用户信息</a>
* @see com.foxinmy.weixin4j.mp.model.User
*/
public User getUser(String oauthToken, String openid, Lang lang)
throws WeixinException {
String user_info_uri = getRequestUri("sns_user_info_uri");
WeixinResponse response = weixinClient.get(String.format(user_info_uri,
token.getAccessToken(), token.getOpenid()));
oauthToken, openid, lang.name()));
return response.getAsObject(new TypeReference<User>() {
});

View File

@ -20,7 +20,7 @@ sns_user_auth_uri=https://open.weixin.qq.com/connect/qrconnect?appid=%s&redirect
sns_user_token_uri=https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code
sns_token_refresh_uri=https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=%s&grant_type=refresh_token&refresh_token=%s
sns_auth_token_uri=https://api.weixin.qq.com/sns/auth?access_token=%s&openid=%s
sns_user_info_uri=https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN
sns_user_info_uri=https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=%s
# \u76f4\u63a5\u83b7\u53d6\u7528\u6237\u4fe1\u606f
api_user_info_uri={api_cgi_url}/user/info?access_token=%s&openid=%s&lang=%s

View File

@ -311,7 +311,7 @@ public class WeixinProxy {
* 查询部门列表(以部门的order字段从小到大排列)
*
* @param partyId
* 部门ID获取指定部门ID下的子部门
* 部门ID获取指定部门ID下的子部门 传入0表示获取全部子部门
* @see com.foxinmy.weixin4j.qy.model.Party
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E9%83%A8%E9%97%A8#.E8.8E.B7.E5.8F.96.E9.83.A8.E9.97.A8.E5.88.97.E8.A1.A8">获取部门列表</a>

View File

@ -87,7 +87,7 @@ public class PartyApi extends QyApi {
* 查询部门列表(以部门的order字段从小到大排列)
*
* @param partId
* 部门ID获取指定部门ID下的子部门
* 部门ID获取指定部门ID下的子部门 传入0表示获取全部子部门
* @see com.foxinmy.weixin4j.qy.model.Party
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E9%83%A8%E9%97%A8#.E8.8E.B7.E5.8F.96.E9.83.A8.E9.97.A8.E5.88.97.E8.A1.A8">获取部门列表</a>
@ -96,6 +96,9 @@ public class PartyApi extends QyApi {
*/
public List<Party> listParty(int partId) throws WeixinException {
String department_list_uri = getRequestUri("department_list_uri");
if (partId > 0) {
department_list_uri += String.format("&id=%d", partId);
}
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
department_list_uri, token.getAccessToken()));

View File

@ -2,7 +2,6 @@ package com.foxinmy.weixin4j.qy.api;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.JsonResult;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
@ -198,8 +197,10 @@ public class SuiteApi extends QyApi {
WeixinResponse response = weixinClient.post(
String.format(suite_get_authinfo_uri,
suiteTokenHolder.getAccessToken()), obj.toJSONString());
return response.getAsObject(new TypeReference<OUserInfo>() {
});
obj = response.getAsJson();
obj.put("corp_info", obj.remove("auth_corp_info"));
obj.put("user_info", obj.remove("auth_user_info"));
return JSON.toJavaObject(obj, OUserInfo.class);
}
/**

View File

@ -44,7 +44,7 @@ public class PartyTest extends TokenTest {
@Test
public void list() throws WeixinException {
List<Party> list = partyApi.listParty(1);
List<Party> list = partyApi.listParty(0);
Assert.assertFalse(list.isEmpty());
System.out.println(list);
}