Этот пример состоит в том, чтобы реализовать управление добавлением и удалением меню WeChat в правом управления.
1. Сначала нам нужно создать новую таблицу баз данных для хранения элементов меню
Поля, которые могут быть включены, - это идентификатор, идентификатор родительского класса, имя, сортировка, будь то отображение, тип (просмотр, нажмите), ссылка, добавление
Обратите внимание, что когда данные меню хранятся в фоновом режиме, ParentId = -1 является меню первого уровня, или ParentId является идентификатором меню первого уровня в качестве меню второго уровня в меню первого уровня.
2. Во время меню настройки вам нужно передать строку Menujson в интерфейс WeChat, поэтому вы должны сначала разбить строку и определить Creatmenu () в заднем плане.
public bool creatmenu () {String menujson = ""; // Здесь по умолчанию parentId = -1 является самым внешним меню, isactive = 1-это дисплей, actrassType = 1-type type type dataTable dtamenu = service.selectdatable («id, name, respenceType, jsonstr, url», «weixinmenu», «parentId = -1 и isActive = 1 порядок»); if (dtamenu.rows.count> 0) {menujson = "{/" button/": ["; "; for (int i = 0; i <dtamenu.rows.count; i ++) {datatable dtbmenu = service.selectdatable ("id, имя, respencetype, jsonstr, url", wx, "parentid =" + dtamenu.rows [i] ["id"]. if (dtbmenu.rows.count> 0) {menujson + = "{/" name/":/" " + dtamenu.rows [i] [" name "]. toString () +"/",/" sub_button/": ["; "; for (int j = 0; j <dtbmenu.rows.count; j ++) {if (convert.toint32 (dtbmenu.rows [j] ["actiontype"]) == 2) {menujson += "{/" type/":/" view/"" name/":/" " dtbmenu.rows [j] ["name"]. toString () + "/",/"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. dtamenu.rows [i] ["jsonstr"]. toString () + "/"}, "; //} // else // {// menujson + = "{/" type/":/" click/",/" name/":/" " + dtamenu.rows [i] [" name "]. toString () +"/",/" key/":/" evenceKey_ " + dtamenu.Rows [i] [ID"]. //}} dtbmenu.dispose (); } dtamenu.dispose (); menujson = menujson.trimend (','); menujson += "]}"; menujson = menujson.trim (); return requestzmtocreatment (menujson); } else {return false; }}3. После получения строки Menujson вызовите интерфейс WeChat, чтобы создать меню. Вам нужно сначала получить токен оценки. Для оценки токена, пожалуйста, см.
/// <summary> /// Запрос на сервер WeChat для создания пользовательского меню /// </summary> /// <param name = "jsonstr"> </param> /// <return> </return> /// private bool requestzmtocreatment (string jsontr) {try {var accostoken = "" // accesstokenment (String jsonstr) {try {var accostoken = "; // accesstokenment. Как правило, вы можете получить базу данных в начале и получить ее из базы данных в следующий раз. Обратите внимание, что AccessToken действителен в течение 7200 секунд // объявить httpwebrequest string interfaceurl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + accesstoken; Httpwebrequest request = (httpwebrequest) webrequest.create (interfaceurl); // Установите запрос времени -аута подключения.timeout = 30000; request.keepalive = true; Кодирование encodeType = encoding.getEncoding ("utf-8"); request.headers.set ("pragma", "no-cache"); request.method = "post"; request.contenttype = "application/x-www-form-urlencoded"; request.useragent = "mozilla/4.0 (совместимо; 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 = encodeType.getBytes (jsonstr); request.contentlength = bytes.length; request.allowautoredirect = true; // отправлять данные с использованием (stream writer = request.getRequestStream ()) {writer.write (bytes, 0, bytes.length); writer.close (); } StringBuilder strb = new StringBuilder (); // получение данных с использованием (Stream Reader = request.getResponse (). GetResponseStream ()) {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/": 4001)") (strb.toString (). indexof ("/" errcode/": 41001")! = -1)) // access_token error {// accessToken = getAccessToken (); getzmaccesstoken (); return requestzmtocreatment (jsonstr); } else {if (strb.toString () == "{/" errcode/": 0,/" errmsg/":/" ok/"}") {return true; } else {return false; }}} catch (Exception exp) {return false; }}Суммировать
Выше приведен пример кода для настройки пользовательского меню для разработки публичных аккаунтов WeChat, введенных вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!