Ejemplo n.º 1
0
        public void CreateMenuTest()
        {
            //return;//已经通过测试

            var accessToken = AccessTokenContainer.GetAccessToken(_appId);

            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleClickButton()
            {
                name = "单击测试",
                key  = "OneClick",
                type = ButtonType.click.ToString(),//默认已经设为此类型,这里只作为演示
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "二级菜单"
            };

            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Text",
                name = "返回文本"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_News",
                name = "返回图文"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Music",
                name = "返回音乐"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://weixin.senparc.com",
                name = "Url跳转"
            });
            subButton.sub_button.Add(new SingleLocationSelectButton()
            {
                key  = "SingleLocationSelectButton",
                name = "位置",
            });
            bg.button.Add(subButton);


            var result = CommonApi.CreateMenu(accessToken, bg);

            Assert.IsNotNull(result);
            Assert.AreEqual("ok", result.errmsg);
        }
Ejemplo n.º 2
0
        public void CreateMenuTest()
        {
            var accessToken = AccessTokenContainer.GetToken(_corpId, _corpSecret);

            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleClickButton()
            {
                name = "单击测试",
                key  = "OneClick",
                type = ButtonType.click.ToString(),//默认已经设为此类型,这里只作为演示
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "二级菜单"
            };

            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Text",
                name = "返回文本"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_News",
                name = "返回图文"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Music",
                name = "返回音乐"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://weixin.senparc.com",
                name = "Url跳转"
            });
            subButton.sub_button.Add(new SinglePicPhotoOrAlbumButton()
            {
                key  = "SubClickRoot_Pic_Photo_Or_Album",
                name = "微信拍照"
            });
            bg.button.Add(subButton);


            var result = CommonApi.CreateMenu(accessToken, _agentId, bg);

            Assert.IsNotNull(result);
            Assert.AreEqual("ok", result.errmsg);
        }
Ejemplo n.º 3
0
        public static string CreateMenu()
        {
            var         accessToken = AccessTokenContainer.TryGetAccessToken(appid, secret);
            ButtonGroup bg          = new ButtonGroup();

            //单击
            bg.button.Add(new SingleViewButton()
            {
                url  = "http://www.mingshukeji.com.cn/SharePing",
                name = "小米小店"
            });
            //二级菜单
            var subButton = new SubButton()
            {
                name = "抢券中心"
            };

            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://www.mingshukeji.com.cn/SharePing",
                name = "推荐福利"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://www.mingshukeji.com.cn/SharePing/FindCoupon",
                name = "搜索福利"
            });
            bg.button.Add(subButton);

            //二级菜单
            var subButton2 = new SubButton()
            {
                name = "服务中心"
            };

            subButton2.sub_button.Add(new SingleViewButton()
            {
                url  = "https://www.mingshukeji.com.cn/Home/AboutCompany",
                name = "关于我们"
            });
            subButton2.sub_button.Add(new SingleViewButton()
            {
                url  = "https://shop.mi.com",
                name = "管理小店"
            });
            bg.button.Add(subButton2);

            var result = CommonApi.CreateMenu(accessToken, bg);

            return("菜单创建成功");
        }
Ejemplo n.º 4
0
        public ActionResult MenuManager()

        {
            AccessTokenContainer.Register("wx4df7108464fb86f1", "46515264f29685ba478ea93d44919ed5");
            var accessToken = AccessTokenContainer.GetAccessToken(AppId);


            var aa = UserTagApi.Get(accessToken);


            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleClickButton()
            {
                name = "单击测试",
                key  = "OneClick",
                type = ButtonType.click.ToString(),//默认已经设为此类型,这里只作为演示
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "二级菜单"
            };

            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Text",
                name = "返回文本"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_News",
                name = "返回图文"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Music",
                name = "返回音乐"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://weixin.senparc.com",
                name = "Url跳转"
            });
            bg.button.Add(subButton);
            var result = CommonApi.CreateMenu(accessToken, bg);

            return(View());
        }
