Пример #1
0
        public void CreatMenuTest()
        {
            TokenManager  manger = new TokenManager();
            TokenEntity   entiy  = manger.GetToken("0");
            IWeiXinClient client = new DefaultWeiXinClient();

            client.Token = entiy;
            CreateMenuRequest request = new CreateMenuRequest();
            MenuEntity        entity  = new MenuEntity();

            entity.Buttons.Add(new ClickEvent {
                Name = "测试", Key = "KEY1"
            });
            entity.Buttons.Add(new MenuEventBase
            {
                Name      = "主页",
                SubButton = new List <MenuEventBase> {
                    new LocationSelectEvent {
                        Name = "上传坐标", Key = "KEY2"
                    },
                    new PicSysphotoEvent {
                        Name = "拍照发图", Key = "KEY3"
                    }
                }
            });
            request.Menu    = entity;
            request.AgentId = entiy.AgentID;
            CreateMenuResponse response = client.Execute <CreateMenuResponse>(request);

            Assert.AreEqual(0, response.ErrCode);
        }
Пример #2
0
        /// <summary>
        /// 创建菜单(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013)
        /// </summary>
        public CreateMenuResponse CreateMenu(string appId, string accessToken)
        {
            var response = new CreateMenuResponse()
            {
                //return_code = "FAI"
            };

            string requestUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";

            return(response);
        }
