From 8a30e4c72e8f1b36d4e5c1c915c0fe620ed16826 Mon Sep 17 00:00:00 2001 From: jinyu Date: Tue, 30 Jun 2015 08:45:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=93=E4=BD=8F=E4=B8=80=E5=8F=AAbug:?= =?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=8F=B7=E7=AC=AC=E4=B8=89=E6=96=B9=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=88=9B=E5=BB=BA=E4=BC=81=E4=B8=9A=E5=8F=B7access=5F?= =?UTF-8?q?token=E6=97=B6=E6=B2=A1=E6=9C=89=E4=BC=A0=E5=85=A5=E5=85=B6?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=9A=84token.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/foxinmy/weixin4j/qy/api/PartyApi.java | 9 +++++++++ .../java/com/foxinmy/weixin4j/qy/api/SuiteApi.java | 5 +++-- .../weixin4j/qy/suite/WeixinSuiteTokenCreator.java | 2 +- .../weixin4j/qy/suite/WeixinTokenSuiteCreator.java | 12 +++++++++--- 4 files changed, 22 insertions(+), 6 deletions(-) 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 bf3e4326..62e89d91 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 @@ -65,8 +65,17 @@ public class PartyApi extends QyApi { * @throws WeixinException */ public JsonResult updateParty(Party party) throws WeixinException { + if (party.getId() < 1) { + throw new WeixinException("department id must gt 1"); + } String department_update_uri = getRequestUri("department_update_uri"); JSONObject obj = (JSONObject) JSON.toJSON(party); + if (party.getParentid() < 1) { + obj.remove("parentid"); + } + if (party.getOrder() < 0) { + obj.remove("order"); + } Token token = tokenHolder.getToken(); WeixinResponse response = weixinClient.post( String.format(department_update_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 f02a67ba..89bb630a 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 @@ -113,7 +113,8 @@ public class SuiteApi extends QyApi { */ public TokenHolder createTokenHolder(String authCorpid) { return new TokenHolder(new WeixinTokenSuiteCreator(authCorpid, - suitePerCodeHolder), suiteTicketHolder.getTokenStorager()); + suitePerCodeHolder, suiteTokenHolder), + suiteTicketHolder.getTokenStorager()); } /** @@ -165,7 +166,7 @@ public class SuiteApi extends QyApi { OUserInfo oInfo = JSON.toJavaObject(obj, OUserInfo.class); // 缓存微信企业号access_token TokenCreator tokenCreator = new WeixinTokenSuiteCreator(null, - suitePerCodeHolder); + suitePerCodeHolder, suiteTokenHolder); Token token = new Token(obj.getString("access_token")); token.setExpiresIn(obj.getIntValue("expires_in")); token.setTime(System.currentTimeMillis()); diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java index ddaa02f5..2c73f2e9 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinSuiteTokenCreator.java @@ -1,4 +1,4 @@ -package com.foxinmy.weixin4j.qy.suite; + package com.foxinmy.weixin4j.qy.suite; import com.alibaba.fastjson.JSONObject; import com.foxinmy.weixin4j.exception.WeixinException; diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java index 32ddb157..c41a7102 100644 --- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java +++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/suite/WeixinTokenSuiteCreator.java @@ -7,6 +7,7 @@ import com.foxinmy.weixin4j.http.weixin.WeixinResponse; import com.foxinmy.weixin4j.model.Token; import com.foxinmy.weixin4j.qy.type.URLConsts; import com.foxinmy.weixin4j.token.TokenCreator; +import com.foxinmy.weixin4j.token.TokenHolder; /** * 微信企业号token创建(永久授权码) @@ -24,6 +25,7 @@ public class WeixinTokenSuiteCreator implements TokenCreator { private final WeixinHttpClient httpClient; private final String authCorpid; private final SuitePerCodeHolder perCodeHolder; + private final TokenHolder suiteTokenHolder; /** * @@ -31,11 +33,14 @@ public class WeixinTokenSuiteCreator implements TokenCreator { * 授权方corpid * @param perCodeHolder * 永久授权码 + * @param suiteTokenHolder + * 套件token */ public WeixinTokenSuiteCreator(String authCorpid, - SuitePerCodeHolder perCodeHolder) { + SuitePerCodeHolder perCodeHolder, TokenHolder suiteTokenHolder) { this.authCorpid = authCorpid; this.perCodeHolder = perCodeHolder; + this.suiteTokenHolder = suiteTokenHolder; this.httpClient = new WeixinHttpClient(); } @@ -50,8 +55,9 @@ public class WeixinTokenSuiteCreator implements TokenCreator { obj.put("suite_id", perCodeHolder.getSuiteId()); obj.put("auth_corpid", authCorpid); obj.put("permanent_code", perCodeHolder.getPermanentCode()); - WeixinResponse response = httpClient.post(URLConsts.TOKEN_SUITE_URL, - obj.toJSONString()); + WeixinResponse response = httpClient.post( + String.format(URLConsts.TOKEN_SUITE_URL, + suiteTokenHolder.getAccessToken()), obj.toJSONString()); obj = response.getAsJson(); Token token = new Token(obj.getString("access_token")); token.setExpiresIn(obj.getIntValue("expires_in"));