Ejemplo n.º 5
0
        public ActionResult CreateMenu(string token, GetMenuResultFull resultFull, MenuMatchRule menuMatchRule)
        {
            var useAddCondidionalApi = menuMatchRule != null && !menuMatchRule.CheckAllNull();
            var apiName = string.Format("使用接口:{0}。", (useAddCondidionalApi ? "个性化菜单接口" : "普通自定义菜单接口"));

            try
            {
                if (token.IsNullOrEmpty())
                {
                    throw new WeixinException("Token不能为空!");
                }

                //重新整理按钮信息
                WxJsonResult     result      = null;
                IButtonGroupBase buttonGroup = null;
                if (useAddCondidionalApi)
                {
                    //个性化接口
                    buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ConditionalButtonGroup()).menu;

                    var addConditionalButtonGroup = buttonGroup as ConditionalButtonGroup;
                    addConditionalButtonGroup.matchrule = menuMatchRule;
                    result   = CommonApi.CreateMenuConditional(token, addConditionalButtonGroup);
                    apiName += string.Format("menuid:{0}。", (result as CreateMenuConditionalResult).menuid);
                }
                else
                {
                    //普通接口
                    buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                    result      = CommonApi.CreateMenu(token, buttonGroup);
                }

                var json = new
                {
                    Success = result.errmsg == "ok",
                    Message = "菜单更新成功。" + apiName
                };
                return(Json(json, new JsonSerializerSettings()
                {
                    ContractResolver = new DefaultContractResolver()
                }));
            }
            catch (Exception ex)
            {
                var json = new { Success = false, Message = string.Format("更新失败:{0}。{1}", ex.Message, apiName) };
                return(Json(json, new JsonSerializerSettings()
                {
                    ContractResolver = new DefaultContractResolver()
                }));
            }
        }
Ejemplo n.º 6
0
        // 创建菜单
        private void BuildMenu()
        {
            var x5Meuns = new ButtonGroup();

            var indexPage = new SingleViewButton
            {
                name = "起步科技",
                type = ButtonType.view.ToString(),
                url  = "http://www.justep.com"
            };

            x5Meuns.button.Add(indexPage);

            var demoPage = new SingleViewButton
            {
                name = "外卖",
                type = ButtonType.view.ToString(),
                url  = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
                       ConfigHelper.AppConfig["appId"] +
                       "&redirect_uri=http%3A%2F%2Fwx.justep.com%2Ftakeout%2Findex.html&"
                       + "response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"
            };

            x5Meuns.button.Add(demoPage);

            var takeout = new SingleViewButton
            {
                name = "外卖案例",
                type = ButtonType.view.ToString(),
                url  =
                    "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
                    ConfigHelper.AppConfig["appId"] +
                    "&redirect_uri=http%3A%2F%2Fwx.justep.com%2Fx5%2FUI2%2Ftakeout%2Findex.w&"
                    + "response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"
            };

            Console.WriteLine(takeout.url);
            x5Meuns.button.Add(takeout);

            try
            {
                CommonApi.DeleteMenu(AccessToken);
                CommonApi.CreateMenu(AccessToken, x5Meuns);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
        }
        public void dd()
        {
            //125.105.97.120
            AccessTokenContainer.Register(AppId, AppSecret);
            //  var accesstoken = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetToken(AppId, AppSecret);
            var accesstoken = AccessTokenContainer.TryGetAccessToken(AppId, AppSecret);
            //21_aBoVaAUgaWbzmZkclQJSRVN2HkBLJCny12kOxwumMMavDaKUWMecnYNz6Vwmol1pgvYkaOzF7zmpFh3puXhhIx3JpjrMQUWw24O-1lFul60G2wjCUmP1e4QcfKAVJYdAHAZNC
            // var  accesstoken1 = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetToken(AppId, AppSecret);
            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleClickButton()
            {
                name = "单击测试",
                key  = "OneClick"
                       //type = ButtonType.click.ToString(),//默认已经设为此类型,这里只作为演示
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "二级菜单"
            };

            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Text",
                name = "返回文本"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_News",
                name = "返回图文"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Music",
                name = "返回音乐"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://weixin.senparc.com",
                name = "Url跳转"
            });
            bg.button.Add(subButton);

            var result  = CommonApi.CreateMenu(accesstoken, bg);
            var results = CommonApi.GetMenu(accesstoken);
        }
