Example #1
0
        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);
        }
Example #2
0
        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;
        }
Example #3
0
        /// <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);
                }
            }
        }