diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java index 73660d3f..f1c9fd47 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java @@ -3,6 +3,7 @@ package me.chanjar.weixin.mp.api; import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.bean.menu.WxMpGetSelfMenuInfoResult; +import me.chanjar.weixin.mp.bean.menu.WxMpMenu; /** * 菜单相关操作接口 @@ -54,10 +55,10 @@ public interface WxMpMenuService { /** *
* 自定义菜单查询接口 - * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单查询接口 + * 详情请见: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141014&token=&lang=zh_CN **/ - WxMenu menuGet() throws WxErrorException; + WxMpMenu menuGet() throws WxErrorException; /** *
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java index 20590e5a..b28ac6a1 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java @@ -7,6 +7,7 @@ import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.WxMpMenuService; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.menu.WxMpGetSelfMenuInfoResult; +import me.chanjar.weixin.mp.bean.menu.WxMpMenu; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,11 +79,11 @@ public class WxMpMenuServiceImpl implements WxMpMenuService { } @Override - public WxMenu menuGet() throws WxErrorException { + public WxMpMenu menuGet() throws WxErrorException { String url = API_URL_PREFIX + "/get"; try { String resultContent = this.wxMpService.get(url, null); - return WxMenu.fromJson(resultContent); + return WxMpMenu.fromJson(resultContent); } catch (WxErrorException e) { // 46003 不存在的菜单数据 if (e.getError().getErrorCode() == 46003) { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java new file mode 100644 index 00000000..366ca2f1 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java @@ -0,0 +1,92 @@ +package me.chanjar.weixin.mp.bean.menu; + +import com.google.gson.annotations.SerializedName; +import me.chanjar.weixin.common.bean.menu.WxMenuButton; +import me.chanjar.weixin.common.bean.menu.WxMenuRule; +import me.chanjar.weixin.common.util.ToStringUtils; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; + +import java.util.List; + +/** + *+ * 公众号专用的菜单类,可能包含个性化菜单 + * Created by Binary Wang on 2017-1-17. + * @author binarywang(Binary Wang) + *+ */ +public class WxMpMenu { + @SerializedName("menu") + private WxMpConditionalMenu menu; + + @SerializedName("conditionalmenu") + private ListconditionalMenu; + + public static WxMpMenu fromJson(String json) { + return WxGsonBuilder.create().fromJson(json, WxMpMenu.class); + } + + public WxMpConditionalMenu getMenu() { + return menu; + } + + public void setMenu(WxMpConditionalMenu menu) { + this.menu = menu; + } + + public List getConditionalMenu() { + return conditionalMenu; + } + + public void setConditionalMenu(List conditionalMenu) { + this.conditionalMenu = conditionalMenu; + } + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public String toJson() { + return WxGsonBuilder.create().toJson(this); + } + + public static class WxMpConditionalMenu { + @SerializedName("button") + private List buttons; + @SerializedName("matchrule") + private WxMenuRule rule; + @SerializedName("menuid") + private String menuId; + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public List getButtons() { + return buttons; + } + + public void setButtons(List buttons) { + this.buttons = buttons; + } + + public WxMenuRule getRule() { + return rule; + } + + public void setRule(WxMenuRule rule) { + this.rule = rule; + } + + public String getMenuId() { + return menuId; + } + + public void setMenuId(String menuId) { + this.menuId = menuId; + } + } + +} diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java index 04e1b3e6..08980a2b 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java @@ -8,6 +8,7 @@ import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.ApiTestModule; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.menu.WxMpGetSelfMenuInfoResult; +import me.chanjar.weixin.mp.bean.menu.WxMpMenu; import org.testng.*; import org.testng.annotations.*; @@ -137,7 +138,7 @@ public class WxMpMenuServiceImplTest { @Test(dependsOnMethods = {"testMenuCreate"}) public void testMenuGet() throws WxErrorException { - WxMenu wxMenu = this.wxService.getMenuService().menuGet(); + WxMpMenu wxMenu = this.wxService.getMenuService().menuGet(); Assert.assertNotNull(wxMenu); System.out.println(wxMenu.toJson()); }