Ejemplo n.º 8
0
        public ActionResult SaveMenu(FormCollection fc)
        {
            Guid   id                       = Guid.Parse(fc["accountid"].ToString());
            string menustr                  = fc["menustr"].ToString();
            JavaScriptSerializer js         = new JavaScriptSerializer();
            var                 jsonResult  = js.Deserialize <GetMenuResultFull>(menustr);
            ButtonGroup         bg          = new ButtonGroup();
            GetMenuResult       aasaas      = CommonApi.GetMenuFromJsonResult(jsonResult, bg);
            OfficialAccount_BLL bll         = new OfficialAccount_BLL();
            OfficialAccount     oa          = bll.Get(a => a.AccountID == id);
            string              accessToken = AccessTokenContainer.TryGetAccessToken(oa.AppID, oa.AppSecret);

            Senparc.Weixin.Entities.WxJsonResult rrr = CommonApi.CreateMenu(accessToken, aasaas.menu);
            return(Json(rrr.errcode.ToString(), JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 初始化用户的默认菜单
        /// </summary>
        private static void InitMenus()
        {
            var buttonGroup = new ButtonGroup();

            #region  第一个菜单

            var timeGalleryBtn = new SubButton("时光轴");

            var pepeWebBtn = new SingleViewButton
            {
                name = "裴裴时光轴",
                url  = "http://fengrui358.vicp.cc/TimeGallery"
            };
            timeGalleryBtn.sub_button.Add(pepeWebBtn);

            buttonGroup.button.Add(timeGalleryBtn);

            #endregion

            #region 第二个菜单

            var aboutBtn = new SubButton("关于");

            var uploadBtn = new SingleViewButton
            {
                name = "上传",
                url  = "http://fengrui358.vicp.cc/TimeGallery/Gallery/OAuth2ForBaseUpload"
            };
            var uploadUserBtn = new SingleViewButton
            {
                name = "用户信息上传",
                url  = "http://fengrui358.vicp.cc/TimeGallery/Gallery/OAuth2ForUserInfoUpload"
            };

            aboutBtn.sub_button.Add(uploadBtn);
            aboutBtn.sub_button.Add(uploadUserBtn);

            buttonGroup.button.Add(aboutBtn);

            #endregion

            var result = CommonApi.CreateMenu(AppId, buttonGroup);

            if (result == null || result.errcode != 0)
            {
                throw new Exception("初始化微信默认菜单出错!");
            }
        }
Ejemplo n.º 10
0
        public ActionResult CreateMenu(GetMenuResultFull resultFull)
        {
            WxJsonResult result = null;

            try
            {
                var accessToken = AccessTokenContainer.TryGetToken(AppId, AppSecret);
                var bg          = CommonApi.GetMenuFromJsonResult(resultFull).menu;
                result = CommonApi.CreateMenu(accessToken, bg);
            }
            catch (Exception)
            {
                //TODO
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 11
0
        public ActionResult InitMenu()
        {
            var token        = AccessTokenContainer.TryGetAccessToken(AppId, AppSecret);
            var buttonGroups = new MenuFull_ButtonGroup();

            // 定义按钮
            buttonGroups.button = new List <MenuFull_RootButton>
            {
                new MenuFull_RootButton
                {
                    name = "科技资讯",
                    type = "view",
                    url  = "https://guandian.tech",
                },
                new MenuFull_RootButton
                {
                    name = "技术分享",
                    type = "view",
                    url  = "https://guandian.tech/blogs",
                },
                new MenuFull_RootButton
                {
                    name       = "关于我们",
                    sub_button = new List <MenuFull_RootButton>
                    {
                        new MenuFull_RootButton
                        {
                            name = "我们是谁",
                            type = "view",
                            url  = "https://guandian.tech/home/about"
                        },
                        new MenuFull_RootButton
                        {
                            name = "联系方式",
                            type = "view",
                            url  = "https://guandian.tech/home/contact"
                        }
                    }
                }
            };

            var result = CommonApi.CreateMenu(token, buttonGroups);

            return(Json(result.errmsg));
        }
Ejemplo n.º 12
0
        public dynamic CreateMenuList()
        {
            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleClickButton()
            {
                name = "智能检索",
                key  = "OneClick",
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "我的"
            };

            subButton.sub_button.Add(new SingleViewButton()
            {
                name = "身份绑定",
                url  = "http://aehyok.com"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_News",
                name = "我的任务"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Music",
                name = "我的会议"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://weixin.senparc.com",
                name = "个人信息"
            });
            bg.button.Add(subButton);

            var accessToken = AccessTokenContainer.TryGetAccessToken(appId, appSecret);
            var result      = CommonApi.CreateMenu(accessToken, bg);

            return(Ok(result));
        }
Ejemplo n.º 13
0
        public static readonly string AppId          = "wx4df7108464fb86f1";                          //与微信公众账号后台的AppId设置保持一致,区分大小写。

        //[HttpGet]
        //public ActionResult Menu ()
        //{
        //    return View("Menu");
        //}

        //[HttpPost]
        public void Menu()
        {
            var accessToken = AccessTokenContainer.GetAccessToken(AppId);

            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleClickButton()
            {
                name = "单击测试",
                key  = "OneClick",
                type = ButtonType.click.ToString(),//默认已经设为此类型,这里只作为演示
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "二级菜单"
            };

            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Text",
                name = "返回文本"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_News",
                name = "返回图文"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Music",
                name = "返回音乐"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://weixin.senparc.com",
                name = "Url跳转"
            });
            bg.button.Add(subButton);
            var result = CommonApi.CreateMenu(accessToken, bg);
            //return result;
        }
Ejemplo n.º 14
0
        public async Task PushMenuAsync(string accessTokenOrAppId, int siteId)
        {
            var resultFull = new GetMenuResultFull
            {
                menu = new MenuFull_ButtonGroup
                {
                    button = new List <MenuFull_RootButton>()
                }
            };

            var openMenus = await _wxMenuRepository.GetMenusAsync(siteId);

            foreach (var firstMenu in openMenus.Where(x => x.ParentId == 0))
            {
                var root = new MenuFull_RootButton
                {
                    name       = firstMenu.Text,
                    type       = firstMenu.MenuType.GetValue(),
                    url        = firstMenu.Url,
                    key        = firstMenu.Key,
                    sub_button = new List <MenuFull_RootButton>()
                };
                foreach (var child in openMenus.Where(x => x.ParentId == firstMenu.Id))
                {
                    root.sub_button.Add(new MenuFull_RootButton
                    {
                        name = child.Text,
                        type = child.MenuType.GetValue(),
                        url  = child.Url,
                        key  = child.Key
                    });
                }

                resultFull.menu.button.Add(root);
            }

            var buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
            var result      = CommonApi.CreateMenu(accessTokenOrAppId, buttonGroup);

            if (result.errmsg != "ok")
            {
                throw new Exception(result.errmsg);
            }
        }
Ejemplo n.º 15
0
        public void CreateMenuTest()
        {
            return;//已经通过测试

            LoadToken();

            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleButton()
            {
                name = "单击测试",
                key  = "OneClick",
                type = ButtonType.click.ToString(),                  //默认已经设为此类型,这里只作为演示
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "二级菜单"
            };

            subButton.sub_button.Add(new SingleButton()
            {
                key  = "SubClickRoot_Text",
                name = "返回文本"
            });
            subButton.sub_button.Add(new SingleButton()
            {
                key  = "SubClickRoot_News",
                name = "返回图文"
            });
            subButton.sub_button.Add(new SingleButton()
            {
                key  = "SubClickRoot_Music",
                name = "返回音乐"
            });
            bg.button.Add(subButton);

            var result = CommonApi.CreateMenu(tokenResult.access_token, bg);

            Assert.IsNotNull(result);
            Assert.AreEqual("ok", result.errmsg);
        }
Ejemplo n.º 16
0
        private void CreateMenus()
        {
            ButtonGroup bg = new ButtonGroup();

            //单击
            bg.button.Add(new SingleClickButton()
            {
                name = "单击测试",
                key  = "OneClick",
                type = ButtonType.click.ToString(),//默认已经设为此类型,这里只作为演示
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "二级菜单"
            };

            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Text",
                name = "返回文本"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_News",
                name = "返回图文"
            });
            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Music",
                name = "返回音乐"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = string.Format("{0}Home/OperateMsg", KeyStore.DemoUrl),
                name = "使用说明"
            });
            bg.button.Add(subButton);

            var accessToken = AccessTokenContainer.GetAccessToken(KeyStore.AppId);
            var result      = CommonApi.CreateMenu(accessToken, bg);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 使用Json数据更新菜单
        /// </summary>
        /// <param name="fullJson">json数据</param>
        /// <returns></returns>
        public ActionResult CreateMenuFromJson(string fullJson)
        {
            try
            {
                GetMenuResultFull resultFull = Newtonsoft.Json.JsonConvert.DeserializeObject <GetMenuResultFull>(fullJson);

                //重新整理按钮信息
                WxJsonResult     result      = null;
                IButtonGroupBase buttonGroup = null;

                buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                result      = CommonApi.CreateMenu(AccessTokenContainer.TryGetAccessToken(AppId, Secret), buttonGroup);
                return(Json(Model.SysEnum.成功, "菜单更新成功"));
            }
            catch (Exception ex)
            {
                return(Json(Model.SysEnum.失败, string.Format("更新失败:{0}", ex.Message)));
            }
        }
Ejemplo n.º 18
0
        public ActionResult CreateMenu(string data)
        {
            string         accessToken = AccessTokenContainer.TryGetToken(ConfigSettings.TestWeixinAppID, ConfigSettings.TestWeixinAppSecret);
            JsonMenu       jsonMenu    = JsonConvert.DeserializeObject <JsonMenu>(data);
            MenuJsonResult jsonResult  = new MenuJsonResult {
                menu = jsonMenu
            };

            jsonResult = CommonApi.GetMenuFromJsonResult(jsonResult);
            WxJsonResult result = CommonApi.CreateMenu(accessToken, jsonResult.Buttons);

            if (result.errcode == WeixinReturnCode.Success)
            {
                return(Content("ok"));
            }
            else
            {
                return(Content("error"));
            }
        }
Ejemplo n.º 19
0
 public ActionResult CreateMenu(string token, GetMenuResultFull resultFull)
 {
     try
     {
         //重新整理按钮信息
         var bg     = CommonApi.GetMenuFromJsonResult(resultFull).menu;
         var result = CommonApi.CreateMenu(token, bg);
         var json   = new
         {
             Success = result.errmsg == "ok",
             Message = result.errmsg
         };
         return(Json(json));
     }
     catch (Exception ex)
     {
         var json = new { Success = false, Message = ex.Message };
         return(Json(json));
     }
 }
Ejemplo n.º 20
0
        public ActionResult CreateMenu(GetMenuResultFull resultFull, MenuMatchRule menuMatchRule)
        {
            if (string.IsNullOrEmpty(_wxAccount.AppId) || string.IsNullOrEmpty(_wxAccount.Secret))
            {
                return(Json(new { error = "AppId或AppSecret为空" }, JsonRequestBehavior.AllowGet));
            }

            var token = AccessTokenContainer.TryGetAccessToken(_wxAccount.AppId, _wxAccount.Secret);

            var useAddCondidionalApi = menuMatchRule != null && !menuMatchRule.CheckAllNull();
            var apiName = string.Format("使用接口:{0}。", (useAddCondidionalApi ? "个性化菜单接口" : "普通自定义菜单接口"));

            try
            {
                //重新整理按钮信息
                WxJsonResult     result      = null;
                IButtonGroupBase buttonGroup = null;
                if (useAddCondidionalApi)
                {
                    //个性化接口
                    buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ConditionalButtonGroup()).menu;

                    var addConditionalButtonGroup = buttonGroup as ConditionalButtonGroup;
                    addConditionalButtonGroup.matchrule = menuMatchRule;
                    result   = CommonApi.CreateMenuConditional(token, addConditionalButtonGroup);
                    apiName += string.Format("menuid:{0}。", (result as CreateMenuConditionalResult).menuid);
                }
                else
                {
                    //普通接口
                    buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                    result      = CommonApi.CreateMenu(token, buttonGroup);
                }

                return(Json(new { success = result.errmsg == "ok", message = "菜单更新成功。" + apiName }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, message = string.Format("更新失败:{0}。{1}", ex.Message, apiName) }));
            }
        }
