Este exemplo é realizar a adição e o gerenciamento de exclusão dos menus do WeChat no histórico de gerenciamento.
1. Primeiro, precisamos criar uma nova tabela de banco de dados para armazenar itens de menu
Os campos que podem ser incluídos são ID, ID da classe pai, nome, classificação, exibição, tipo (visualização, clique), link, addDate
Observe que quando os dados do menu do menu são armazenados em segundo plano, ParentId = -1 é o menu de primeiro nível, ou ParentId é o ID do menu de primeiro nível como o menu de segundo nível no menu de primeiro nível.
2. Durante o menu de configuração, você precisa passar a string do menujson para a interface do WeChat, para que você deve primeiro consumir a string e definir um cretMenu () no plano de fundo.
public bool cretMenu () {string menujson = ""; // Aqui, o padrão parentid = -1 é o menu mais externo, isactive = 1 é o visor, Responsetype = 1 é o tipo de clique que DataTatable dtamenu = service.SelectDatatable ("ID, nome, ResponseType, JSonstr, url", "weixinmenu", "ParentId = -1 e Isactive = 1 Ordem"); if (dtamenu.rows.count> 0) {menujson = "{/" botão/": ["; para (int i = 0; i <dtamenu.rows.count; i ++) {datatable dtbmenu = service.selectDatatable ("id, nome, responsabilidade, jSonstr, url", wx, "parentid =" + dtamenu.rows [i] ["id"]. if (dtbmenu.rows.count> 0) {menujson + = "{/" name/":/" " + dtamenu.rows [i] [" name "]. tostring () +"/",/" sub_button/": ["; para (int j = 0; j <dtbmenu.rows.count; j ++) {if (convert.toint32 (dtbmenu.rows [j] ["ResponseType"]) == 2) {Menujson += "{/" type/":/" view/",/" name/":/" ":"/"dt (". + "/",/"url/":/"" + dtbmenu.rows [j] ["jSonstr"]. ToString () + "/"}, "; } else {menujson + = "{/" type/":/" click/",/" name/":/" " + dtbmenu.Rows [j] [" name "]. }} MENUJSON = MENUJSON.TIMEND (','); MENUJSON += "]}"; } else {// if (convert.toint32 (dtamenu.rows [i] ["ResponseType"]) == 2) // {Menujson + = "{/" type/":/" view/"/" name/":/" " + dtamenu.rows [i] [" name "]. dtamenu.rows [i] ["jSonstr"]. tostring () + "/"} "; //} // else // {// menujson + = "{/" type/":/" click/",/" name/":/" "" + dtamenu.rows [i] ["name"]. //}} dtbmenu.dispose (); } dtamenu.dispose (); MENUJSON = MENUJSON.TIMEND (','); MENUJSON += "]}"; MENUJSON = MENUJSON.TRIM (); retornar requestzmtocreatment (menujson); } else {return false; }}3. Depois de obter a sequência do menujson, ligue para a interface do WeChat para criar o menu. Você precisa obter o token de avaliação primeiro. Para o token de avaliação, consulte: Obtenha o AccessToken
/// <summary> /// Solicitar ao servidor WeChat para criar um menu personalizado /// </summary> /// <param name = "jSonstr"> </param> /// </returns> </returns> /// private bool requestzmtocreatment (string jSonstr) {try {var AccessToken = "; Geralmente, você pode obter o banco de dados no início e obtê -lo no banco de dados na próxima vez. Observe que o AccessToken é válido por 7200 segundos // declara uma solicitação httpwebrequest string interfaceurl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + accessToken; Httpwebrequest request = (httpwebrequest) webrequest.create (interfaceurl); // Defina o tempo limite da conexão. request.Keepalive = true; Codificação codEType = coding.getEncoding ("utf-8"); request.Headers.set ("Pragma", "No-Cache"); request.method = "post"; request.ContentType = "Application/x-www-forma-urlncoded"; request.UserAgent = "Mozilla/4.0 (compatível; msie 6.0; Windows nt 5.2; sv1; maxthon; .net clr 1.1.4322); http stdns"; request.accept = "Image/gif, imagem/x-xbitmap, imagem/jpeg, imagem/pjpeg, aplicativo/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */ *"; request.cookieContainer = new CookiecOntainer (); byte [] bytes = codeType.getBytes (JSonstr); request.contentLength = bytes.length; request.allowaUtoredirect = true; // Envie dados usando (stream writer = request.getRequestStream ()) {writer.write (bytes, 0, bytes.length); writer.close (); } Stringbuilder strb = new stringbuilder (); // Receba dados usando (stream leitor = request.getResponse (). GetResponsestream ()) {streamreader sr = new streamReader (leitor, codeType); strb.append (sr.readtoEnd ()); sr.close (); leitor.close (); } if ((strb.toString (). indexOf ("/" errcode/": 42001")! = -1) || (strb.toString (). IndexOf ("/" errcode/": 40001")! = -1) || (strb.ToString (). (strb.toString (). Indexof ("/" errcode/": 41001")! = -1)) // access_token error {// accessToken = getAccessToken (); getzmaccessToken (); retornar requestzmtocreatment (JSonstr); } else {if (strb.toString () == "{/" errcode/": 0,/" errmsg/":/" ok/"}") {return true; } else {return false; }}} catch (Exceção exp) {return false; }}Resumir
O exposto acima é o código de exemplo para definir um menu personalizado para o desenvolvimento de contas públicas do WeChat, introduzido pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!