diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/WeixinPayProxy.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/WeixinPayProxy.java
index 3ee0aa1f..e15e2765 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/WeixinPayProxy.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/WeixinPayProxy.java
@@ -59,9 +59,11 @@ public class WeixinPayProxy {
* 现金API
*/
private final CashApi cashApi;
-
+ /**
+ * 配置相关
+ */
private final Weixin4jSettings settings;
-
+
/**
* 使用weixin4j.properties配置的支付账号信息
*/
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/WeixinProxy.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/WeixinProxy.java
index b18d756b..357dfcb6 100644
--- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/WeixinProxy.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/WeixinProxy.java
@@ -112,8 +112,13 @@ public class WeixinProxy {
* 数据统计API
*/
private final DataApi dataApi;
-
+ /**
+ * token实现
+ */
private final TokenHolder tokenHolder;
+ /**
+ * 配置相关
+ */
private Weixin4jSettings settings;
/**
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/TmplApi.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/TmplApi.java
index 39e8d98e..33920702 100644
--- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/TmplApi.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/TmplApi.java
@@ -1,179 +1,179 @@
-package com.foxinmy.weixin4j.mp.api;
-
-import java.util.List;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.NameFilter;
-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.mp.message.TemplateMessage;
-import com.foxinmy.weixin4j.mp.model.TemplateMessageInfo;
-import com.foxinmy.weixin4j.mp.type.IndustryType;
-import com.foxinmy.weixin4j.token.TokenHolder;
-import com.foxinmy.weixin4j.util.NameValue;
-
-/**
- * 模板消息相关API
- *
- * @className TemplApi
- * @author jy
- * @date 2014年9月30日
- * @since JDK 1.6
- * @see
- */
-public class TmplApi extends MpApi {
-
- private final TokenHolder tokenHolder;
-
- public TmplApi(TokenHolder tokenHolder) {
- this.tokenHolder = tokenHolder;
- }
-
- /**
- * 设置所属行业(每月可修改行业1次,账号仅可使用所属行业中相关的模板)
- *
- * @param industryTypes
- * 所处行业 目前不超过两个
- * @return 操作结果
- * @throws WeixinException
- * @see com.foxinmy.weixin4j.mp.type.IndustryType
- * @see 设置所处行业
- */
- public JsonResult setTmplIndustry(IndustryType... industryTypes)
- throws WeixinException {
- JSONObject obj = new JSONObject();
- for (int i = 0; i < industryTypes.length; i++) {
- obj.put(String.format("industry_id%d", i + 1),
- Integer.toString(industryTypes[i].getTypeId()));
- }
- Token token = tokenHolder.getToken();
- String template_set_industry_uri = getRequestUri("template_set_industry_uri");
- WeixinResponse response = weixinExecutor.post(String.format(
- template_set_industry_uri, token.getAccessToken()), obj
- .toJSONString());
-
- return response.getAsJsonResult();
- }
-
- /**
- * 获取设置的行业信息
- *
- * @return 行业信息数组 第一个元素为帐号设置的主营行业 第二个元素为帐号设置的副营行业
- * @throws WeixinException
- * @see com.foxinmy.weixin4j.mp.type.IndustryType
- * @see 获取设置的行业信息
- */
- public IndustryType[] getTmplIndustry() throws WeixinException {
- String template_get_industry_uri = getRequestUri("template_get_industry_uri");
- WeixinResponse response = weixinExecutor.get(String.format(
- template_get_industry_uri, tokenHolder.getAccessToken()));
- JSONObject primary = response.getAsJson().getJSONObject(
- "primary_industry");
- JSONObject secondary = response.getAsJson().getJSONObject(
- "secondary_industry");
- return new IndustryType[] {
- primary != null ? IndustryType.getIndustry(
- primary.getString("first_class"),
- primary.getString("second_class")) : null,
- secondary != null ? IndustryType.getIndustry(
- secondary.getString("first_class"),
- secondary.getString("second_class")) : null };
- }
-
- /**
- * 获取模板ID
- *
- * @param shortId
- * 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式
- * @return 模板ID
- * @throws WeixinException
- * @see 获得模板ID
- */
- public String getTemplateId(String shortId) throws WeixinException {
- Token token = tokenHolder.getToken();
- String template_getid_uri = getRequestUri("template_getid_uri");
- WeixinResponse response = weixinExecutor.post(
- String.format(template_getid_uri, token.getAccessToken()),
- String.format("{\"template_id_short\":\"%s\"}", shortId));
-
- return response.getAsJson().getString("template_id");
- }
-
- /**
- * 获取模板列表
- *
- * @return 模板列表
- * @see com.foxinmy.weixin4j.mp.model.TemplateMessageInfo
- * @see 获取模板列表
- * @throws WeixinException
- */
- public List getAllTemplates() throws WeixinException {
- Token token = tokenHolder.getToken();
- String template_getall_uri = getRequestUri("template_getall_uri");
- WeixinResponse response = weixinExecutor.get(String.format(
- template_getall_uri, token.getAccessToken()));
- return JSON.parseArray(response.getAsJson().getString("template_list"),
- TemplateMessageInfo.class);
- }
-
- /**
- * 删除模板
- *
- * @param templateId
- * 公众帐号下模板消息ID
- * @return 处理结果
- * @see 删除模板
- * @throws WeixinException
- */
- public JsonResult deleteTemplate(String templateId) throws WeixinException {
- Token token = tokenHolder.getToken();
- String template_del_uri = getRequestUri("template_del_uri");
- WeixinResponse response = weixinExecutor.post(
- String.format(template_del_uri, token.getAccessToken()),
- String.format("{\"template_id\"=\"%s\"}", templateId));
- return response.getAsJsonResult();
- }
-
- /**
- * 发送模板消息
- *
- * @param tplMessage
- * 消息对象
- * @return 发送结果
- * @throws WeixinException
- * @see 模板消息
- * @see 运营规范
- * @see com.foxinmy.weixin4j.mp.message.TemplateMessage
- * @seee com.foxinmy.weixin4j.msg.event.TemplatesendjobfinishMessage
- */
- public JsonResult sendTmplMessage(TemplateMessage tplMessage)
- throws WeixinException {
- Token token = tokenHolder.getToken();
- String template_send_uri = getRequestUri("template_send_uri");
- WeixinResponse response = weixinExecutor.post(
- String.format(template_send_uri, token.getAccessToken()),
- JSON.toJSONString(tplMessage, new NameFilter() {
- @Override
- public String process(Object object, String name,
- Object value) {
- if (object instanceof NameValue && name.equals("name")) {
- return "color";
- }
- return name;
- }
- }));
-
- return response.getAsJsonResult();
- }
-}
+package com.foxinmy.weixin4j.mp.api;
+
+import java.util.List;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.NameFilter;
+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.mp.message.TemplateMessage;
+import com.foxinmy.weixin4j.mp.model.TemplateMessageInfo;
+import com.foxinmy.weixin4j.mp.type.IndustryType;
+import com.foxinmy.weixin4j.token.TokenHolder;
+import com.foxinmy.weixin4j.util.NameValue;
+
+/**
+ * 模板消息相关API
+ *
+ * @className TemplApi
+ * @author jy
+ * @date 2014年9月30日
+ * @since JDK 1.6
+ * @see
+ */
+public class TmplApi extends MpApi {
+
+ private final TokenHolder tokenHolder;
+
+ public TmplApi(TokenHolder tokenHolder) {
+ this.tokenHolder = tokenHolder;
+ }
+
+ /**
+ * 设置所属行业(每月可修改行业1次,账号仅可使用所属行业中相关的模板)
+ *
+ * @param industryTypes
+ * 所处行业 目前不超过两个
+ * @return 操作结果
+ * @throws WeixinException
+ * @see com.foxinmy.weixin4j.mp.type.IndustryType
+ * @see 设置所处行业
+ */
+ public JsonResult setTmplIndustry(IndustryType... industryTypes)
+ throws WeixinException {
+ JSONObject obj = new JSONObject();
+ for (int i = 0; i < industryTypes.length; i++) {
+ obj.put(String.format("industry_id%d", i + 1),
+ Integer.toString(industryTypes[i].getTypeId()));
+ }
+ Token token = tokenHolder.getToken();
+ String template_set_industry_uri = getRequestUri("template_set_industry_uri");
+ WeixinResponse response = weixinExecutor.post(String.format(
+ template_set_industry_uri, token.getAccessToken()), obj
+ .toJSONString());
+
+ return response.getAsJsonResult();
+ }
+
+ /**
+ * 获取设置的行业信息
+ *
+ * @return 行业信息数组 第一个元素为帐号设置的主营行业 第二个元素为帐号设置的副营行业
+ * @throws WeixinException
+ * @see com.foxinmy.weixin4j.mp.type.IndustryType
+ * @see 获取设置的行业信息
+ */
+ public IndustryType[] getTmplIndustry() throws WeixinException {
+ String template_get_industry_uri = getRequestUri("template_get_industry_uri");
+ WeixinResponse response = weixinExecutor.get(String.format(
+ template_get_industry_uri, tokenHolder.getAccessToken()));
+ JSONObject primary = response.getAsJson().getJSONObject(
+ "primary_industry");
+ JSONObject secondary = response.getAsJson().getJSONObject(
+ "secondary_industry");
+ return new IndustryType[] {
+ primary != null ? IndustryType.getIndustry(
+ primary.getString("first_class"),
+ primary.getString("second_class")) : null,
+ secondary != null ? IndustryType.getIndustry(
+ secondary.getString("first_class"),
+ secondary.getString("second_class")) : null };
+ }
+
+ /**
+ * 获取模板ID
+ *
+ * @param shortId
+ * 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式
+ * @return 模板ID
+ * @throws WeixinException
+ * @see 获得模板ID
+ */
+ public String getTemplateId(String shortId) throws WeixinException {
+ Token token = tokenHolder.getToken();
+ String template_getid_uri = getRequestUri("template_getid_uri");
+ WeixinResponse response = weixinExecutor.post(
+ String.format(template_getid_uri, token.getAccessToken()),
+ String.format("{\"template_id_short\":\"%s\"}", shortId));
+
+ return response.getAsJson().getString("template_id");
+ }
+
+ /**
+ * 获取模板列表
+ *
+ * @return 模板列表
+ * @see com.foxinmy.weixin4j.mp.model.TemplateMessageInfo
+ * @see 获取模板列表
+ * @throws WeixinException
+ */
+ public List getAllTemplates() throws WeixinException {
+ Token token = tokenHolder.getToken();
+ String template_getall_uri = getRequestUri("template_getall_uri");
+ WeixinResponse response = weixinExecutor.get(String.format(
+ template_getall_uri, token.getAccessToken()));
+ return JSON.parseArray(response.getAsJson().getString("template_list"),
+ TemplateMessageInfo.class);
+ }
+
+ /**
+ * 删除模板
+ *
+ * @param templateId
+ * 公众帐号下模板消息ID
+ * @return 处理结果
+ * @see 删除模板
+ * @throws WeixinException
+ */
+ public JsonResult deleteTemplate(String templateId) throws WeixinException {
+ Token token = tokenHolder.getToken();
+ String template_del_uri = getRequestUri("template_del_uri");
+ WeixinResponse response = weixinExecutor.post(
+ String.format(template_del_uri, token.getAccessToken()),
+ String.format("{\"template_id\"=\"%s\"}", templateId));
+ return response.getAsJsonResult();
+ }
+
+ /**
+ * 发送模板消息
+ *
+ * @param tplMessage
+ * 消息对象
+ * @return 发送结果
+ * @throws WeixinException
+ * @see 模板消息
+ * @see 运营规范
+ * @see com.foxinmy.weixin4j.mp.message.TemplateMessage
+ * @see com.foxinmy.weixin4j.msg.event.TemplatesendjobfinishMessage
+ */
+ public JsonResult sendTmplMessage(TemplateMessage tplMessage)
+ throws WeixinException {
+ Token token = tokenHolder.getToken();
+ String template_send_uri = getRequestUri("template_send_uri");
+ WeixinResponse response = weixinExecutor.post(
+ String.format(template_send_uri, token.getAccessToken()),
+ JSON.toJSONString(tplMessage, new NameFilter() {
+ @Override
+ public String process(Object object, String name,
+ Object value) {
+ if (object instanceof NameValue && name.equals("name")) {
+ return "color";
+ }
+ return name;
+ }
+ }));
+
+ return response.getAsJsonResult();
+ }
+}
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 2a40bd5c..eb1d6ac1 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
@@ -103,9 +103,13 @@ public class WeixinProxy {
* 聊天服务API
*/
private final ChatApi chatApi;
-
+ /**
+ * token实现
+ */
private final TokenHolder tokenHolder;
-
+ /**
+ * 配置相关
+ */
private Weixin4jSettings settings;
/**
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinSuiteProxy.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinSuiteProxy.java
index f171522b..017e672e 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinSuiteProxy.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinSuiteProxy.java
@@ -1,162 +1,164 @@
-package com.foxinmy.weixin4j.qy;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.foxinmy.weixin4j.exception.WeixinException;
-import com.foxinmy.weixin4j.model.WeixinAccount;
-import com.foxinmy.weixin4j.qy.api.ProviderApi;
-import com.foxinmy.weixin4j.qy.api.SuiteApi;
-import com.foxinmy.weixin4j.qy.model.OUserInfo;
-import com.foxinmy.weixin4j.qy.model.WeixinQyAccount;
-import com.foxinmy.weixin4j.qy.suite.SuiteTicketHolder;
-import com.foxinmy.weixin4j.qy.suite.Weixin4jSuiteSettings;
-import com.foxinmy.weixin4j.qy.token.WeixinProviderTokenCreator;
-import com.foxinmy.weixin4j.qy.type.LoginTargetType;
-import com.foxinmy.weixin4j.token.TokenHolder;
-import com.foxinmy.weixin4j.util.StringUtil;
-
-/**
- * 微信第三方应用接口实现
- *
- * @className WeixinSuiteProxy
- * @author jy
- * @date 2015年6月22日
- * @since JDK 1.6
- * @see com.foxinmy.weixin4j.qy.api.SuiteApi
- * @see 企业号第三方应用
- */
-public class WeixinSuiteProxy {
-
- /**
- * 每个套件授权不一样 suiteId - suiteApi
- */
- private Map suiteMap;
- /**
- * 供应商API:如登陆URL
- */
- private ProviderApi providerApi;
-
- private final Weixin4jSuiteSettings suiteSettings;
-
- public WeixinSuiteProxy() {
- this(new Weixin4jSuiteSettings());
- }
-
- /**
- *
- * @param suiteSettings
- * 套件信息配置
- */
- public WeixinSuiteProxy(Weixin4jSuiteSettings suiteSettings) {
- this.suiteSettings = suiteSettings;
- if (suiteSettings.getWeixinAccount().getSuiteAccounts() != null) {
- this.suiteMap = new HashMap();
- for (WeixinAccount suite : suiteSettings.getWeixinAccount()
- .getSuiteAccounts()) {
- this.suiteMap.put(suite.getId(), new SuiteApi(
- new SuiteTicketHolder(suite.getId(), suite.getSecret(),
- suiteSettings.getTokenStorager0())));
- this.suiteMap.put(
- null,
- suiteMap.get(suiteSettings.getWeixinAccount()
- .getSuiteAccounts().get(0).getId()));
- }
- }
- if (StringUtil.isNotBlank(suiteSettings.getWeixinAccount().getId())
- && StringUtil.isNotBlank(suiteSettings.getWeixinAccount()
- .getProviderSecret())) {
- this.providerApi = new ProviderApi(new TokenHolder(
- new WeixinProviderTokenCreator(suiteSettings
- .getWeixinAccount().getId(), suiteSettings
- .getWeixinAccount().getProviderSecret()),
- suiteSettings.getTokenStorager0()),
- suiteSettings.getTokenStorager0());
- }
- }
-
- /**
- * 企业号信息
- *
- * @return
- */
- public WeixinQyAccount getWeixinAccount() {
- return this.suiteSettings.getWeixinAccount();
- }
-
- /**
- * 只关注第一个套件获取API(如果只有一个套件
- *
- * @see com.foxinmy.weixin4j.qy.api.SuiteApi
- * @return API实例
- */
- public SuiteApi api() {
- return this.suiteMap.get(null);
- }
-
- /**
- * 多个套件获取API
- *
- * @see com.foxinmy.weixin4j.qy.api.SuiteApi
- * @param suiteId
- * 套件ID
- * @return API实例
- */
- public SuiteApi api(String suiteId) {
- return this.suiteMap.get(suiteId);
- }
-
- /**
- * 第三方套件获取企业号管理员登录信息
- *
- * @param authCode
- * oauth2.0授权企业号管理员登录产生的code
- * @return 登陆信息
- * @see com.foxinmy.weixin4j.qy.api.ProviderApi
- * @see 授权获取企业号管理员登录信息
- * @see com.foxinmy.weixin4j.qy.model.OUserInfo
- * @throws WeixinException
- */
- public OUserInfo getOUserInfoByCode(String authCode) throws WeixinException {
- return providerApi.getOUserInfoByCode(authCode);
- }
-
- /**
- * 获取登录企业号官网的url
- *
- * @param corpId
- * oauth授权的corpid
- * @param targetType
- * 登录跳转到企业号后台的目标页面
- * @param agentId
- * 授权方应用id 小余1时则不传递
- * @return 登陆URL
- * @see com.foxinmy.weixin4j.qy.api.ProviderApi
- * @see 获取登录企业号官网的url
- * @throws WeixinException
- */
- public String getLoginUrl(String corpId, LoginTargetType targetType,
- int agentId) throws WeixinException {
- return providerApi.getLoginUrl(corpId, targetType, agentId);
- }
-
- /**
- * 创建WeixinProxy对象
- *
- * @param suiteId
- * 套件ID
- * @param authCorpId
- * 已授权的corpid
- * @see com.foxinmy.weixin4j.qy.WeixinProxy
- * @return
- */
- public WeixinProxy getWeixinProxy(String suiteId, String authCorpId) {
- return new WeixinProxy(api(suiteId).getPerCodeHolder(authCorpId), api(
- suiteId).getSuiteTokenHolder());
- }
-
- public final static String VERSION = "1.6.7";
-}
+package com.foxinmy.weixin4j.qy;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.foxinmy.weixin4j.exception.WeixinException;
+import com.foxinmy.weixin4j.model.WeixinAccount;
+import com.foxinmy.weixin4j.qy.api.ProviderApi;
+import com.foxinmy.weixin4j.qy.api.SuiteApi;
+import com.foxinmy.weixin4j.qy.model.OUserInfo;
+import com.foxinmy.weixin4j.qy.model.WeixinQyAccount;
+import com.foxinmy.weixin4j.qy.suite.SuiteTicketHolder;
+import com.foxinmy.weixin4j.qy.suite.Weixin4jSuiteSettings;
+import com.foxinmy.weixin4j.qy.token.WeixinProviderTokenCreator;
+import com.foxinmy.weixin4j.qy.type.LoginTargetType;
+import com.foxinmy.weixin4j.token.TokenHolder;
+import com.foxinmy.weixin4j.util.StringUtil;
+
+/**
+ * 微信第三方应用接口实现
+ *
+ * @className WeixinSuiteProxy
+ * @author jy
+ * @date 2015年6月22日
+ * @since JDK 1.6
+ * @see com.foxinmy.weixin4j.qy.api.SuiteApi
+ * @see 企业号第三方应用
+ */
+public class WeixinSuiteProxy {
+
+ /**
+ * 每个套件授权不一样 suiteId - suiteApi
+ */
+ private Map suiteMap;
+ /**
+ * 供应商API:如登陆URL
+ */
+ private ProviderApi providerApi;
+ /**
+ * 配置相关
+ */
+ private final Weixin4jSuiteSettings suiteSettings;
+
+ public WeixinSuiteProxy() {
+ this(new Weixin4jSuiteSettings());
+ }
+
+ /**
+ *
+ * @param suiteSettings
+ * 套件信息配置
+ */
+ public WeixinSuiteProxy(Weixin4jSuiteSettings suiteSettings) {
+ this.suiteSettings = suiteSettings;
+ if (suiteSettings.getWeixinAccount().getSuiteAccounts() != null) {
+ this.suiteMap = new HashMap();
+ for (WeixinAccount suite : suiteSettings.getWeixinAccount()
+ .getSuiteAccounts()) {
+ this.suiteMap.put(suite.getId(), new SuiteApi(
+ new SuiteTicketHolder(suite.getId(), suite.getSecret(),
+ suiteSettings.getTokenStorager0())));
+ this.suiteMap.put(
+ null,
+ suiteMap.get(suiteSettings.getWeixinAccount()
+ .getSuiteAccounts().get(0).getId()));
+ }
+ }
+ if (StringUtil.isNotBlank(suiteSettings.getWeixinAccount().getId())
+ && StringUtil.isNotBlank(suiteSettings.getWeixinAccount()
+ .getProviderSecret())) {
+ this.providerApi = new ProviderApi(new TokenHolder(
+ new WeixinProviderTokenCreator(suiteSettings
+ .getWeixinAccount().getId(), suiteSettings
+ .getWeixinAccount().getProviderSecret()),
+ suiteSettings.getTokenStorager0()),
+ suiteSettings.getTokenStorager0());
+ }
+ }
+
+ /**
+ * 企业号信息
+ *
+ * @return
+ */
+ public WeixinQyAccount getWeixinAccount() {
+ return this.suiteSettings.getWeixinAccount();
+ }
+
+ /**
+ * 只关注第一个套件获取API(如果只有一个套件
+ *
+ * @see com.foxinmy.weixin4j.qy.api.SuiteApi
+ * @return API实例
+ */
+ public SuiteApi api() {
+ return this.suiteMap.get(null);
+ }
+
+ /**
+ * 多个套件获取API
+ *
+ * @see com.foxinmy.weixin4j.qy.api.SuiteApi
+ * @param suiteId
+ * 套件ID
+ * @return API实例
+ */
+ public SuiteApi api(String suiteId) {
+ return this.suiteMap.get(suiteId);
+ }
+
+ /**
+ * 第三方套件获取企业号管理员登录信息
+ *
+ * @param authCode
+ * oauth2.0授权企业号管理员登录产生的code
+ * @return 登陆信息
+ * @see com.foxinmy.weixin4j.qy.api.ProviderApi
+ * @see 授权获取企业号管理员登录信息
+ * @see com.foxinmy.weixin4j.qy.model.OUserInfo
+ * @throws WeixinException
+ */
+ public OUserInfo getOUserInfoByCode(String authCode) throws WeixinException {
+ return providerApi.getOUserInfoByCode(authCode);
+ }
+
+ /**
+ * 获取登录企业号官网的url
+ *
+ * @param corpId
+ * oauth授权的corpid
+ * @param targetType
+ * 登录跳转到企业号后台的目标页面
+ * @param agentId
+ * 授权方应用id 小余1时则不传递
+ * @return 登陆URL
+ * @see com.foxinmy.weixin4j.qy.api.ProviderApi
+ * @see 获取登录企业号官网的url
+ * @throws WeixinException
+ */
+ public String getLoginUrl(String corpId, LoginTargetType targetType,
+ int agentId) throws WeixinException {
+ return providerApi.getLoginUrl(corpId, targetType, agentId);
+ }
+
+ /**
+ * 创建WeixinProxy对象
+ *
+ * @param suiteId
+ * 套件ID
+ * @param authCorpId
+ * 已授权的corpid
+ * @see com.foxinmy.weixin4j.qy.WeixinProxy
+ * @return
+ */
+ public WeixinProxy getWeixinProxy(String suiteId, String authCorpId) {
+ return new WeixinProxy(api(suiteId).getPerCodeHolder(authCorpId), api(
+ suiteId).getSuiteTokenHolder());
+ }
+
+ public final static String VERSION = "1.6.7";
+}