// GET: CustomMenu
        public ActionResult Create()
        {
            var  json    = System.IO.File.ReadAllText(Server.MapPath("/Content/Json/WeiXinMenu.json"));
            bool _result = CustomMenuAPI.Create(WeixinConfig.AccessToken, json);

            if (!_result)
            {
                return(Content("menu创建错误!"));
            }
            return(Content(json));
        }
Пример #2
0
        /// <summary>
        ///查询公众号菜单并保存到文件中
        /// </summary>
        /// <returns></returns>
        public ContentResult QueryMenu()
        {
            var token = WeixinHelper.TokenHelper.GetToken(false);
            var json  = CustomMenuAPI.Query(token);

            FileHelper.ShareWrite(json.menu.ToString(), MenuFilePath, Encoding.Default, FileMode.OpenOrCreate);
            return(new ContentResult()
            {
                Content = json.menu.ToString()
            });
        }
Пример #3
0
        /// <summary>
        /// 读取菜单文件发布到公众号
        /// </summary>
        /// <returns></returns>
        public ContentResult CreateMenu()
        {
            if (!System.IO.File.Exists(MenuFilePath))
            {
                return new ContentResult()
                       {
                           Content = "菜单文件不存在,请先创建菜单"
                       }
            }
            ;

            var button = FileHelper.ShareRead(MenuFilePath, Encoding.Default);
            var token  = WeixinHelper.TokenHelper.GetToken(false);

            CustomMenuAPI.Create(token, button);

            return(new ContentResult()
            {
                Content = "创建菜单成功"
            });
        }
    }
Пример #4
0
        //发布
        public ActionResult CreateMenu()
        {
            var menuList  = _task.GetList();
            var menuModel = new MenuModel()
            {
                button = new List <object>()
            };

            foreach (var itemP in menuList.Where(c => c.menuid <= 3))
            {
                var childList = menuList.Where(c => c.menuid >= itemP.menuid * 10 && c.menuid < itemP.menuid * 10 + 10).ToList().OrderByDescending(c => c.menuid);
                if (childList.Count() > 0)
                {
                    var menuChildModel = new MenuChildModel()
                    {
                        name = itemP.name, sub_button = new List <object>()
                    };
                    foreach (var itemC in childList)
                    {
                        #region 代码
                        switch (itemC.type)
                        {
                        case "click":
                        case "location_select":
                            var clickModel = new clickModel()
                            {
                                type = itemC.type,
                                key  = itemC.key,
                                name = itemC.name
                            };
                            menuChildModel.sub_button.Add(clickModel);
                            break;

                        case "view":
                            var viewModel = new viewModel()
                            {
                                type = itemC.type,
                                url  = itemC.url,
                                name = itemC.name
                            };
                            menuChildModel.sub_button.Add(viewModel);
                            break;

                        case "miniprogram":
                            var miniprogramModel = new miniprogramModel()
                            {
                                type     = itemC.type,
                                url      = itemC.url,
                                appid    = itemC.appid,
                                pagepath = itemC.pagepath,
                                name     = itemC.name
                            };
                            menuChildModel.sub_button.Add(miniprogramModel);
                            break;

                        case "scancode_waitmsg":
                        case "scancode_push":
                        case "pic_sysphoto":
                        case "pic_photo_or_album":
                        case "pic_weixin":
                            var subbuttonModel = new subbuttonModel()
                            {
                                type       = itemC.type,
                                key        = itemC.key,
                                name       = itemC.name,
                                sub_button = new List <object>(),
                            };
                            menuChildModel.sub_button.Add(subbuttonModel);
                            break;

                        case "media_id":
                        case "view_limited":
                            var mediaidModel = new mediaidModel()
                            {
                                type     = itemC.type,
                                media_id = itemC.media_id,
                                name     = itemC.name,
                            };
                            menuChildModel.sub_button.Add(mediaidModel);
                            break;
                        }
                        #endregion
                    }
                    menuModel.button.Add(menuChildModel);
                }
                else
                {
                    #region 代码
                    switch (itemP.type)
                    {
                    case "click":
                    case "location_select":
                        var clickModel = new clickModel()
                        {
                            type = itemP.type,
                            key  = itemP.key,
                            name = itemP.name
                        };
                        menuModel.button.Add(clickModel);
                        break;

                    case "view":
                        var viewModel = new viewModel()
                        {
                            type = itemP.type,
                            url  = itemP.url,
                            name = itemP.name
                        };
                        menuModel.button.Add(viewModel);
                        break;

                    case "miniprogram":
                        var miniprogramModel = new miniprogramModel()
                        {
                            type     = itemP.type,
                            url      = itemP.url,
                            appid    = itemP.appid,
                            pagepath = itemP.pagepath,
                            name     = itemP.name
                        };
                        menuModel.button.Add(miniprogramModel);
                        break;

                    case "scancode_waitmsg":
                    case "scancode_push":
                    case "pic_sysphoto":
                    case "pic_photo_or_album":
                    case "pic_weixin":
                        var subbuttonModel = new subbuttonModel()
                        {
                            type       = itemP.type,
                            key        = itemP.key,
                            name       = itemP.name,
                            sub_button = new List <object>(),
                        };
                        menuModel.button.Add(subbuttonModel);
                        break;

                    case "media_id":
                    case "view_limited":
                        var mediaidModel = new mediaidModel()
                        {
                            type     = itemP.type,
                            media_id = itemP.media_id,
                            name     = itemP.name,
                        };
                        menuModel.button.Add(mediaidModel);
                        break;
                    }
                    #endregion
                }
            }
            var sdk    = new WeiXinSdkTask("", "");
            var result = CustomMenuAPI.Create(sdk.AccountToken(), JsonConvert.SerializeObject(menuModel));
            if (result)
            {
                return(Json(new RequestResultDto()
                {
                    Msg = "发布成功", Ret = 0
                }));
            }
            return(Json(new RequestResultDto()
            {
                Msg = "发布失败", Ret = -1
            }));
        }