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 73660d3f9..f1c9fd47d 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 20590e5a6..b28ac6a16 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 000000000..366ca2f1b
--- /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 List conditionalMenu;
+
+ 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 04e1b3e6b..08980a2bb 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());
}