自己写的构造自定义菜单的方法,虽然有些重复,但毕竟是自己写的感觉更清楚些!各位有什么好的意见指出来呀!
两个类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数据,生成菜单!
新闻热点
疑难解答