TokenCreator新增uniqueid方法

This commit is contained in:
jinyu
2017-07-06 15:48:51 +08:00
parent 4ccc11d8cf
commit c8726ddc3f
22 changed files with 2090 additions and 2062 deletions
File diff suppressed because it is too large Load Diff
@@ -98,7 +98,7 @@ public class NotifyApi extends QyApi {
String.format(message_send_uri, token.getAccessToken()),
obj.toJSONString());
obj = response.getAsJson();
IdParameter idParameter = new IdParameter();
IdParameter idParameter = IdParameter.get();
if (obj.containsKey("invaliduser")) {
idParameter.setUserIds(Arrays.asList(obj.getString("invaliduser")
.split(IdParameter.SEPARATORS)));
@@ -200,7 +200,7 @@ public class TagApi extends QyApi {
WeixinResponse response = weixinExecutor.post(
String.format(uri, token.getAccessToken()), obj.toJSONString());
obj = response.getAsJson();
IdParameter idParameter = new IdParameter();
IdParameter idParameter = IdParameter.get();
if (obj.containsKey("invalidlist")) {
idParameter.setUserIds(Arrays.asList(obj.getString("invalidlist")
.split(IdParameter.SEPARATORS)));
@@ -8,7 +8,7 @@ import com.foxinmy.weixin4j.tuple.NotifyTuple;
/**
* 消息提醒对象
*
*
* @className NotifyMessage
* @author jinyu(foxinmy@gmail.com)
* @date 2014年11月22日
@@ -48,7 +48,7 @@ public class NotifyMessage implements Serializable {
private IdParameter target;
public NotifyMessage(int agentid, NotifyTuple tuple) {
this(agentid, tuple, new IdParameter(), false);
this(agentid, tuple, IdParameter.get(), false);
}
public NotifyMessage(int agentId, NotifyTuple tuple, IdParameter target, boolean isSafe) {
@@ -35,12 +35,16 @@ public class IdParameter implements Serializable {
@JSONField(name = "tag")
private List<Integer> tagIds;
public IdParameter() {
protected IdParameter() {
this.userIds = new ArrayList<String>();
this.partyIds = new ArrayList<Integer>();
this.tagIds = new ArrayList<Integer>();
}
public static IdParameter get(){
return new IdParameter();
}
/**
* 增加成员ID列表,最多支持1000个
*
@@ -22,35 +22,37 @@ import com.foxinmy.weixin4j.token.TokenManager;
*/
public class WeixinSuitePreCodeCreator extends TokenCreator {
private final TokenManager suiteTokenManager;
private final String suiteId;
private final TokenManager suiteTokenManager;
private final String suiteId;
/**
*
* @param suiteTokenManager
* 应用套件的token
* @param suiteId
* 应用套件ID
*/
public WeixinSuitePreCodeCreator(TokenManager suiteTokenManager,
String suiteId) {
this.suiteTokenManager = suiteTokenManager;
this.suiteId = suiteId;
}
/**
*
* @param suiteTokenManager
* 应用套件的token
* @param suiteId
* 应用套件ID
*/
public WeixinSuitePreCodeCreator(TokenManager suiteTokenManager, String suiteId) {
this.suiteTokenManager = suiteTokenManager;
this.suiteId = suiteId;
}
@Override
public String key0() {
return String.format("qy_suite_precode_%s", suiteId);
}
@Override
public String name() {
return "qy_suite_precode";
}
@Override
public Token create() throws WeixinException {
WeixinResponse response = weixinExecutor.post(
String.format(URLConsts.SUITE_PRE_CODE_URL,
suiteTokenManager.getAccessToken()),
String.format("{\"suite_id\":\"%s\"}", suiteId));
JSONObject result = response.getAsJson();
return new Token(result.getString("pre_auth_code"),
result.getLongValue("expires_in") * 1000l);
}
@Override
public String uniqueid() {
return suiteId;
}
@Override
public Token create() throws WeixinException {
WeixinResponse response = weixinExecutor.post(
String.format(URLConsts.SUITE_PRE_CODE_URL, suiteTokenManager.getAccessToken()),
String.format("{\"suite_id\":\"%s\"}", suiteId));
JSONObject result = response.getAsJson();
return new Token(result.getString("pre_auth_code"), result.getLongValue("expires_in") * 1000l);
}
}
@@ -15,38 +15,41 @@ import com.foxinmy.weixin4j.token.TokenCreator;
* @author jinyu(foxinmy@gmail.com)
* @date 2015年6月17日
* @since JDK 1.6
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E#.E8.8E.B7.E5.8F.96.E5.BA.94.E7.94.A8.E5.A5.97.E4.BB.B6.E4.BB.A4.E7.89.8C">获取应用套件凭证</a>
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E#.E8.8E.B7.E5.8F.96.E5.BA.94.E7.94.A8.E5.A5.97.E4.BB.B6.E4.BB.A4.E7.89.8C">获取应用套件凭证</a>
* @see com.foxinmy.weixin4j.model.Token
*/
public class WeixinSuiteTokenCreator extends TokenCreator {
private final TicketManager ticketManager;
private final TicketManager ticketManager;
/**
*
* @param ticketManager
* 套件ticket存取
*/
public WeixinSuiteTokenCreator(TicketManager ticketManager) {
this.ticketManager = ticketManager;
}
/**
*
* @param ticketManager
* 套件ticket存取
*/
public WeixinSuiteTokenCreator(TicketManager ticketManager) {
this.ticketManager = ticketManager;
}
@Override
public String key0() {
return String.format("qy_suite_token_%s", ticketManager.getThirdId());
}
@Override
public String name() {
return "qy_suite_token";
}
@Override
public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("suite_id", ticketManager.getThirdId());
obj.put("suite_secret", ticketManager.getThirdSecret());
obj.put("suite_ticket", ticketManager.getAccessTicket());
WeixinResponse response = weixinExecutor.post(
URLConsts.SUITE_TOKEN_URL, obj.toJSONString());
obj = response.getAsJson();
return new Token(obj.getString("suite_access_token"),
obj.getLongValue("expires_in") * 1000l);
}
@Override
public String uniqueid() {
return ticketManager.getThirdId();
}
@Override
public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("suite_id", ticketManager.getThirdId());
obj.put("suite_secret", ticketManager.getThirdSecret());
obj.put("suite_ticket", ticketManager.getAccessTicket());
WeixinResponse response = weixinExecutor.post(URLConsts.SUITE_TOKEN_URL, obj.toJSONString());
obj = response.getAsJson();
return new Token(obj.getString("suite_access_token"), obj.getLongValue("expires_in") * 1000l);
}
}
@@ -23,39 +23,40 @@ import com.foxinmy.weixin4j.token.TokenManager;
*/
public class WeixinTokenSuiteCreator extends TokenCreator {
private final PerTicketManager perTicketManager;
private final TokenManager suiteTokenManager;
private final PerTicketManager perTicketManager;
private final TokenManager suiteTokenManager;
/**
*
* @param perTicketManager
* 第三方套件永久授权码
* @param suiteTokenManager
* 第三方套件凭证token
*/
public WeixinTokenSuiteCreator(PerTicketManager perTicketManager,
TokenManager suiteTokenManager) {
this.perTicketManager = perTicketManager;
this.suiteTokenManager = suiteTokenManager;
}
/**
*
* @param perTicketManager
* 第三方套件永久授权码
* @param suiteTokenManager
* 第三方套件凭证token
*/
public WeixinTokenSuiteCreator(PerTicketManager perTicketManager, TokenManager suiteTokenManager) {
this.perTicketManager = perTicketManager;
this.suiteTokenManager = suiteTokenManager;
}
@Override
public String key0() {
return String.format("qy_token_suite_%s_%s",
perTicketManager.getThirdId(), perTicketManager.getAuthAppId());
}
@Override
public String name() {
return String.format("qy_token_suite_%s_%s", perTicketManager.getThirdId(), perTicketManager.getAuthAppId());
}
@Override
public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("suite_id", perTicketManager.getThirdId());
obj.put("auth_corpid", perTicketManager.getAuthAppId());
obj.put("permanent_code", perTicketManager.getAccessTicket());
WeixinResponse response = weixinExecutor.post(
String.format(URLConsts.TOKEN_SUITE_URL,
suiteTokenManager.getAccessToken()), obj.toJSONString());
obj = response.getAsJson();
return new Token(obj.getString("access_token"),
obj.getLongValue("expires_in") * 1000l);
}
@Override
public String uniqueid() {
throw new UnsupportedOperationException();
}
@Override
public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("suite_id", perTicketManager.getThirdId());
obj.put("auth_corpid", perTicketManager.getAuthAppId());
obj.put("permanent_code", perTicketManager.getAccessTicket());
WeixinResponse response = weixinExecutor
.post(String.format(URLConsts.TOKEN_SUITE_URL, suiteTokenManager.getAccessToken()), obj.toJSONString());
obj = response.getAsJson();
return new Token(obj.getString("access_token"), obj.getLongValue("expires_in") * 1000l);
}
}
@@ -21,35 +21,38 @@ import com.foxinmy.weixin4j.token.TokenCreator;
*/
public class WeixinProviderTokenCreator extends TokenCreator {
private final String corpid;
private final String providersecret;
private final String corpid;
private final String providersecret;
/**
*
* @param corpid
* 企业号ID
* @param providersecret
* 企业号提供商的secret
*/
public WeixinProviderTokenCreator(String corpid, String providersecret) {
this.corpid = corpid;
this.providersecret = providersecret;
}
/**
*
* @param corpid
* 企业号ID
* @param providersecret
* 企业号提供商的secret
*/
public WeixinProviderTokenCreator(String corpid, String providersecret) {
this.corpid = corpid;
this.providersecret = providersecret;
}
@Override
public String key0() {
return String.format("qy_provider_token_%s", corpid);
}
@Override
public String name() {
return "qy_provider_token";
}
@Override
public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("corpid", corpid);
obj.put("provider_secret", providersecret);
WeixinResponse response = weixinExecutor.post(
URLConsts.PROVIDER_TOKEN_URL, obj.toJSONString());
obj = response.getAsJson();
return new Token(obj.getString("provider_access_token"),
obj.getLongValue("expires_in") * 1000l);
}
@Override
public String uniqueid() {
return corpid;
}
@Override
public Token create() throws WeixinException {
JSONObject obj = new JSONObject();
obj.put("corpid", corpid);
obj.put("provider_secret", providersecret);
WeixinResponse response = weixinExecutor.post(URLConsts.PROVIDER_TOKEN_URL, obj.toJSONString());
obj = response.getAsJson();
return new Token(obj.getString("provider_access_token"), obj.getLongValue("expires_in") * 1000l);
}
}
@@ -22,45 +22,42 @@ import com.foxinmy.weixin4j.type.TicketType;
*/
public class WeixinTicketCreator extends TokenCreator {
private final String corpid;
private final TicketType ticketType;
private final TokenManager weixinTokenManager;
private final TicketType ticketType;
private final TokenManager weixinTokenManager;
/**
* @param corpid
* 企业号ID
* @param ticketType
* 票据类型
* @param weixinTokenManager
* <font color="red">企业号的access_token</font>
*/
public WeixinTicketCreator(String corpid, TicketType ticketType,
TokenManager weixinTokenManager) {
this.corpid = corpid;
this.ticketType = ticketType;
this.weixinTokenManager = weixinTokenManager;
}
/**
* @param ticketType
* 票据类型
* @param weixinTokenManager
* <font color="red">企业号的access_token</font>
*/
public WeixinTicketCreator(TicketType ticketType, TokenManager weixinTokenManager) {
this.ticketType = ticketType;
this.weixinTokenManager = weixinTokenManager;
}
@Override
public String key0() {
return String.format("qy_ticket_%s_%s", ticketType.name(), corpid);
}
@Override
public String name() {
return String.format("qy_ticket_%s", ticketType.name());
}
@Override
public Token create() throws WeixinException {
WeixinResponse response = null;
if (ticketType == TicketType.jsapi) {
response = weixinExecutor.get(String.format(
URLConsts.JS_TICKET_URL, weixinTokenManager.getCache()
.getAccessToken()));
} else {
response = weixinExecutor.get(String.format(
URLConsts.SUITE_TICKET_URL, weixinTokenManager.getCache()
.getAccessToken(), ticketType.name()));
}
JSONObject result = response.getAsJson();
return new Token(result.getString("ticket"),
result.getLong("expires_in") * 1000l).pushExtra("group_id",
result.getString("group_id"));
}
@Override
public String uniqueid() {
return weixinTokenManager.getWeixinId();
}
@Override
public Token create() throws WeixinException {
WeixinResponse response = null;
if (ticketType == TicketType.jsapi) {
response = weixinExecutor
.get(String.format(URLConsts.JS_TICKET_URL, weixinTokenManager.getCache().getAccessToken()));
} else {
response = weixinExecutor.get(String.format(URLConsts.SUITE_TICKET_URL,
weixinTokenManager.getCache().getAccessToken(), ticketType.name()));
}
JSONObject result = response.getAsJson();
return new Token(result.getString("ticket"), result.getLong("expires_in") * 1000l).pushExtra("group_id",
result.getString("group_id"));
}
}
@@ -21,33 +21,36 @@ import com.foxinmy.weixin4j.token.TokenCreator;
*/
public class WeixinTokenCreator extends TokenCreator {
private final String corpid;
private final String corpsecret;
private final String corpid;
private final String corpsecret;
/**
*
* @param corpid
* 企业号ID
* @param corpsecret
* 企业号secret
*/
public WeixinTokenCreator(String corpid, String corpsecret) {
this.corpid = corpid;
this.corpsecret = corpsecret;
}
/**
*
* @param corpid
* 企业号ID
* @param corpsecret
* 企业号secret
*/
public WeixinTokenCreator(String corpid, String corpsecret) {
this.corpid = corpid;
this.corpsecret = corpsecret;
}
@Override
public String key0() {
return String.format("qy_token_%s", corpid);
}
@Override
public String name() {
return "qy_token";
}
@Override
public Token create() throws WeixinException {
String tokenUrl = String.format(URLConsts.ASSESS_TOKEN_URL, corpid,
corpsecret);
WeixinResponse response = weixinExecutor.get(tokenUrl);
JSONObject result = response.getAsJson();
return new Token(result.getString("access_token"),
result.getLongValue("expires_in") * 1000l);
}
@Override
public String uniqueid() {
return corpid;
}
@Override
public Token create() throws WeixinException {
String tokenUrl = String.format(URLConsts.ASSESS_TOKEN_URL, corpid, corpsecret);
WeixinResponse response = weixinExecutor.get(tokenUrl);
JSONObject result = response.getAsJson();
return new Token(result.getString("access_token"), result.getLongValue("expires_in") * 1000l);
}
}