diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/OauthApi.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/OauthApi.java
index 4846cd06..052bba93 100644
--- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/OauthApi.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/OauthApi.java
@@ -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 拉取用户信息
+ * href="http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html">授权获取用户信息
* @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 授权获取用户信息
+ * @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() {
});
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties
index afef726a..e07d455c 100644
--- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties
@@ -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
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java
index 32dcede9..c9fb6bb1 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java
@@ -311,7 +311,7 @@ public class WeixinProxy {
* 查询部门列表(以部门的order字段从小到大排列)
*
* @param partyId
- * 部门ID。获取指定部门ID下的子部门
+ * 部门ID。获取指定部门ID下的子部门 传入0表示获取全部子部门
* @see com.foxinmy.weixin4j.qy.model.Party
* @see 获取部门列表
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/PartyApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/PartyApi.java
index 62e89d91..57a6783a 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/PartyApi.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/PartyApi.java
@@ -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 获取部门列表
@@ -96,6 +96,9 @@ public class PartyApi extends QyApi {
*/
public List 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()));
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java
index 89bb630a..0775e71a 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/SuiteApi.java
@@ -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() {
- });
+ 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);
}
/**
diff --git a/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/PartyTest.java b/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/PartyTest.java
index fdce2c95..ce911b9c 100644
--- a/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/PartyTest.java
+++ b/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/PartyTest.java
@@ -44,7 +44,7 @@ public class PartyTest extends TokenTest {
@Test
public void list() throws WeixinException {
- List list = partyApi.listParty(1);
+ List list = partyApi.listParty(0);
Assert.assertFalse(list.isEmpty());
System.out.println(list);
}