public static Menu LoadFromDataBaseByAppId(string appid) { W_WeChatInfoBLL weChatInfoBll = new W_WeChatInfoBLL(); W_WeChatInfo weChatInfo = weChatInfoBll.GetByAppID(appid); W_MenuBLL menuBll = new W_MenuBLL(); List <W_Menu> menuButtons = menuBll.GetByWeChatInfo(weChatInfo).OrderBy(temp => temp.Sort).ToList();// 获取对应的一级菜单并按 sort 排序。 Menu menu = new Menu(); foreach (W_Menu menuButton in menuButtons) { MenuButton button = new MenuButton(); button.Name = menuButton.MenuName; if (menuButton.MenuType == "click") { button.Type = MenuButtonType.Click; button.Key = menuButton.MenuKey; } else if (menuButton.MenuType == "view") { button.Type = MenuButtonType.View; button.Url = menuButton.MenuURL; } List <W_Menu> menuSubButtons = menuBll.GetChildButtons(menuButton).OrderBy(temp => temp.Sort).ToList(); foreach (W_Menu menuSubButton in menuSubButtons) { MenuSubButton subButton = new MenuSubButton(); subButton.Name = menuButton.MenuName; if (menuSubButton.MenuType == "click") { subButton.Type = MenuButtonType.Click; subButton.Key = menuButton.MenuKey; } else if (menuSubButton.MenuType == "view") { subButton.Type = MenuButtonType.View; subButton.Url = menuSubButton.MenuURL; } button.SubButton.Add(subButton); } menu.Button.Add(button); } return(menu); }
public static Menu LoadFromDataBaseByAppId(string appid) { W_WeChatInfoBLL weChatInfoBll = new W_WeChatInfoBLL(); W_WeChatInfo weChatInfo = weChatInfoBll.GetByAppID(appid); W_MenuBLL menuBll = new W_MenuBLL(); List<W_Menu> menuButtons = menuBll.GetByWeChatInfo(weChatInfo).OrderBy(temp => temp.Sort).ToList();// 获取对应的一级菜单并按 sort 排序。 Menu menu = new Menu(); foreach (W_Menu menuButton in menuButtons) { MenuButton button = new MenuButton(); button.Name = menuButton.MenuName; if (menuButton.MenuType == "click") { button.Type = MenuButtonType.Click; button.Key = menuButton.MenuKey; } else if (menuButton.MenuType == "view") { button.Type = MenuButtonType.View; button.Url = menuButton.MenuURL; } List<W_Menu> menuSubButtons = menuBll.GetChildButtons(menuButton).OrderBy(temp => temp.Sort).ToList(); foreach (W_Menu menuSubButton in menuSubButtons) { MenuSubButton subButton = new MenuSubButton(); subButton.Name = menuButton.MenuName; if (menuSubButton.MenuType == "click") { subButton.Type = MenuButtonType.Click; subButton.Key = menuButton.MenuKey; } else if (menuSubButton.MenuType == "view") { subButton.Type = MenuButtonType.View; subButton.Url = menuSubButton.MenuURL; } button.SubButton.Add(subButton); } menu.Button.Add(button); } return menu; }
/// <summary> /// 创建微信菜单 /// </summary> /// <param name="siteCode"></param> public static void CreateWeiXinMenu(string wxConfigID) { if (!string.IsNullOrEmpty(wxConfigID)) { WXConfigDAL dal = new WXConfigDAL(); WXConfig wxConfig = dal.GetWXConfigByID(wxConfigID); if (wxConfig != null) { WeiXinCore.Models.WeiXinConfig weixinConfig = new WeiXinCore.Models.WeiXinConfig() { ID = wxConfig.WXID, Name = wxConfig.WXName, Token = wxConfig.WXToken, AppId = wxConfig.WXAppID, AppSecret = wxConfig.WXAppSecret }; WeiXinCore.WeiXin weixin = new WeiXinCore.WeiXin(weixinConfig); MenuDAL dal2 = CreateInstance(); List <Menu> menus = dal2.GetWeiXinMenu(wxConfig.ID); MenuInfo menuInfo = new MenuInfo(); var buttons = from x in menus where x.MenuType.ToLower() == "button" orderby x.OrderNum ascending select x; foreach (Menu button in buttons) { if (!string.IsNullOrEmpty(button.ButtonType)) { switch (button.ButtonType.ToLower()) { case "view": string url = button.AccessLink; if (!string.IsNullOrEmpty(button.RedirectScope)) { url = WeiXinHelper.GenerateAuthorizeUrl(weixinConfig.AppId, HttpUtility.UrlEncode(url), button.RedirectScope, button.RedirectState); } menuInfo.Buttons.Add(new MenuViewBtton() { Name = button.ButtonName, Type = button.ButtonType, Url = url }); break; case "click": menuInfo.Buttons.Add(new MenuClickButton() { Name = button.ButtonName, Type = button.ButtonType, Key = button.ButtonKey }); break; default: menuInfo.Buttons.Add(new MenuEventButton() { Name = button.ButtonName, Type = button.ButtonType, Key = button.ButtonKey }); break; } } else { MenuSubButton subButton = new MenuSubButton() { Name = button.ButtonName }; var subButtons = from x in menus where x.MenuType.ToLower() == "sub_button" && x.ParentMenuID == button.ID orderby x.OrderNum ascending select x; foreach (Menu subButton1 in subButtons) { switch (subButton1.ButtonType.ToLower()) { case "view": string url = subButton1.AccessLink; if (!string.IsNullOrEmpty(subButton1.RedirectScope)) { url = WeiXinHelper.GenerateAuthorizeUrl(weixinConfig.AppId, HttpUtility.UrlEncode(url), subButton1.RedirectScope, subButton1.RedirectState); } subButton.SubButtons.Add(new MenuViewBtton() { Name = subButton1.ButtonName, Type = subButton1.ButtonType, Url = url }); break; case "click": subButton.SubButtons.Add(new MenuClickButton() { Name = subButton1.ButtonName, Type = subButton1.ButtonType, Key = subButton1.ButtonKey }); break; default: subButton.SubButtons.Add(new MenuEventButton() { Name = subButton1.ButtonName, Type = subButton1.ButtonType, Key = subButton1.ButtonKey }); break; } } menuInfo.Buttons.Add(subButton); } } string strJosn = menuInfo.ToJson(); weixin.CreateCustomMenu(menuInfo); } } }