public void TestMenuButtons() { WXMenuDefine menu = new WXMenuDefine() { Buttons = new List <MenuItem>() { new MenuClickButton() { Name = "今日歌曲", Key = "V1001_TODAY_MUSIC" }, new MenuContainer() { Name = "菜单", SubButtons = new List <MenuItem>() { new MenuViewButton() { Name = "搜索", Url = "http://www.soso.com/" }, new MenuMiniProgramButton() { Name = "wxa", Url = "http://mp.weixin.qq.com", AppId = "wx286b93c14bbf93aa", PagePath = "pages/lunar/index" }, new MenuContainer() { Name = "二级菜单", SubButtons = new List <MenuItem>() { new MenuViewButton() { Name = "view", Url = "testurl" } } } } } } }; JsonHelper jsonHelper = new JsonHelper(); var json = jsonHelper.ToJson(menu); WXMenuDefine m = jsonHelper.ToObject <WXMenuDefine>(json); Assert.Equal(2, m.Buttons.Count); Assert.IsType <MenuClickButton>(menu.Buttons[0]); Assert.IsType <MenuContainer>(menu.Buttons[1]); Assert.IsType <MenuViewButton>((menu.Buttons[1] as MenuContainer).SubButtons[0]); Assert.Equal("wx286b93c14bbf93aa", ((menu.Buttons[1] as MenuContainer).SubButtons[1] as MenuMiniProgramButton).AppId); Assert.IsType <MenuViewButton>(((menu.Buttons[1] as MenuContainer).SubButtons[2] as MenuContainer).SubButtons[0]); }
/// <summary> /// 创建个性化菜单 /// </summary> /// <param name="menu"></param> /// <returns></returns> public async Task <WXConditionalMenuResponse> CreateConditionMenu(WXMenuDefine menu) { return(await _client.PostAsync <WXConditionalMenuResponse>("cgi-bin/menu/addconditional", menu)); }
/// <summary> /// 创建自定义菜单 /// </summary> /// <param name="menu"></param> /// <returns></returns> public async Task <WXResponse> CreateMenu(WXMenuDefine menu) { return(await _client.PostAsync <WXResponse>("cgi-bin/menu/create", menu)); }