Ejemplo n.º 21
0
        public static string CreateMenuDefault()
        {
            string errormsg = string.Empty;

            try
            {
                ButtonGroup  btnGroup = GetSunnysoftBtnGroup();
                WxJsonResult result   = CommonApi.CreateMenu(MPBasicSetting.AppID, btnGroup);
                if (result.errcode != ReturnCode.请求成功)
                {
                    errormsg = "错误码:" + result.errcode + ". " + result.errmsg;
                    FileHelper.WriteLog("创建菜单错误", errormsg);
                }
                return(errormsg);
            }
            catch (System.Exception ex)
            {
                FileHelper.WriteLog("创建菜单错误", ex.ToString());
                return(ex.Message);
            }
        }
Ejemplo n.º 22
0
 /// <summary>
 /// 修改自定义菜单
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public ActionResult UpdateMenu(string id)
 {
     try
     {
         var model = id.JsonToObj <MenuModel>();
         if (model != null)
         {
             var bg     = GetSendMenuJson(model.list);
             var result = CommonApi.CreateMenu(AccessTokenContainer.TryGetAccessToken("wxd4d7bd7f8fdc8156", "0482ace1cf1b9dcf702ba4366be65db8"), bg);
             if (result != null)
             {
                 return(Content(result.errcode.ToStringEx()));
             }
         }
         return(Content("1"));
     }
     catch (Exception err)
     {
         return(Content(err.Message));
     }
 }
