In diesem Beispiel wird das Hinzufügen und Löschmanagement von WeChat -Menüs im Verwaltungshintergrund realisiert.
1. Zuerst müssen wir eine neue Datenbanktabelle erstellen, um Menüelemente zu speichern
Die Felder, die enthalten sein können
Beachten Sie, dass, wenn Menüendaten im Hintergrund gespeichert sind, ParentID = -1 das Menü der ersten Ebene ist, oder ParentID ist die ID des Menüs erster Ebene als Menü der zweiten Ebene im Menü der ersten Ebene.
2. Während des Einstellungsmenüs müssen Sie die Menü -String an die WeChat -Schnittstelle übergeben, damit Sie zuerst die Zeichenfolge spleißen und einen CreateMenu () im Hintergrund definieren müssen.
public bool CreateMenu () {String -Menüjson = ""; // Hier ist der Standard-ParentID = -1 das äußerste Menü, isactive = 1 ist die Anzeige, ResponType = 1 ist der klicktype dataTable dtamenu = service.selectDatable ("id, name, reagieren, reaktions, jSONS, URL", "weixinmenu", "parentId = -1 und isctive = 1 ordnen Sie mit Sorge"); if (dtamenu.rows.count> 0) {mseujson = "{/" button/": ["; für (int i = 0; i <dtamenu.rows.count; i ++) {dataTable dtbMenu = service.SelectDatable ("id, name, reagieren, jSONSE, URL", WX, "PARTID =" + DTAMENU.ROWS [i] [id "id" id ". if (dtbMenu.rows.count> 0) {Menüjson + = "{/" name/":/" " + dtamenu.rows [i] [" name "]. toString () +"/",/" sub_button/": ["; für (int j = 0; j <dtbMenu.rows.count; j ++) {if (convert.toint32 (dtbMenu.rows [j] ["ResponseType"]) == 2) {Menüjson += "{/" type/":/" view/",/" Name/"". + "/",/"url/":/"" + dtbMenu.rows [j] ["jSONSON"]. ToString () + "/"}, "; } else {Menüjson + = "{/" Typ/":/" klick/",/" name/":/" " + dtbmenu.rows [j] [" name "]. toString () +"/",/" key/":/" eventKey_ " + dtbmenu.rows [j] [" id "]. }} mseujson = mseujson.trimend (','); Menüjson += "]},"; } else {// if (convert.toint32 (dtamenu.rows [i] ["reagestyp"] dtamenu.rows [i] ["j 2N). ToString () +"/"},"; //} // else // {// mseujson + = "{/" type/":/" klick/",/" name/":/" " + dtamenu.rows [i] [" name "]. toString () +"/",/" key/":/" eventKey_ " + dtamenu.Rows [i] [id". //}} dtbMenu.dispose (); } dtamenu.dispose (); mseujson = mseujson.trimend (','); Menüjson += "]}"; Menüjson = Menüjson.trim (); Return RequestZMtOcRectment (Menüjson); } else {return false; }}3. Nachdem Sie die Menü -Zeichenfolge erhalten haben, rufen Sie die WeChat -Schnittstelle an, um das Menü zu erstellen. Sie müssen zuerst den Bewertungs -Token erhalten. Informationen zum Bewertungstoken finden Sie unter: Erhalten Sie AccessToken
/// <summary> /// Anfrage an den WeChat -Server, um ein benutzerdefiniertes Menü zu erstellen /// </summary> /// <param name = "j 2NSONS"> </param> /// <returns> </returns> /// private bool, accessozMtmtocRectment (String JSONSON) {try {var accessToken = "// Zugriff auf die AccessToken AccessToken Accessoken Accessoken Accessoken Accessoken Accessoken Accessoken Accessoken Accessoken AccessOwn -Zugriffe. Im Allgemeinen können Sie die Datenbank am Anfang erhalten und sie das nächste Mal aus der Datenbank erhalten. Beachten Sie, dass das AccessToken für 7200 Sekunden gültig ist // eine httpwebRequest-Anforderung String interfaceurl = "https://api.weixin.qq.com/cgi-in/menu/create?access_token=" + accessToken; HttpwebRequest request = (httpwebRequest) webRequest.create (interfaceUrl); // Setzen Sie die Verbindungs -Zeitüberschreitungsanforderung. Timeout = 30000; Anfrage.Keepalive = true; Codieren codetype = coding.getEcoding ("utf-8"); request.Headerers.set ("pragma", "no-cache"); request.method = "post"; request.contentType = "application/x-www-form-rencoded"; Request.Useragent = "Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.2; Sv1; Maxthon; .NET CLR 1.1.4322); http stdns"; Request.accept = "Image/GIF, Image/X-Xbitmap, Image/JPEG, Image/PJPEG, Application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */ *"; request.cookiecontainer = new CookieContainer (); byte [] bytes = codetype.getBytes (JSONSON); request.contentLength = bytes.length; Request.AllowAutoredirect = true; // Daten mit (Stream writer = request.getRequestStream ()) {writer.write (bytes, 0, bytes.length) senden; writer.close (); } StringBuilder strb = new StringBuilder (); // Daten verwenden (Stream reader = request.getResponse (). GetResponSestream ()) {StreamReader sr = new streamReader (Reader, Codetype); strb.Append (sr.readtoend ()); sr.close (); reader.close (); } if ((strb.toString (). indexof ("/" errcode/": 42001")! (strb.toString (). indexof ("/" errcode/": 41001")! GEZMACCESSTOOKE (); Return RequestZMtoCrohtment (JSONSON); } else {if (strb.toString () == "{/" errcode/": 0,/" errmsg/":/" ok/"}") {return true; } else {return false; }}} catch (Ausnahme exp) {return false; }}Zusammenfassen
Das obige ist der Beispielcode zum Festlegen eines benutzerdefinierten Menüs für die Entwicklung von WeChat Public Account, die Ihnen vom Herausgeber vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!