From 0ae7a75f5637032569ab5ff16c171137fe127b89 Mon Sep 17 00:00:00 2001 From: Daniel Qian Date: Thu, 26 Feb 2015 15:05:06 +0800 Subject: [PATCH] =?UTF-8?q?issue=20#109=20=E4=BC=81=E4=B8=9A=E5=8F=B7?= =?UTF-8?q?=E5=87=A0=E4=B8=AA=E6=96=B9=E6=B3=95=E6=B7=BB=E5=8A=A0agentId?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/chanjar/weixin/cp/api/WxCpService.java | 74 +++++++++++++++++++ .../weixin/cp/api/WxCpServiceImpl.java | 31 +++++++- 2 files changed, 101 insertions(+), 4 deletions(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java index 164a0874..70d59046 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java @@ -155,34 +155,87 @@ public interface WxCpService { *
    * 自定义菜单创建接口
    * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单创建接口
+   *
+   * 注意: 这个方法使用WxCpConfigStorage里的agentId
    * 
+ * @see #menuCreate(String, me.chanjar.weixin.common.bean.WxMenu) * * @param menu * @throws WxErrorException */ void menuCreate(WxMenu menu) throws WxErrorException; + /** + *
+   * 自定义菜单创建接口
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单创建接口
+   *
+   * 注意: 这个方法不使用WxCpConfigStorage里的agentId,需要开发人员自己给出
+   * 
+ * @see #menuCreate(me.chanjar.weixin.common.bean.WxMenu) + * + * @param agentId 企业号应用的id + * @param menu + * @throws WxErrorException + */ + void menuCreate(String agentId, WxMenu menu) throws WxErrorException; + /** *
    * 自定义菜单删除接口
    * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单删除接口
+   *
+   * 注意: 这个方法使用WxCpConfigStorage里的agentId
    * 
+ * @see #menuDelete(String) * * @throws WxErrorException */ void menuDelete() throws WxErrorException; + /** + *
+   * 自定义菜单删除接口
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单删除接口
+   *
+   * 注意: 这个方法不使用WxCpConfigStorage里的agentId,需要开发人员自己给出
+   * 
+ * @see #menuDelete() + * + * @param agentId 企业号应用的id + * @throws WxErrorException + */ + void menuDelete(String agentId) throws WxErrorException; + /** *
    * 自定义菜单查询接口
    * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单查询接口
+   *
+   * 注意: 这个方法使用WxCpConfigStorage里的agentId
    * 
+ * @see #menuGet(String) * * @return * @throws WxErrorException */ WxMenu menuGet() throws WxErrorException; + /** + *
+   * 自定义菜单查询接口
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单查询接口
+   *
+   * 注意: 这个方法不使用WxCpConfigStorage里的agentId,需要开发人员自己给出
+   * 
+ * @see #menuGet() + * + * @param agentId 企业号应用的id + * @return + * @throws WxErrorException + */ + WxMenu menuGet(String agentId) throws WxErrorException; + /** *
    * 部门管理接口 - 创建部门
@@ -364,12 +417,33 @@ public interface WxCpService {
    * 用oauth2获取用户信息
    * http://qydev.weixin.qq.com/wiki/index.php?title=根据code获取成员信息
    * 因为企业号oauth2.0必须在应用设置里设置通过ICP备案的可信域名,所以无法测试,因此这个方法很可能是坏的。
+   *
+   * 注意: 这个方法使用WxCpConfigStorage里的agentId
    * 
+ * @see #oauth2getUserInfo(String, String) + * * @param code * @return [userid, deviceid] */ String[] oauth2getUserInfo(String code) throws WxErrorException; + /** + *
+   * 用oauth2获取用户信息
+   * http://qydev.weixin.qq.com/wiki/index.php?title=根据code获取成员信息
+   * 因为企业号oauth2.0必须在应用设置里设置通过ICP备案的可信域名,所以无法测试,因此这个方法很可能是坏的。
+   *
+   * 注意: 这个方法不使用WxCpConfigStorage里的agentId,需要开发人员自己给出
+   * 
+ * @see #oauth2getUserInfo(String) + * + * @param agentId 企业号应用的id + * @param code + * @return [userid, deviceid] + */ + String[] oauth2getUserInfo(String agentId, String code) throws WxErrorException; + + /** * 移除标签成员 * diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java index c5b5e792..1c2e16e7 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java @@ -180,18 +180,36 @@ public class WxCpServiceImpl implements WxCpService { post(url, message.toJson()); } + @Override public void menuCreate(WxMenu menu) throws WxErrorException { + menuCreate(wxCpConfigStorage.getAgentId(), menu); + } + + @Override + public void menuCreate(String agentId, WxMenu menu) throws WxErrorException { String url = "https://qyapi.weixin.qq.com/cgi-bin/menu/create?agentid=" + wxCpConfigStorage.getAgentId(); post(url, menu.toJson()); } + @Override public void menuDelete() throws WxErrorException { - String url = "https://qyapi.weixin.qq.com/cgi-bin/menu/delete?agentid=" + wxCpConfigStorage.getAgentId(); + menuDelete(wxCpConfigStorage.getAgentId()); + } + + @Override + public void menuDelete(String agentId) throws WxErrorException { + String url = "https://qyapi.weixin.qq.com/cgi-bin/menu/delete?agentid=" + agentId; get(url, null); } + @Override public WxMenu menuGet() throws WxErrorException { - String url = "https://qyapi.weixin.qq.com/cgi-bin/menu/get?agentid=" + wxCpConfigStorage.getAgentId(); + return menuGet(wxCpConfigStorage.getAgentId()); + } + + @Override + public WxMenu menuGet(String agentId) throws WxErrorException { + String url = "https://qyapi.weixin.qq.com/cgi-bin/menu/get?agentid=" + agentId; try { String resultContent = get(url, null); return WxMenu.fromJson(resultContent); @@ -427,9 +445,14 @@ public class WxCpServiceImpl implements WxCpService { @Override public String[] oauth2getUserInfo(String code) throws WxErrorException { + return oauth2getUserInfo(code, wxCpConfigStorage.getAgentId()); + } + + @Override + public String[] oauth2getUserInfo(String agentId, String code) throws WxErrorException { String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?" - + "code=" + code - + "&agendid=" + wxCpConfigStorage.getAgentId(); + + "code=" + code + + "&agendid=" + agentId; String responseText = get(url, null); JsonElement je = Streams.parse(new JsonReader(new StringReader(responseText))); JsonObject jo = je.getAsJsonObject();