Ejemplo n.º 23
0
 private string CreateMenuWithButtonGroup()
 {
     try
     {
         var         accessToken = AccessTokenContainer.TryGetAccessToken(AppId, AppSecret);
         ButtonGroup bg          = new ButtonGroup();
         // 添加 Order 菜单
         bg.button.Add(new SingleClickButton()
         {
             name = "Order",
             key  = "OrderClick",
             type = MenuButtonType.view.ToString(), //默认已经设为此类型,这里只作为演示
         });
         var result = CommonApi.CreateMenu(accessToken, bg);
         return(result.ToString());
     }
     catch (Exception e)
     {
         return(e.StackTrace.ToString());
     }
 }
        /// <summary>
        /// 更新自定义菜单(默认菜单)
        /// </summary>
        /// <param name="appId">微信appId</param>
        /// <param name="menuFull_Button">自定义菜单组</param>
        /// <returns></returns>
        private async Task UpdateDefaultMenu(string appId, MenuFull_ButtonGroup menuFull_Button)
        {
            await _wechatAppConfigManager.RegisterWechatApp(appId);

            try
            {
                var resultFull = new GetMenuResultFull()
                {
                    menu = menuFull_Button
                };

                // 数据校验
                var buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                // 立即创建
                var result = CommonApi.CreateMenu(appId, buttonGroup);
            }
            catch (UserFriendlyException e)
            {
                throw e;
            }
        }