Пример #3
0
        public CreateMenuResponse Create(CreateMenuRequest request)
        {
            var response = new CreateMenuResponse();

            try
            {
                var menu = request.MapTo <Data.Entities.Menu>();
                //set IsRoot if no menu as parent
                menu.IsRoot   = request.ParentId <= 0;
                menu.ParentId = menu.IsRoot ? null : menu.ParentId;



                //check if has role group
                if (request.RoleGroupIds.Count > 0)
                {
                    menu.RoleGroups = new HashSet <Data.Entities.RoleGroup>();

                    foreach (int roleGroupId in request.RoleGroupIds)
                    {
                        var roleGroup = DataContext.RoleGroups.Where(r => r.Id == roleGroupId).First();

                        //add selected role group to menu
                        menu.RoleGroups.Add(roleGroup);
                    }
                }
                else
                {
                    menu.RoleGroups = null;
                }

                //ensure url end with slash
                menu.Url = menu.Url != null && menu.Url.Length > 0 ? _CleanUpMenuUrl(menu.Url) : menu.Url;

                DataContext.Menus.Add(menu);
                DataContext.SaveChanges();
                if (request.AddParent && !menu.IsRoot)
                {
                    AddParentMenu(menu.ParentId, request.RoleGroupIds);
                }
                response.IsSuccess = true;
                response.Message   = "Menu item has been added successfully";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return(response);
        }
Пример #4
0
        public CreateMenuResponse Create(CreateMenuRequest request)
        {
            var response = new CreateMenuResponse();
            try
            {
                var menu = request.MapTo<Data.Entities.Menu>();
                //set IsRoot if no menu as parent
                menu.IsRoot = request.ParentId <= 0;
                menu.ParentId = menu.IsRoot ? null : menu.ParentId;

                //check if has role group
                if (request.RoleGroupIds.Count > 0)
                {
                    menu.RoleGroups = new HashSet<Data.Entities.RoleGroup>();

                    foreach (int roleGroupId in request.RoleGroupIds)
                    {
                        var roleGroup = DataContext.RoleGroups.Where(r => r.Id == roleGroupId).First();

                        //add selected role group to menu
                        menu.RoleGroups.Add(roleGroup);
                    }
                }
                else
                {
                    menu.RoleGroups = null;
                }

                //ensure url end with slash
                menu.Url = menu.Url != null && menu.Url.Length > 0 ? _CleanUpMenuUrl(menu.Url) : menu.Url;

                DataContext.Menus.Add(menu);
                DataContext.SaveChanges();
                if (request.AddParent && !menu.IsRoot)
                {
                    AddParentMenu(menu.ParentId, request.RoleGroupIds);
                }
                response.IsSuccess = true;
                response.Message = "Menu item has been added successfully";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return response;
        }
Пример #5
0
        /// <summary>
        /// 创建菜单
        /// </summary>
        public static WeiXinResult CreateMenu()
        {
            WeiXinResult rv = new WeiXinResult {
                IsResult = false, ResultMsg = "系统错误!"
            };
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                rv.ResultMsg = "获取令牌环失败";
                return(rv);
            }
            else
            {
                Menu          menu   = new Menu();
                List <Button> button = new List <Weixin.Mp.Sdk.Domain.Button>();
                #region 菜单一 产品中心
                Button subBtn1 = new Button()
                {
                    key        = "guoneiyou",
                    name       = "国内游",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/ProductView.aspx?xianlu=0"
                };
                Button subBtn2 = new Button()
                {
                    key        = "guojiyou",
                    name       = "国际游",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/ProductView.aspx?xianlu=1"
                };
                Button subBtn3 = new Button()
                {
                    key        = "chanpintuijian",
                    name       = "产品推荐",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/ProductList.aspx?tuijian=1"
                };
                Button subBtn4 = new Button()
                {
                    key        = "chanpinmachaxun",
                    name       = "产品码查询",
                    sub_button = null,
                    type       = "click",
                    url        = "http://www.4008005216.com/AppPage/weixin/Register.aspx"
                };

                Button subBtn5 = new Button()
                {
                    key        = "guoneijipiao",
                    name       = "国内机票",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/jp_Search.aspx"
                };
                List <Button> subBtnAll = new List <Button>();
                subBtnAll.Add(subBtn1);
                subBtnAll.Add(subBtn2);
                subBtnAll.Add(subBtn3);
                subBtnAll.Add(subBtn4);
                subBtnAll.Add(subBtn5);
                Button btn = new Button()
                {
                    key        = "menu1",
                    name       = "旅游超市",
                    url        = "httpbig",
                    type       = "click",
                    sub_button = subBtnAll
                };
                button.Add(btn);

                #endregion
                #region 菜单二 会员中心
                Button Menu2SubBtn1 = new Button()
                {
                    key        = "dingdanguanli",
                    name       = "订单管理",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/OrderList.aspx"
                };
                Button Menu2SubBtn2 = new Button()
                {
                    key        = "zhanghuguanli",
                    name       = "账户管理",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/updateUser.aspx"
                };
                Button Menu2SubBtn3 = new Button()
                {
                    key        = "yuyue",
                    name       = "预约办理",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/YuYue.aspx"
                };

                string _weidianurl = "https://open.weixin.qq.com/connect/oauth2/authorize?";
                _weidianurl += "appid=" + appId;
                _weidianurl += "&redirect_uri=http://www.4008005216.com/WeiXin/oauth2_authorize.aspx";
                _weidianurl += "&response_type=code";
                _weidianurl += "&scope=snsapi_base";
                _weidianurl += "&state=weidian_snsapi_base";
                _weidianurl += "#wechat_redirect";

                Button Menu2SubBtn4 = new Button()
                {
                    key        = "wodeweidian",
                    name       = "我的微店",
                    sub_button = null,
                    type       = "view",
                    url        = _weidianurl
                };
                Button Menu2SubBtn5 = new Button()
                {
                    key        = "fenxiang",
                    name       = "最新分享",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/HuiYuanWeiXin/TuWenFenXiang.aspx"
                };
                List <Button> subBtnAll2 = new List <Button>();
                subBtnAll2.Add(Menu2SubBtn1);
                subBtnAll2.Add(Menu2SubBtn2);
                subBtnAll2.Add(Menu2SubBtn3);
                subBtnAll2.Add(Menu2SubBtn4);
                subBtnAll2.Add(Menu2SubBtn5);

                btn = new Button()
                {
                    key        = "huiyuanzhongxin",
                    name       = "会员中心",
                    url        = "httpbig",
                    type       = "click",
                    sub_button = subBtnAll2
                };
                button.Add(btn);

                #endregion
                #region 菜单三 惠旅游
                Button Menu3SubBtn1 = new Button()
                {
                    key        = "aboutus",
                    name       = "关于我们",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/AppPage/weixin/AboutUs.aspx"
                };
                Button Menu3SubBtn2 = new Button()
                {
                    key        = "appdown",
                    name       = "APP下载",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/DownApp.aspx"
                };
                Button Menu3SubBtn3 = new Button()
                {
                    key        = "recommend",
                    name       = "客服反馈",
                    sub_button = null,
                    type       = "click",
                    url        = "http://www.4008005216.com/AppPage/weixin/Recommend.aspx"
                };

                Button Menu3SubBtn4 = new Button()
                {
                    key        = "weimingpian",
                    name       = "我的频道",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/huiyuanweixin/mingpian.aspx"
                };

                Button Menu3SubBtn5 = new Button()
                {
                    key        = "lvyouguwen",
                    name       = "旅游顾问",
                    sub_button = null,
                    type       = "view",
                    url        = "http://www.4008005216.com/huiyuanweixin/lvyouguwen.aspx"
                };

                List <Button> subBtnAll3 = new List <Button>();
                subBtnAll3.Add(Menu3SubBtn1);
                subBtnAll3.Add(Menu3SubBtn2);
                subBtnAll3.Add(Menu3SubBtn3);

                subBtnAll3.Add(Menu3SubBtn4);
                subBtnAll3.Add(Menu3SubBtn5);

                btn = new Button()
                {
                    key        = "menu3",
                    name       = "旅游频道",
                    url        = "httpbig",
                    type       = "click",
                    sub_button = subBtnAll3
                };
                button.Add(btn);
                #endregion
                menu.button = button;
                MenuGroup mg = new MenuGroup()
                {
                    menu = menu
                };
                string            postData      = mg.ToJsonString();
                CreateMenuRequest createRequest = new CreateMenuRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    SendData    = postData
                };
                CreateMenuResponse createResponse = mpClient.Execute(createRequest);
                if (createResponse.IsError)
                {
                    rv.ResultMsg = "创建菜单失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg;
                    return(rv);
                }
                else
                {
                    rv.IsResult  = true;
                    rv.ResultMsg = "创建成功";
                    return(rv);
                }
            }
        }
