持续优化代码

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.model.Consts;
import com.foxinmy.weixin4j.mp.model.OauthToken; import com.foxinmy.weixin4j.mp.model.OauthToken;
import com.foxinmy.weixin4j.mp.model.User; 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.ConfigUtil;
import com.foxinmy.weixin4j.util.StringUtil; import com.foxinmy.weixin4j.util.StringUtil;
@ -146,19 +147,40 @@ public class OauthApi extends MpApi {
* oauth获取用户信息(需scope为 snsapi_userinfo) * oauth获取用户信息(需scope为 snsapi_userinfo)
* *
* @param token * @param token
* 授权票据 * 授权信息(token&openid)
* @return 用户对象 * @return 用户对象
* @throws WeixinException * @throws WeixinException
* @see <a * @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.User
* @see com.foxinmy.weixin4j.mp.model.OauthToken * @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 { 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"); String user_info_uri = getRequestUri("sns_user_info_uri");
WeixinResponse response = weixinClient.get(String.format(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>() { 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_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_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_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 # \u76f4\u63a5\u83b7\u53d6\u7528\u6237\u4fe1\u606f
api_user_info_uri={api_cgi_url}/user/info?access_token=%s&openid=%s&lang=%s 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字段从小到大排列) * 查询部门列表(以部门的order字段从小到大排列)
* *
* @param partyId * @param partyId
* 部门ID获取指定部门ID下的子部门 * 部门ID获取指定部门ID下的子部门 传入0表示获取全部子部门
* @see com.foxinmy.weixin4j.qy.model.Party * @see com.foxinmy.weixin4j.qy.model.Party
* @see <a * @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> * 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字段从小到大排列) * 查询部门列表(以部门的order字段从小到大排列)
* *
* @param partId * @param partId
* 部门ID获取指定部门ID下的子部门 * 部门ID获取指定部门ID下的子部门 传入0表示获取全部子部门
* @see com.foxinmy.weixin4j.qy.model.Party * @see com.foxinmy.weixin4j.qy.model.Party
* @see <a * @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> * 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 { public List<Party> listParty(int partId) throws WeixinException {
String department_list_uri = getRequestUri("department_list_uri"); String department_list_uri = getRequestUri("department_list_uri");
if (partId > 0) {
department_list_uri += String.format("&id=%d", partId);
}
Token token = tokenHolder.getToken(); Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format( WeixinResponse response = weixinClient.post(String.format(
department_list_uri, token.getAccessToken())); 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.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.foxinmy.weixin4j.exception.WeixinException; import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.JsonResult; import com.foxinmy.weixin4j.http.weixin.JsonResult;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse; import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
@ -198,8 +197,10 @@ public class SuiteApi extends QyApi {
WeixinResponse response = weixinClient.post( WeixinResponse response = weixinClient.post(
String.format(suite_get_authinfo_uri, String.format(suite_get_authinfo_uri,
suiteTokenHolder.getAccessToken()), obj.toJSONString()); 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 @Test
public void list() throws WeixinException { public void list() throws WeixinException {
List<Party> list = partyApi.listParty(1); List<Party> list = partyApi.listParty(0);
Assert.assertFalse(list.isEmpty()); Assert.assertFalse(list.isEmpty());
System.out.println(list); System.out.println(list);
} }