Ejemplo n.º 25
0
 /// <summary>
 /// 修改自定义菜单
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public ActionResult UpdateMenu(string id)
 {
     try
     {
         var model = id.JsonToObj <MenuModel>();
         if (model != null)
         {
             var bg     = GetSendMenuJson(model.list);
             var result = CommonApi.CreateMenu(GetAccessToken(), bg);
             if (result != null)
             {
                 return(Content(result.errcode.ToStringEx()));
             }
         }
         return(Content("1"));
     }
     catch (Exception err)
     {
         return(Content(err.Message));
     }
 }
Ejemplo n.º 26
0
        /// <summary>
        /// 初始化创建菜单
        /// </summary>
        /// <param name="appId"></param>
        public void CreateMenu()
        {
            ButtonGroup buttonGroup = new ButtonGroup();

            buttonGroup.button.Add(new SingleViewButton()
            {
                name = "APP下载",
                url  = "http://download.wftx666.com"
            });
            buttonGroup.button.Add(new SingleViewButton()
            {
                name = "进入商城",
                url  = "http://m.wftx666.com"
            });

            //二级菜单
            var subButton = new SubButton()
            {
                name = "服务中心"
            };

            subButton.sub_button.Add(new SingleClickButton()
            {
                key  = "SubClickRoot_Text_Complaint",
                name = "投诉建议"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "https://mp.weixin.qq.com/mp/homepage?__biz=MzUzOTE3OTMyNw==&hid=1&sn=398ed1e7070362f143920d8fcdbec971#wechat_redirect",
                name = "帮助中心"
            });
            subButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://wx.wftx666.com/account",
                name = "你的信息"
            });
            buttonGroup.button.Add(subButton);

            var result = CommonApi.CreateMenu(AccessToken(), buttonGroup);
        }
