/// <summary> /// 生成微信客户端菜单 /// </summary> /// <returns></returns> private string CreateWeixinClientMenu() { //if (currentUserInfo.WeixinIsEnableMenu == null || currentUserInfo.WeixinIsEnableMenu == 0) //{ // return "请先在 微信平台-公众号配置 页面中启用自定义菜单。"; //} //if (string.IsNullOrEmpty(currentUserInfo.WeixinAppId) || string.IsNullOrEmpty(currentUserInfo.WeixinAppSecret)) //{ // return "请先在 微信平台-公众号配置 页面中填写 AppId与 AppSecret"; //} // //获取AccessToken string accessToken = bllWeixin.GetAccessToken(); if (accessToken == string.Empty) { return("AppId 或AppSecret 不正确,请在 微信公众号-公众号接口配置 页面中检查"); } //获取AccessToken List <WeixinMenu> lstFirstLevel = bllWeixin.GetList <WeixinMenu>(string.Format("UserID='{0}' and PreID=0", currentUserInfo.UserID)).OrderBy(p => p.MenuSort).ToList(); //构造菜单字符串 StringBuilder sbMenu = new StringBuilder(); sbMenu.Append("{\"button\":["); for (int i = 0; i < lstFirstLevel.Count; i++) { List <WeixinMenu> lstSendcondLevel = bllWeixin.GetList <WeixinMenu>(string.Format("UserID='{0}' and PreID={1}", currentUserInfo.UserID, lstFirstLevel[i].MenuID)).OrderByDescending(p => p.MenuSort).ToList(); sbMenu.Append("{"); if (lstSendcondLevel.Count == 0)//无子菜单 { sbMenu.AppendFormat("\"type\":\"{0}\",", lstFirstLevel[i].Type.Trim()); sbMenu.AppendFormat("\"name\":\"{0}\",", lstFirstLevel[i].NodeName); if (lstFirstLevel[i].Type.Trim().Equals("click")) { sbMenu.AppendFormat("\"key\":\"{0}\"", lstFirstLevel[i].KeyOrUrl); } else { sbMenu.AppendFormat("\"url\":\"{0}\"", lstFirstLevel[i].KeyOrUrl); } } else//有子菜单 { sbMenu.AppendFormat("\"name\":\"{0}\",", lstFirstLevel[i].NodeName); sbMenu.Append("\"sub_button\":["); for (int j = 0; j < lstSendcondLevel.Count; j++) { sbMenu.Append("{"); sbMenu.AppendFormat("\"type\":\"{0}\",", lstSendcondLevel[j].Type.Trim()); sbMenu.AppendFormat("\"name\":\"{0}\",", lstSendcondLevel[j].NodeName); if (lstSendcondLevel[j].Type.Trim().Equals("click")) { sbMenu.AppendFormat("\"key\":\"{0}\"", lstSendcondLevel[j].KeyOrUrl); } else { sbMenu.AppendFormat("\"url\":\"{0}\"", lstSendcondLevel[j].KeyOrUrl); } sbMenu.Append("}"); if (j < lstSendcondLevel.Count - 1) { sbMenu.Append(","); } } sbMenu.Append("]"); } sbMenu.Append("}"); if (i < lstFirstLevel.Count - 1) { sbMenu.Append(","); } } sbMenu.Append("]}"); //构造菜单字符串 WeixinAccessToken result = bllWeixin.CreateWeixinClientMenu(accessToken, sbMenu.ToString()); return(bllWeixin.GetCodeMessage(result.errcode)); }