主要对jssdk的支持以及别的优化(:

This commit is contained in:
jinyu
2015-12-25 12:03:02 +08:00
parent b7376d7d6b
commit 73c6aaf05a
12 changed files with 566 additions and 10 deletions
@@ -39,6 +39,7 @@ import com.foxinmy.weixin4j.qy.model.IdParameter;
import com.foxinmy.weixin4j.qy.model.Party;
import com.foxinmy.weixin4j.qy.model.Tag;
import com.foxinmy.weixin4j.qy.model.User;
import com.foxinmy.weixin4j.qy.suite.WeixinTokenSuiteCreator;
import com.foxinmy.weixin4j.qy.token.WeixinTokenCreator;
import com.foxinmy.weixin4j.qy.type.ChatType;
import com.foxinmy.weixin4j.qy.type.InviteType;
@@ -71,6 +72,7 @@ public class WeixinProxy {
private final ChatApi chatApi;
private final TokenHolder tokenHolder;
private String corpId;
/**
* 默认使用文件方式保存token、使用weixin4j.properties配置的账号信息
@@ -113,6 +115,21 @@ public class WeixinProxy {
TokenStorager tokenStorager) {
this(new TokenHolder(new WeixinTokenCreator(corpid, corpsecret),
tokenStorager));
this.corpId = corpid;
}
/**
* 第三方套件(永久授权码机制)
*
* @param tokenCreator
* 微信企业号token创建(永久授权码)
* @param tokenStorager
* token存储
*/
public WeixinProxy(WeixinTokenSuiteCreator tokenCreator,
TokenStorager tokenStorager) {
this(new TokenHolder(tokenCreator, tokenStorager));
this.corpId = tokenCreator.getAuthCorpId();
}
/**
@@ -121,7 +138,7 @@ public class WeixinProxy {
* @see com.foxinmy.weixin4j.qy.token.WeixinTokenCreator.WeixinTokenCreator
* @param tokenHolder
*/
public WeixinProxy(TokenHolder tokenHolder) {
private WeixinProxy(TokenHolder tokenHolder) {
this.tokenHolder = tokenHolder;
this.partyApi = new PartyApi(tokenHolder);
this.userApi = new UserApi(tokenHolder);
@@ -135,10 +152,27 @@ public class WeixinProxy {
this.chatApi = new ChatApi(tokenHolder);
}
/**
* token获取
*
* @return
*/
public TokenHolder getTokenHolder() {
return this.tokenHolder;
}
/**
* 获取JSSDK的tokenHolder
*
* @return
*/
public TokenHolder getJSTicketHolder() {
return new TokenHolder(
new com.foxinmy.weixin4j.qy.token.WeixinJSTicketCreator(
this.corpId, this.tokenHolder),
this.tokenHolder.getTokenStorager());
}
/**
* 发送客服消息(需要管理员对应用有使用权限,对收件人touser、toparty、totag有查看权限,否则本次调用失败)
* <p>
@@ -6,6 +6,7 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.JsonResult;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.WeixinProxy;
import com.foxinmy.weixin4j.qy.model.AgentInfo;
import com.foxinmy.weixin4j.qy.model.AgentSetter;
import com.foxinmy.weixin4j.qy.model.OUserInfo;
@@ -65,7 +66,7 @@ public class SuiteApi extends QyApi {
*
* @return
*/
public TokenHolder getTokenHolder() {
public TokenHolder getSuiteTokenHolder() {
return this.suiteTokenHolder;
}
@@ -107,12 +108,25 @@ public class SuiteApi extends QyApi {
* 授权方corpid
* @return 企业号token
*/
public TokenHolder createTokenHolder(String authCorpId) {
public TokenHolder getTokenSuiteHolder(String authCorpId) {
return new TokenHolder(new WeixinTokenSuiteCreator(
getPerCodeHolder(authCorpId), suiteTokenHolder),
suiteTicketHolder.getTokenStorager());
}
/**
* 创建WeixinProxy对象
*
* @param authCorpId
* 已授权的corpid
* @return
*/
public WeixinProxy getWeixinProxy(String authCorpId) {
return new WeixinProxy(new WeixinTokenSuiteCreator(
getPerCodeHolder(authCorpId), suiteTokenHolder),
suiteTicketHolder.getTokenStorager());
}
/**
* 设置套件授权配置:如果需要对某次授权进行配置,则调用本接口,目前仅可以设置哪些应用可以授权,不调用则默认允许所有应用进行授权。
*
@@ -63,4 +63,13 @@ public class WeixinTokenSuiteCreator implements TokenCreator {
token.setTime(System.currentTimeMillis());
return token;
}
/**
* 获取授权放的corpid
*
* @return
*/
public String getAuthCorpId() {
return this.perCodeHolder.getAuthCorpId();
}
}