自己写的构造自定义菜单的方法,虽然有些重复,但毕竟是自己写的感觉更清楚些!各位有什么好的意见指出来呀!
两个类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格式数据。
logs_code_hide('ca5f020d-add6-45bb-bf96-5fcbc46327c5',event)" src="/Upload/Images/2014111117/2B1B950FA3DF188F.gif" alt="" />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数据,生成菜单!