Cet exemple est de réaliser la gestion de l'ajout et de la suppression des menus WeChat dans le contexte de la gestion.
1. Nous devons d'abord créer une nouvelle table de base de données pour stocker les éléments de menu
Les champs qui peuvent être inclus sont l'ID, l'identifiant de la classe parent, le nom, le tri, s'il faut afficher, taper (afficher, cliquer), lien, addDate
Notez que lorsque les données de menu de menu sont stockées en arrière-plan, Parentid = -1 est le menu de premier niveau, ou Parentid est l'ID du menu de premier niveau en tant que menu de deuxième niveau dans le menu de premier niveau.
2. Pendant le menu de réglage, vous devez passer la chaîne MenuJSON à l'interface WeChat, vous devez donc d'abord épisser la chaîne et définir un créationnu () en arrière-plan.
public bool CreatMenu () {String menujson = ""; // Ici, le parentid par défaut = -1 est le menu le plus extérieur, isActive = 1 est l'affichage, ResponseType = 1 est le type de clic dtamenu = service.selectDataTable ("id, nom, resensetype, jsonstr, url", weixinmenu "," parentid = -1 et isactive = 1 ordre par sort "); if (dtamenu.Rows.Count> 0) {menujson = "{/" Button / ": ["; pour (int i = 0; i <dtamenu.Rows.Count; i ++) {dataTable dtbMenu = service.SelectDataTable ("id, name, revensetype, jsonstr, url", wx, "parentid =" + dtamenu.rows [i] ["id"]. toString () + "et est-ce if (dtbMenu.Rows.Count> 0) {menujson + = "{/" name / ": /" "+ dtamenu.rows [i] [" name "]. toString () +" / ", /" sub_button / ": [";; pour (int j = 0; j <dtbMenu.Rows.Count; j ++) {if (convert.toint32 (dtbmenu.rows [J] ["ResponseType"]) == 2) {menujson + = "{/" type / ": /" View / ", /" name / ":" "+ dtbMenu. + "/", / "url /": / "" + dtbMenu.Rows [j] ["jsonstr"]. toString () + "/"}, "; } else {menujson + = "{/" type / ": /" click / ", /" name / ": /" "+ dtbmenu.rows [j] [" name "]. toString () +" / ", /" key / ": /" eventKey_ "+ dtbMenu.rows [j] [" id "]. }} menujson = menujson.triMend (','); 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 "]. toString () +" / ", /" key / ": /" eventkey_ "+ dtamenu.rows [i] [" "]. //}} dtbmenu.dispose (); } dtamenu.dispose (); menujson = menujson.triMend (','); menujson + = "]}"; menujson = menujson.trim (); return requestZmtOCreatment (menujson); } else {return false; }}3. Après avoir obtenu la chaîne Menujson, appelez l'interface WeChat pour créer le menu. Vous devez d'abord obtenir le jeton d'évaluation. Pour le jeton d'évaluation, veuillez vous référer à: Obtenir AccessToken
/// <summary> /// Demande au serveur WECHAT pour créer un menu personnalisé /// </summary> /// <param name = "jsonstr"> </ param> /// <returns> </ returns> /// private bool requestzmtokereat (String JSontr) {try {var AccessToken = ""; // accessToken doit être rétraité des exceptions. Généralement, vous pouvez obtenir la base de données au début et l'obtenir de la base de données la prochaine fois. Notez que l'AccessToken est valide pendant 7200 secondes // Déclarer une chaîne de demande httpwebRequequest interfaceurl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + AccessToken; HttpwebRequest request = (httpwebRequest) webRequest.create (interfaceurl); // Définissez la demande de délai de connexion.Timeout = 30000; request.keepalive = true; Codage encodetype = coding.getEncoding ("utf-8"); request.heders.set ("pragma", "non-cache"); request.method = "post"; request.ContentType = "Application / X-Www-Form-Urlencoded"; request.UserAgent = "Mozilla / 4.0 (compatible; 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 (); octet [] bytes = encodetype.getBytes (jsonstr); request.contentLength = bytes.length; request.AllowAutoreDirect = true; // Envoyer des données à l'aide (stream writer = request.getRequestStream ()) {writer.write (bytes, 0, bytes.length); écrivain.close (); } StringBuilder strb = new StringBuilder (); // reçoit des données à l'aide (Stream Reader = request.getResponse (). GetResponSeRam ()) {streamReader sr = new StreamReader (Reader, Encodetype); strb.append (sr.readtoend ()); sr.close (); Reader.Close (); } if ((strb.toString (). indexof ("/" errcode / ": 42001")! = -1) || (strb.toString (). indexof ("/" errCode / ": 40001")! = -1) || (strb.tostring (). indexof ("/" errcode / ": 40014")! = -1) || (strb.toString (). indexof ("/" errcode / ": 41001")! = -1)) // Error access_token {// AccessToken = getAccessToken (); getzmaccesstoken (); RETOUR DEMANDZMTOCREAT (JSONTON); } else {if (strb.toString () == "{/" errcode / ": 0, /" errmsg / ": /" ok / "}") {return true; } else {return false; }}} catch (exception exp) {return false; }}Résumer
Ce qui précède est l'exemple de code pour définir un menu personnalisé pour le développement de compte public WeChat qui vous est présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!