Ejemplo n.º 27
0
        private bool SyncMenu(GetMenuResultFull resultFull, AccountInfo accountInfo, out string errorMessage)
        {
            var isSync = false;

            errorMessage = string.Empty;

            var bg          = CommonApi.GetMenuFromJsonResult(resultFull).menu;
            var accessToken = MPUtils.GetAccessToken(accountInfo);
            var result      = CommonApi.CreateMenu(accessToken, bg);

            if (result.errmsg == "ok")
            {
                isSync = true;
            }
            else
            {
                isSync       = false;
                errorMessage = result.errmsg;
            }

            return(isSync);
        }
Ejemplo n.º 28
0
        public bool CreateWechatMenu(out string msg)
        {
            var accessToken = _wechatAuthentManager.GetAccessToken();

            if (!string.IsNullOrEmpty(accessToken))
            {
                var wechatMenu = _wechatMenuProvider.GetWechatMenu();

                try
                {
                    var result = CommonApi.CreateMenu(accessToken, wechatMenu);
                    msg = result.errmsg;
                    return(result.errcode == ReturnCode.请求成功);
                }
                catch (Exception e)
                {
                    LogHelper.Logger.Error(e.Message, e);
                    msg = e.Message;
                }
                return(false);
            }
            msg = "获取AcessToken失败";
            return(false);
        }
Ejemplo n.º 29
0
        public ActionResult CreateMenuFromJson(string token, string fullJson)
        {
            //TODO:根据"conditionalmenu"判断自定义菜单

            var apiName = "使用JSON更新";

            try
            {
                GetMenuResultFull resultFull = Newtonsoft.Json.JsonConvert.DeserializeObject <GetMenuResultFull>(fullJson);

                //重新整理按钮信息
                WxJsonResult     result      = null;
                IButtonGroupBase buttonGroup = null;

                buttonGroup = CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                result      = CommonApi.CreateMenu(token, buttonGroup);

                var json = new
                {
                    Success = result.errmsg == "ok",
                    Message = "菜单更新成功。" + apiName
                };
                return(Json(json, new JsonSerializerSettings()
                {
                    ContractResolver = new DefaultContractResolver()
                }));
            }
            catch (Exception ex)
            {
                var json = new { Success = false, Message = string.Format("更新失败:{0}。{1}", ex.Message, apiName) };
                return(Json(json, new JsonSerializerSettings()
                {
                    ContractResolver = new DefaultContractResolver()
                }));
            }
        }
Ejemplo n.º 30
0
        public ActionResult CreateMenu(string token, GetMenuResultFull resultFull, MenuMatchRule menuMatchRule)
        {
            bool   flag = (menuMatchRule != null) && !menuMatchRule.CheckAllNull();
            string str  = "使用接口:" + (flag ? "个性化菜单接口" : "普通自定义菜单接口") + "。";

            try
            {
                WxJsonResult     result     = null;
                IButtonGroupBase buttonData = null;
                if (flag)
                {
                    ConditionalButtonGroup menu = CommonApi.GetMenuFromJsonResult(resultFull, new ConditionalButtonGroup()).menu as ConditionalButtonGroup;
                    menu.matchrule = menuMatchRule;
                    result         = CommonApi.CreateMenuConditional(token, menu, 0x2710);
                    str            = str + "menuid:" + (result as CreateMenuConditionalResult).menuid + "。";
                }
                else
                {
                    buttonData = CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                    result     = CommonApi.CreateMenu(token, buttonData, 0x2710);
                }
                var data = new {
                    Success = result.errmsg == "ok",
                    Message = "菜单更新成功。" + str
                };
                return(base.Json(data));
            }
            catch (Exception exception)
            {
                var type2 = new {
                    Success = false,
                    Message = "更新失败:" + exception.Message + "。" + str
                };
                return(base.Json(type2));
            }
        }