Este ejemplo es realizar la gestión de adición y eliminación de los menús de WeChat en los antecedentes de gestión.
1. Primero necesitamos crear una nueva tabla de base de datos para almacenar elementos del menú
Los campos que se pueden incluir son ID, ID de clase principal, nombre, ordenación, si se debe mostrar, escribir (ver, hacer clic), enlace, completar
Tenga en cuenta que cuando los datos del menú se almacenan en segundo plano, ParentId = -1 es el menú de primer nivel, o ParentId es la ID del menú de primer nivel como el menú de segundo nivel en el menú de primer nivel.
2. Durante el menú de configuración, debe pasar la cadena Menujson a la interfaz WeChat, por lo que primero debe empalmar la cadena y definir un creatmenu () en segundo plano.
public bool createMenu () {String menujson = ""; // Aquí el PadreID predeterminado = -1 es el menú más externo, IsActive = 1 es la pantalla, ResponseType = 1 es el tipo de clic dataTable dtamenu = servicio.selectdatatable ("id, nombre, responsabilidad, jsonstr, url", "weixinmenu", "parentid = -1 e isactive = 1 orden por clasificación");; if (dtamenu.rows.count> 0) {menújson = "{/" botón/": ["; for (int i = 0; i <dtamenu.rows.count; i ++) {dataTable dtbmenu = servicio.selectDatable ("id, nombre, responsabilidad, jsonstr, url", wx, "parentId =" + dtamenu.rows [i] ["id"]. toString () + "e Isactive = 1 orden por orden"); 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] ["responsableype"]) == 2) {menujson += "{/" type/":/" ver/",/" name/":/" " +dtbmenu.Rows [j] [" name/"name". + "/",/"url/":/"" + dtbmenu.rows [j] ["jsonstr"]. toString () + "/"}, "; } else {menújson + = "{/" type/":/" clic/",/" name/":/" " + dtbmenu.rows [j] [" name "]. toString () +"/"/" key/":/" eventKey_ " + dtbmenu.rows [j] [" id "]. tostring () +"/"/"}, "},"; ";"; ";"; ";" }} menújson = menújson.trimend (','); menújson += "]},"; } else {// if (convert.toint32 (dtamenu.rows [i] ["responsableype"]) == 2) // {menujson + = "{/" type/":/" ver/",/" name/":/" " + dtamenu.Rows [i] [" name " dtamenu.rows [i] ["jsonstr"]. toString () + "/"}, "; //} // else // {// menújson + = "{/" type/":/" click/",/" name/":/" " + dtamenu.rows [i] [" name "]. toString () +"/"/" key/":/" eventKey_ " + dtamenu.rows [i] [" Id "]. Tostring () +")/";"; ";" //}} dtbmenu.dispose (); } dtamenu.dispose (); menújson = menújson.trimend (','); menújson += "]}"; menújson = menújson.trim (); devolver requestzmtocreatment (menújson); } else {return false; }}3. Después de obtener la cadena Menujson, llame a la interfaz WeChat para crear el menú. Primero debe obtener el token de evaluación. Para el token de evaluación, consulte: Obtenga AccessToken
/// <summary> /// Solicitar al servidor WeChat para crear un menú personalizado /// </summary> /// <param name = "jsonstr"> </param> /// <<churns> </devuelve> /// private bool requestzmtocreatment (string jSonstr) {try {var accesstoken = ""; // AccessTourking debe ser excEptions Releded. En general, puede obtener la base de datos al principio y obtenerla de la base de datos la próxima vez. Tenga en cuenta que el accessToken es válido para 7200 segundos // declarar una solicitud httpwebrequest string interfaceUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + accessToken; HttpwebRequest request = (httpwebRequest) webRequest.create (interfaceUrl); // Establecer la solicitud de tiempo de espera de conexión. TIMEOut = 30000; request.keepalive = true; Codificación 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 (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, aplicación/vnd.ms-excel, aplicación/vnd.mspowerpoint, application/msword, */ *"; request.cookieContainer = new Cookiecontainer (); byte [] bytes = encodeType.getBytes (jsonstr); request.contentLength = bytes.length; request. AllOWAUTORDIRECT = True; // Enviar datos usando (stream escritor = request.getRequestStream ()) {Writer.Write (bytes, 0, bytes.length); escritor.close (); } StringBuilder strb = new StringBuilder (); // Recibir datos usando (Stream Reader = request.getResponse (). GetResponseSteam ()) {StreamReader Sr = new StreamReader (lector, encodeType); strb.append (Sr.ReadToend ()); sr.close (); lector.close (); } if ((strb.ToString (). indexOf ("/" errcode/": 42001")! = -1) || (strb.ToString (). indexOf ("/" errcode/": 40001")! = -1) || (strb.ToString (). indexOf ("/" errcode/": 40014")! (strb.ToString (). indexOf ("/" errcode/": 41001")! = -1)) // access_token {// accessToken = getAccessToken (); getzmaccessToken (); Return SolicmTocreatment (JSonstr); } else {if (strb.ToString () == "{/" errcode/": 0,/" errmsg/":/" ok/"}") {return true; } else {return false; }}} capt (excepción exp) {return false; }}Resumir
El anterior es el código de ejemplo para establecer un menú personalizado para el desarrollo de cuentas públicas de WeChat presentada por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!