首页 > 代码库 > 微信自定义菜单

微信自定义菜单

自己写的构造自定义菜单的方法,虽然有些重复,但毕竟是自己写的感觉更清楚些!各位有什么好的意见指出来呀!

两个类SubButton(子菜单),ParentButton(父级菜单)。

public class ParentButton{  public string name;  public List<SubButton> list;}public class SubButton{  public string name;  public string type;  public string url;  public string key;}

 

构造好的菜单传给GetCustomMenuJsonData得到正确的Json格式数据。

public string GetCustomMenuJsonData(List<ParentButton> list){  string jsonStr = "";  string str = "";  if (list != null && list.Count > 0)  {    foreach (ParentButton parentButton in list)    {      if (parentButton != null)      {        string subStr = "";        if (parentButton.list != null && parentButton.list.Count > 0)        {          foreach (SubButton button in parentButton.list)          {            if (button != null)            {              if (subStr != "")              {                subStr += ",";              }              if (button.type == "click")              {                subStr += "{ \"type\":\"click\", \"name\":\"" + button.name + "\",\"key\":\"" + button.key + "\" }";              }              else              {                subStr += "{ \"type\":\"view\", \"name\":\"" + button.name + "\",\"url\":\"" + button.url + "\" }";              }              }            }          }          if (str != "")          {            str += ",";          }          str += " {\"name\":\"" + parentButton.name + "\", \"sub_button\":[" + subStr + "]}";        }      }      jsonStr = ("{ \"button\":[" + str + "]}");    }  return jsonStr;  }
View Code

 

举例:

Publish List<ParentButton> CreateCustomButton(){ParentButton button1 = new ParentButton();List<SubButton> subButtonList1 = new List<SubButton>();SubButton subButton = new SubButton();subButton.name = "百度";subButton.type = "view";subButton.url = "www.baidu.com";subButtonList1.Add(subButton);subButton = new SubButton();subButton.name = "谷歌";subButton.type = "view";subButton.url = "www.google.com";subButtonList1.Add(subButton);button1.name = "搜索"; button1.list = subButtonList1;ParentButton button2 = new ParentButton();button2.name="其他";List<ParentButton> list = new List<ParentButton>();list.Add(button1);list.Add(button2);return list;}
View Code

 

得到json数据后通过

https://api.wexin.qq.com/cgi-bin/token?grant_type=client_credential&appid=AppId&secret=AppSecret

获取到accesstoken,然后通过

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=AccessToken

提交自定义菜单的json数据,生成菜单!

  

微信自定义菜单