이 예는 관리 배경에서 WeChat 메뉴의 추가 및 삭제 관리를 실현하는 것입니다.
1. 먼저 메뉴 항목 저장을위한 새 데이터베이스 테이블을 만들어야합니다.
포함 할 수있는 필드는 ID, 상위 클래스 ID, 이름, 정렬, 표시 여부, 유형 (보기, 클릭), 링크, AddDate입니다.
메뉴 메뉴 데이터가 백그라운드에 저장되면 ParentID = -1은 첫 번째 레벨 메뉴이거나 ParentID는 첫 번째 레벨 메뉴에서 두 번째 레벨 메뉴로서 첫 번째 레벨 메뉴의 ID입니다.
2. 설정 메뉴 중에는 Menujson 문자열을 WeChat 인터페이스로 전달해야하므로 먼저 문자열을 스플릿하고 백그라운드에서 Creatmenu ()를 정의해야합니다.
public bool creatmenu () {문자열 menujson = ""; // 여기서 기본적 인 parentID = -1은 가장 바깥 쪽 메뉴, isactive = 1은 디스플레이, responseType = 1은 클릭 유형 DataTable DTAMENU = service.SelectDatAtable ( "id, name, responseType, jsonst, 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.selectDatatable ( "id, name, responsetype, jsong, url", wx, "parentid =" + dtamenu.rows [i] [ "id"]. tostring () + ")); if (dtbmenu.rows.count> 0) {menujson + = "{/"name/":/" " + dtamenu.rows [i] ["name "]. tostring () +"/",/"sub_button/": ["; for (int j = 0; "/",/"url/":/"" + dtbmenu.rows [j] [ "jsonst"]. tostring () + "/"}, "; } else {menujson + = "{/"type/":/"click/", click/",/"name/":/"" + dtbmenu.rows [j] [ "name"]. tostring () + "/",/"key/":/"eventkey_" + dtbmenu.rows [j] [ "id"]. }} menujson = menujson.trimend ( ','); Menujson += "]},"; } else {// if (controll.toint32 (dtamenu.rows [ ""responsethepy "]) == 2) // {menujson + ="{/"type/":/"view/",/"name/":/"" " + dtamenu.rows [" "name"]. toString (),/"/" + " +" + " +" + " +" + " +" + " +" + " + dtamenu.rows ["이름 "] dtamenu.rows [i] [ "JSONST"]. TOSTRING () + "/"}, "; //} // else // {// menujson + = "{/"type/":/"click/",/"name/":/" " + dtamenu.rows [i] ["name "]. tostring () +"/",/"key/":/"eventkey_ " + 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 서버에 사용자 정의 메뉴를 만들기 위해 wechat 서버에 요청 /// </summary> /// <param name = "jsonstal"> </param> /// <returns> </returns> /// private bool requestzmtocreatment (var accesstoken = ""; // accesstoken은 reclements가되어야합니다. 일반적으로 처음에 데이터베이스를 가져 와서 다음에 데이터베이스에서 가져올 수 있습니다. AccessToken은 7200 초 동안 유효합니다. // httpwebrequest 요청 문자열 interfaceurl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + accessToken; httpwebrequest request = (httpwebrequest) webrequest.create (interfaceurl); // 연결 시간 초과 요청을 설정합니다. 타임 아웃 = 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 = "im request.cookiecontainer = 새 CookieContainer (); 바이트 [] bytes = encodetype.getBytes (jsonst); request.contentLength = bytes.length; 요청. // (stream writer = request.getRequestStream ()) {writer.write (bytes, 0, bytes.length)를 사용하여 데이터를 보냅니다. Writer.close (); } StringBuilder strb = new StringBuilder (); // (stream reader = request.getResponse (). getResponsEStream ())을 사용하여 데이터를 수신합니다. strb.append (sr.readtoend ()); sr.close (); reader.close (); } if ((strb.tostring (). indexof ( "/"errcode/": 42001")! = -1) || (strb.toString (). indexof ( "/"errcode/": 40001") || (strb.toString (). indexof ( "/"errcode/": 41001")! = -1)) // access_token error {// accessToken = getAccessToken (); getzmaccesstoken (); return requestzmtocreatment (jsonst); } else {if (strb.toString () == "{/"errcode/": 0,/"errmsg/":/"ok/"}")) {return true; } else {return false; }}} catch (Exception Exp) {return false; }}요약
위는 편집자가 귀하에게 소개 한 WeChat 공개 계정 개발을위한 사용자 정의 메뉴를 설정하기위한 예제 코드입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!