打算開發(fā)微網(wǎng)站自定義菜單,搜索網(wǎng)上都是一些寫死的例子,作為多用戶網(wǎng)站管理系統(tǒng)“云建站系統(tǒng)”就需要根據(jù)不同用戶設(shè)置生成不同的公眾號菜單,包括一二級菜單,微網(wǎng)站開發(fā)中自定義菜單實(shí)現(xiàn)其實(shí)很簡單,我們把我在我司“云智能建站系統(tǒng)”開發(fā)中的實(shí)現(xiàn)原理分享出來,希望對新手小白開發(fā)自定義菜單有幫助。由于是多用戶系統(tǒng),當(dāng)然比普通開發(fā)要多出獲取用戶的步驟。當(dāng)然如果你也是網(wǎng)站建設(shè)從業(yè)者可以購買我司的建站系統(tǒng)平臺版,可二次開發(fā)。詳情登陸:http://www.yinxi.net/design/#websites-taocan 1880元起(單用戶),多用戶版(8000元,自助建站平臺)<?php//前三行為云專用引入基礎(chǔ)配置代碼session_start();require_once("../common/common.php");$web=get_web();//獲取當(dāng)前網(wǎng)站用戶名//數(shù)據(jù)庫連接代碼$con=mysql_connect(DB_SERVER,DB_LOGIN,DB_PW) or die("Unable to connect to the MySQL!");$db = mysql_select_db(DB_NAME,$con);//據(jù)不同網(wǎng)站讀取數(shù)據(jù)庫微信配置。$sql = "select * from wx_config where user='$web' ";$rs = mysql_query($sql);while($row_p=mysql_fetch_assoc($rs)){$appid=$row_p['appid'];$appsecret= $row_p['appsecret']; }////////////判斷是不是網(wǎng)址,后邊組裝菜單JOSON 數(shù)據(jù)時(shí)用,如果是"key":"關(guān)鍵詞" 否則 "url":"網(wǎng)址"function check_url($url){ if(!preg_match('/http:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is',$url)){ return false; } return true;} ///////////引入沒有設(shè)置par_type(父級ID)限制三個(gè)一級菜單$sqlmenu = "select * from wx_menu where par_type='' and user='$web' limit 3";$rsmenu = mysql_query($sqlmenu);$rowNum = mysql_num_rows($rsmenu);//實(shí)際數(shù)量 $jsonmenu = '{"button":[';//菜單頭//兩個(gè)記數(shù)器,一二級while循環(huán)自增,當(dāng)循環(huán)次數(shù)等于實(shí)際數(shù)量時(shí)去除“,”號,限如果分別是一級菜單和每個(gè)一級菜單最后一個(gè)時(shí)不需要","號分隔了。 $counter = 0; $counter2 = 0;//循環(huán)一級菜單while($row_menu=mysql_fetch_assoc($rsmenu)){//while$counter = $counter + 1;//查詢是否有二級菜單$sqlmenu2 = "select * from wx_menu where par_type={$row_menu['id']} and user='$web' limit 5";$rsmenu2 = mysql_query($sqlmenu2);$rowNum2 = mysql_num_rows($rsmenu2);$jsonmenu.='{';$jsonmenu.='"name":"'.$row_menu['name'].'",';if(!$rowNum2){if($row_menu['type']){$jsonmenu.='"type":"'.$row_menu['type'].'",';}if($row_menu['Key_url']){ $isurl=check_url($row_menu['Key_url']);if($isurl){ $keyt="url";}else{ $keyt='key';}if($rowNum2){$jsonmenu.='"'.$keyt.'":"'.$row_menu['Key_url'].'",';}else{$jsonmenu.='"'.$keyt.'":"'.$row_menu['Key_url'].'"';}}}if($rowNum2){$jsonmenu.='"sub_button":[';}while($row_menu2=mysql_fetch_assoc($rsmenu2)){//while$counter2 = $counter2 + 1;$jsonmenu.='{';$jsonmenu.='"name":"'.$row_menu2['name'].'",';if($row_menu2['type']){$jsonmenu.='"type":"'.$row_menu2['type'].'",';}if($row_menu2['Key_url']){ $isurl2=check_url($row_menu2['Key_url']);if($isurl2){ $keyt2="url";}else{ $keyt2='key';}$jsonmenu.='"'.$keyt2.'":"'.$row_menu2['Key_url'].'"';} if ($counter2 < $rowNum2){ $jsonmenu.='},'; } else{$jsonmenu.='}'; }}//whileoverif($rowNum2){$jsonmenu.=']';} if ($counter < $rowNum){ $jsonmenu.='},'; } else{$jsonmenu.='}'; }}//whileover $jsonmenu.= ']}';//menu createecho $jsonmenu;//創(chuàng)建菜單$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret=$appsecret"; $output = https_request($url); $jsoninfo = json_decode($output,true); $access_token=$jsoninfo["access_token"]; /*$jsonmenu = '{ "button":[ { "name":"學(xué)校系統(tǒng)", "sub_button":[ { "type":"click", "name":"課程表", "key":"課程表" }, { "type":"click", "name":"個(gè)人信息", "key":"個(gè)人信息" }, { "type":"click", "name":"平時(shí)成績", "key":"平時(shí)成績" }, { "type":"click", "name":"獎(jiǎng)懲記錄", "key":"獎(jiǎng)懲記錄" } ] }, { "name":"技術(shù)分享", "sub_button":[ { "type":"click", "name":"移動WEB開發(fā)", "key":"移動WEB開發(fā)" }, { "type":"click", "name":"J2EE框架", "key":"J2EE框架" }, { "type":"click", "name":"Android開發(fā)", "key":"Android開發(fā)" }, { "type":"click", "name":"PHP框架", "key":"PHP框架" } ] },{ "name":"技術(shù)支持", "sub_button":[ { "type":"click", "name":"在線客服", "key":"在線客服" }, { "type":"click", "name":"技術(shù)分享", "key":"技術(shù)分享" }, { "type":"view", "name":"天氣預(yù)報(bào)", "url":"http://m.hao123.com/a/tianqi" } ] } ] }'; */ //創(chuàng)建菜單實(shí)現(xiàn) $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token; $result = https_request($url,$jsonmenu); var_dump($result); function https_request($url,$data = null){ $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0); curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0); if(!empty($data)){ curl_setopt($curl,CURLOPT_POST,1); curl_setopt($curl,CURLOPT_POSTFIELDS,$data); } curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $output = curl_exec($curl); curl_close($curl); return $output; }?>
Copyright ? 2020 蘇州竑越嘉傲科技有限公司
產(chǎn)品介紹 預(yù)約訂購 關(guān)于我們 聯(lián)系我們