Пример #6
0
        /// <summary>
        /// 创建菜单测试
        /// </summary>
        public static void CreateMenuTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            Menu menu = new Menu();

            List <Button> button = new List <Weixin.Mp.Sdk.Domain.Button>();

            Button subBtn1 = new Button()
            {
                key        = "subkey1",
                name       = "子按钮1",
                sub_button = null,
                type       = "click",
                url        = "http://"
            };
            Button subBtn2 = new Button()
            {
                key        = "subkey1",
                name       = "子按钮1",
                sub_button = null,
                type       = "click",
                url        = "http://"
            };
            Button subBtn3 = new Button()
            {
                key        = "subkey1",
                name       = "子按钮1",
                sub_button = null,
                type       = "click",
                url        = "http://"
            };
            List <Button> subBtnAll = new List <Button>();

            subBtnAll.Add(subBtn1);
            subBtnAll.Add(subBtn2);
            subBtnAll.Add(subBtn3);

            Button btn = new Button()
            {
                key        = "key3",
                name       = "联系",
                url        = "httpbig",
                type       = "click",
                sub_button = subBtnAll
            };

            button.Add(btn);

            btn = new Button()
            {
                key        = "key1",
                name       = "帮助",
                url        = "httpbig",
                type       = "click",
                sub_button = subBtnAll
            };
            button.Add(btn);

            btn = new Button()
            {
                key  = "key2",
                name = "关于",
                url  = "httpbig",
                type = "click",
                //sub_button = subBtnAll
            };
            button.Add(btn);

            menu.button = button;

            MenuGroup mg = new MenuGroup()
            {
                menu = menu
            };

            string postData = mg.ToJsonString();

            CreateMenuRequest createRequest = new CreateMenuRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                SendData    = postData
            };

            CreateMenuResponse createResponse = mpClient.Execute(createRequest);

            if (createResponse.IsError)
            {
                Console.WriteLine("创建菜单失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("创建菜单成功");
            }
        }