Ejemplo n.º 1
0
        public static string PostApplyMenu()
        {
            var result = AccessTokenContainer.GetTokenResult(Variables.AppId);

            // GetMenuResult menuResult = CommonApi.GetMenu(result.access_token);

            CommonApi.DeleteMenu(result.access_token);
            var buttons = Variables.MenuButtons;

            Regex regex = new Regex("\\{(local|auth)\\}([^\"]*)");

            buttons = regex.Replace(buttons, a =>
            {
                if (a.Groups[1].Value == "local")
                {
                    return(WeixinHelper.GetLocalPath() + a.Groups[2].Value);
                }
                else
                {
                    return(WeixinHelper.GetAuthUrl(a.Groups[2].Value));
                }
            });

            var resultHtml = HttpClient.Post("https://api.weixin.qq.com/cgi-bin/menu/create?access_token="
                                             + result.access_token, buttons, null);

            return(Regex.Match(resultHtml, "\"errmsg\":\"([^\"]+)\"").Groups[1].Value);
        }
Ejemplo n.º 2
0
        public void Delete_OnClick(object sender, EventArgs e)
        {
            if (Page.IsPostBack && Page.IsValid)
            {
                try
                {
                    var accountInfo = WeiXinManager.GetAccountInfo(PublishmentSystemID);

                    var accessToken = MPUtils.GetAccessToken(accountInfo);

                    var result = CommonApi.DeleteMenu(accessToken);

                    if (result.errmsg == "ok")
                    {
                        SuccessMessage("菜单禁用成功,取消关注公众账号后再次关注,可以立即看到禁用后的效果");
                    }
                    else
                    {
                        FailMessage($"菜单禁用失败:{result.errmsg}");
                    }
                }
                catch (Exception ex)
                {
                    FailMessage($"菜单禁用失败:{ex.Message}");
                }
            }
        }
