抓住一只bug:企业号第三方应用创建企业号access_token时没有传入其应用的token.
This commit is contained in:
parent
e953a748e0
commit
8a30e4c72e
@ -65,8 +65,17 @@ public class PartyApi extends QyApi {
|
|||||||
* @throws WeixinException
|
* @throws WeixinException
|
||||||
*/
|
*/
|
||||||
public JsonResult updateParty(Party party) 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");
|
String department_update_uri = getRequestUri("department_update_uri");
|
||||||
JSONObject obj = (JSONObject) JSON.toJSON(party);
|
JSONObject obj = (JSONObject) JSON.toJSON(party);
|
||||||
|
if (party.getParentid() < 1) {
|
||||||
|
obj.remove("parentid");
|
||||||
|
}
|
||||||
|
if (party.getOrder() < 0) {
|
||||||
|
obj.remove("order");
|
||||||
|
}
|
||||||
Token token = tokenHolder.getToken();
|
Token token = tokenHolder.getToken();
|
||||||
WeixinResponse response = weixinClient.post(
|
WeixinResponse response = weixinClient.post(
|
||||||
String.format(department_update_uri, token.getAccessToken()),
|
String.format(department_update_uri, token.getAccessToken()),
|
||||||
|
|||||||
@ -113,7 +113,8 @@ public class SuiteApi extends QyApi {
|
|||||||
*/
|
*/
|
||||||
public TokenHolder createTokenHolder(String authCorpid) {
|
public TokenHolder createTokenHolder(String authCorpid) {
|
||||||
return new TokenHolder(new WeixinTokenSuiteCreator(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);
|
OUserInfo oInfo = JSON.toJavaObject(obj, OUserInfo.class);
|
||||||
// 缓存微信企业号access_token
|
// 缓存微信企业号access_token
|
||||||
TokenCreator tokenCreator = new WeixinTokenSuiteCreator(null,
|
TokenCreator tokenCreator = new WeixinTokenSuiteCreator(null,
|
||||||
suitePerCodeHolder);
|
suitePerCodeHolder, suiteTokenHolder);
|
||||||
Token token = new Token(obj.getString("access_token"));
|
Token token = new Token(obj.getString("access_token"));
|
||||||
token.setExpiresIn(obj.getIntValue("expires_in"));
|
token.setExpiresIn(obj.getIntValue("expires_in"));
|
||||||
token.setTime(System.currentTimeMillis());
|
token.setTime(System.currentTimeMillis());
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package com.foxinmy.weixin4j.qy.suite;
|
package com.foxinmy.weixin4j.qy.suite;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.foxinmy.weixin4j.exception.WeixinException;
|
import com.foxinmy.weixin4j.exception.WeixinException;
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
|
|||||||
import com.foxinmy.weixin4j.model.Token;
|
import com.foxinmy.weixin4j.model.Token;
|
||||||
import com.foxinmy.weixin4j.qy.type.URLConsts;
|
import com.foxinmy.weixin4j.qy.type.URLConsts;
|
||||||
import com.foxinmy.weixin4j.token.TokenCreator;
|
import com.foxinmy.weixin4j.token.TokenCreator;
|
||||||
|
import com.foxinmy.weixin4j.token.TokenHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信企业号token创建(永久授权码)
|
* 微信企业号token创建(永久授权码)
|
||||||
@ -24,6 +25,7 @@ public class WeixinTokenSuiteCreator implements TokenCreator {
|
|||||||
private final WeixinHttpClient httpClient;
|
private final WeixinHttpClient httpClient;
|
||||||
private final String authCorpid;
|
private final String authCorpid;
|
||||||
private final SuitePerCodeHolder perCodeHolder;
|
private final SuitePerCodeHolder perCodeHolder;
|
||||||
|
private final TokenHolder suiteTokenHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -31,11 +33,14 @@ public class WeixinTokenSuiteCreator implements TokenCreator {
|
|||||||
* 授权方corpid
|
* 授权方corpid
|
||||||
* @param perCodeHolder
|
* @param perCodeHolder
|
||||||
* 永久授权码
|
* 永久授权码
|
||||||
|
* @param suiteTokenHolder
|
||||||
|
* 套件token
|
||||||
*/
|
*/
|
||||||
public WeixinTokenSuiteCreator(String authCorpid,
|
public WeixinTokenSuiteCreator(String authCorpid,
|
||||||
SuitePerCodeHolder perCodeHolder) {
|
SuitePerCodeHolder perCodeHolder, TokenHolder suiteTokenHolder) {
|
||||||
this.authCorpid = authCorpid;
|
this.authCorpid = authCorpid;
|
||||||
this.perCodeHolder = perCodeHolder;
|
this.perCodeHolder = perCodeHolder;
|
||||||
|
this.suiteTokenHolder = suiteTokenHolder;
|
||||||
this.httpClient = new WeixinHttpClient();
|
this.httpClient = new WeixinHttpClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,8 +55,9 @@ public class WeixinTokenSuiteCreator implements TokenCreator {
|
|||||||
obj.put("suite_id", perCodeHolder.getSuiteId());
|
obj.put("suite_id", perCodeHolder.getSuiteId());
|
||||||
obj.put("auth_corpid", authCorpid);
|
obj.put("auth_corpid", authCorpid);
|
||||||
obj.put("permanent_code", perCodeHolder.getPermanentCode());
|
obj.put("permanent_code", perCodeHolder.getPermanentCode());
|
||||||
WeixinResponse response = httpClient.post(URLConsts.TOKEN_SUITE_URL,
|
WeixinResponse response = httpClient.post(
|
||||||
obj.toJSONString());
|
String.format(URLConsts.TOKEN_SUITE_URL,
|
||||||
|
suiteTokenHolder.getAccessToken()), obj.toJSONString());
|
||||||
obj = response.getAsJson();
|
obj = response.getAsJson();
|
||||||
Token token = new Token(obj.getString("access_token"));
|
Token token = new Token(obj.getString("access_token"));
|
||||||
token.setExpiresIn(obj.getIntValue("expires_in"));
|
token.setExpiresIn(obj.getIntValue("expires_in"));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user