Ejemplo n.º 3
0
        public ActionResult DeleteCustomMenu(string menuId)
        {
            try
            {
                if (string.IsNullOrEmpty(_wxAccount.AppId) || string.IsNullOrEmpty(_wxAccount.Secret))
                {
                    return(Json(new { error = true, message = "AppId或AppSecret为空" }, JsonRequestBehavior.AllowGet));
                }

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

                var result = string.IsNullOrEmpty(menuId) ? CommonApi.DeleteMenu(token) : CommonApi.DeleteMenuConditional(token, menuId);
                var json   = new
                {
                    error   = result.errmsg != "ok",
                    message = result.errmsg
                };

                return(Json(json, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                var json = new { error = true, message = ex.Message };
                return(Json(json, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 4
0
        public void DeleteMenuTest()
        {
            var accessToken = AccessTokenContainer.GetToken(_corpId, _corpSecret);

            var result = CommonApi.DeleteMenu(accessToken, _agentId);

            Assert.IsNotNull(result);
            Assert.AreEqual("ok", result.errmsg);
        }
Ejemplo n.º 5
0
        public WorkJsonResult WX_DelMenu(int agentId)
        {
            WorkJsonResult Ret = new WorkJsonResult();

            if (Qyinfo.IsUseWX == "Y")
            {
                Ret = CommonApi.DeleteMenu(GetToken(agentId.ToString()), agentId);
            }
            return(Ret);
        }
Ejemplo n.º 6
0
        public void DeleteMenuTest()
        {
            return;//删除之后,GetMenu将返回null

            LoadToken();

            var result = CommonApi.DeleteMenu(tokenResult.access_token);

            Assert.IsNotNull(result);
            Assert.AreEqual("ok", result.errmsg);
        }
Ejemplo n.º 7
0
        public void DeleteMenuTest()
        {
            return;//已经通过测试,删除之后,GetMenu将返回null

            var accessToken = AccessTokenContainer.GetAccessToken(_appId);

            var result = CommonApi.DeleteMenu(accessToken);

            Assert.IsNotNull(result);
            Assert.AreEqual("ok", result.errmsg);
        }
Ejemplo n.º 8
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;
            }
        }
Ejemplo n.º 9
0
 public ActionResult DeleteMenu(string token)
 {
     try
     {
         var result = CommonApi.DeleteMenu(token);
         var json   = new
         {
             Success = result.errmsg == "ok",
             Message = result.errmsg
         };
         return(Json(json, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         var json = new { Success = false, Message = ex.Message };
         return(Json(json, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 10
0
 public ActionResult DeleteMenu(string token)
 {
     try
     {
         WxJsonResult result = CommonApi.DeleteMenu(token);
         var          data   = new {
             Success = result.errmsg == "ok",
             Message = result.errmsg
         };
         return(base.Json(data, JsonRequestBehavior.AllowGet));
     }
     catch (Exception exception)
     {
         var type2 = new {
             Success = false,
             Message = exception.Message
         };
         return(base.Json(type2, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 11
0
 public ActionResult DeleteMenu(string token)
 {
     try
     {
         var result = CommonApi.DeleteMenu(token);
         var json   = new
         {
             Success = result.errmsg == "ok",
             Message = result.errmsg
         };
         return(Json(json, new JsonSerializerSettings()
         {
             ContractResolver = new DefaultContractResolver()
         }));
     }
     catch (Exception ex)
     {
         var json = new { Success = false, Message = ex.Message };
         return(Json(json, new JsonSerializerSettings()
         {
             ContractResolver = new DefaultContractResolver()
         }));
     }
 }
Ejemplo n.º 12
0
        public async Task DeleteMenu()
        {
            string accessToken = await GetAccessToken();

            var result = CommonApi.DeleteMenu(accessToken);
        }
Ejemplo n.º 13
0
 public static void DeleteMenuDefault()
 {
     var result = CommonApi.DeleteMenu(MPBasicSetting.AppID);
 }
Ejemplo n.º 14
0
        private string DeleteWXMenu(Menu model)
        {
            try
            {
                var token = AccessTokenContainer.TryGetAccessToken(AppConfig.Instance.AppId, AppConfig.Instance.AppSecret);
                if (!string.IsNullOrEmpty(token))
                {
                    var bg = new ButtonGroup();

                    var menus = _menuDal.GetAll <Menu>().ToList();
                    var _menu = menus.FirstOrDefault(p => p.Id == model.Id);
                    if (_menu != null)
                    {
                        menus.Remove(_menu);
                    }

                    if (menus.Count() == 0)
                    {
                        var r = CommonApi.DeleteMenu(token);
                        return(r.errcode == Senparc.Weixin.ReturnCode.请求成功 ? "" : r.errmsg);
                    }

                    foreach (var m in menus.Where(p => p.MenuLevel == 1))
                    {
                        if (menus.FirstOrDefault(p => p.MenuParentId == m.Id) != null)
                        {
                            var subBtn = new SubButton
                            {
                                name = m.MenuName
                            };

                            menus.Where(p => p.MenuParentId == m.Id).ToList().ForEach(p =>
                            {
                                subBtn.sub_button.Add(new SingleViewButton
                                {
                                    name = p.MenuName,
                                    url  = p.Url
                                });
                            });

                            bg.button.Add(subBtn);
                        }
                        else
                        {
                            bg.button.Add(new SingleViewButton
                            {
                                name = m.MenuName,
                                url  = m.Url
                            });
                        }
                    }

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

                    return(result.errcode == Senparc.Weixin.ReturnCode.请求成功 ? "" : result.errmsg);
                }
                else
                {
                    return("获取微信token失败");
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
Ejemplo n.º 15
0
        public ActionResult AddMenu()
        {
            //获取accessToken
            var accessToken = AccessTokenContainer.TryGetAccessToken(AppId, AppSecret);
            //删除原有菜单
            var result1 = CommonApi.DeleteMenu(accessToken);

            //创建新菜单
            ButtonGroup bg = new ButtonGroup();

            //第1个一级菜单
            var firstButton = new SubButton()
            {
                name = "Ai我家"
            };

            firstButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinHome/Index",
                name = "首页"
            });
            firstButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinPropertyNotice/PropertyNoticeList/",
                name = "物业公告"
            });
            firstButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinQuestion/QuestionList/",
                name = "上报问题"
            });
            firstButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinExpenseNotice/ExpenseNoticeList/",
                name = "缴费通知"
            });
            firstButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinTopic/Index/",
                name = "社区话题"
            });
            bg.button.Add(firstButton);

            //第2个一级菜单
            var secondButton = new SingleViewButton()
            {
                url  = "http://weidian.com/s/382033745?wfr=c/",
                name = "绿色直供"
            };

            bg.button.Add(secondButton);

            //第3个一级菜单
            var threeButton = new SubButton()
            {
                name = "更多"
            };

            threeButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinProduct/Index/",
                name = "产品介绍"
            });
            threeButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinProduct/QrCodeShare/",
                name = "分享友邻"
            });
            threeButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinSocialCircle/Index/",
                name = "业主圈子"
            });
            threeButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinPersonalCenter/Index/",
                name = "个人中心"
            });
            threeButton.sub_button.Add(new SingleViewButton()
            {
                url  = "http://v.homekeeper.com.cn/WeixinIdentityBind/Index/",
                name = "绑定小区"
            });
            bg.button.Add(threeButton);

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

            return(Content("创建菜单成功,请查看。" + result1.errmsg + "+44" + result2.errmsg));
        }
        public QyJsonResult Push(int appId)
        {
            var categories = CommonService.lstCategory.Where(x => x.AppId == appId && (x.CategoryCode == null || !x.CategoryCode.EndsWith(_endFix, true, CultureInfo.CurrentCulture)) && (x.IsDeleted == null || x.IsDeleted == false)).OrderBy(x => x.CategoryOrder).Select(x =>
            {
                var function = x.Function.IsNullOrEmpty() ? null : JsonHelper.FromJson <ButtonReturnType>(x.Function);
                return(new CategroyChild
                {
                    Id = x.Id,
                    key = x.CategoryCode,
                    name = function == null ? x.CategoryName : function.Button.name,
                    sub_button = new List <MenuFull_RootButton>(),
                    //跳转到新闻列表本身也是view, 因此在同步时将其type改为view.
                    type = function == null ? null : "view-news-list".Equals(function.Button.type) ? "view" : function.Button.type,
                    ParentId = x.ParentCode.GetValueOrDefault(),
                    order = x.CategoryOrder.GetValueOrDefault(),
                    url = function == null ? null : function.Button.url,
                });
            }).ToList();

            foreach (var category in categories)
            {
                if ("click".Equals(category.type))
                {
                    var key   = category.key.Split(':')[0];
                    int keyId = default(int);
                    if (int.TryParse(key, out keyId))
                    {
                        var autoReply = _autoReplyService.GetDetail(keyId);
                        if (autoReply == null)
                        {
                            throw new System.Exception(string.Format("{0} 的口令不存在, 请重新选择.", category.name));
                        }
                        if ((int)AutoReplyKeywordEnum.MENU == autoReply.KeywordType &&
                            null != autoReply.Keywords && autoReply.Keywords.Count > 0)
                        {
                            if ((int)AutoReplyMenuEnum.SCAN_PUSH_EVENT == autoReply.Keywords[0].SecondaryType)
                            {
                                category.type = "scancode_push";
                            }
                            else if ((int)AutoReplyMenuEnum.SCAN_WITH_PROMPT == autoReply.Keywords[0].SecondaryType)
                            {
                                category.type = "scancode_waitmsg";
                            }
                        }
                    }
                    else
                    {
                        throw new System.Exception(string.Format("请重新选择 {0} 的口令.", category.key));
                    }
                }
            }

            var buttons = new List <MenuFull_RootButton>();

            categories.Where(x => x.ParentId == 0).ToList().ForEach(x => GenerateMenuHierarchy(categories, x, buttons));

            var config = WeChatCommonService.GetWeChatConfigByID(appId);

            //修改
            if (categories != null && categories.Count > 0)
            {
                var menu = new GetMenuResultFull {
                    menu = new MenuFull_ButtonGroup {
                        button = buttons
                    }
                };
                var btnMenus = CommonApi.GetMenuFromJsonResult(menu).menu;
                if (config.IsCorp.HasValue && !config.IsCorp.Value)
                {
                    var result = Innocellence.Weixin.MP.CommonAPIs.CommonApi.CreateMenu(config.WeixinCorpId, config.WeixinCorpSecret, btnMenus);
                    return(new QyJsonResult()
                    {
                        errcode = (ReturnCode_QY)result.errcode, errmsg = result.errmsg
                    });
                }
                else
                {
                    var result = CommonApi.CreateMenu(WeChatCommonService.GetWeiXinToken(appId), int.Parse(config.WeixinAppId), btnMenus);
                    return(result);
                }
            }
            //删除
            else
            {
                if (config.IsCorp.HasValue && !config.IsCorp.Value)
                {
                    var result = Innocellence.Weixin.MP.CommonAPIs.CommonApi.DeleteMenu(config.WeixinCorpId, config.WeixinCorpSecret);
                    return(new QyJsonResult()
                    {
                        errcode = (ReturnCode_QY)result.errcode, errmsg = result.errmsg
                    });
                }
                else
                {
                    var result = CommonApi.DeleteMenu(WeChatCommonService.GetWeiXinToken(appId), int.Parse(config.WeixinAppId));
                    return(result);
                }
            }
        }
Ejemplo n.º 17
0
 public WxJsonResult DeleteMenu(Wx_App app)
 {
     return(CommonApi.DeleteMenu(app.AppId));
 }