PHP原生微信公众号开发之自定义菜单网站源码的实现分享

一佰互联网站制作(www.yinxi.net) 发布日期 2018-07-11 01:41:32

打算开发微网站自定义菜单,搜索网上都是一些写死的例子,作为多用户网站管理系统“巅云建站系统”就需要根据不同用户设置生成不同的公众号菜单,包括一二级菜单,微网站开发中自定义菜单实现其实很简单,我们把我在我司“巅云智能建站系统”开发中的实现原理分享出来,希望对新手小白开发自定义菜单有帮助。由于是多用户系统,当然比普通开发要多出获取用户的步骤。当然如果你也是网站建设从业者可以购买我司的建站系统平台版,可二次开发。详情登陆:http://www.yinxi.net/design/#websites-taocan 1880元起(单用户),多用户版(8000元,自助建站平台)<?php//前三行为巅云专用引入基础配置代码session_start();require_once("../common/common.php");$web=get_web();//获取当前网站用户名//数据库连接代码$con=mysql_connect(DB_SERVER,DB_LOGIN,DB_PW) or die("Unable to connect to the MySQL!");$db = mysql_select_db(DB_NAME,$con);//据不同网站读取数据库微信配置。$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']; }////////////判断是不是网址,后边组装菜单JOSON 数据时用,如果是"key":"关键词" 否则 "url":"网址"function check_url($url){    if(!preg_match('/http:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is',$url)){        return false;    }    return true;} ///////////引入没有设置par_type(父级ID)限制三个一级菜单$sqlmenu = "select * from wx_menu where par_type='' and  user='$web' limit 3";$rsmenu  = mysql_query($sqlmenu);$rowNum = mysql_num_rows($rsmenu);//实际数量 $jsonmenu  = '{"button":[';//菜单头//两个记数器,一二级while循环自增,当循环次数等于实际数量时去除“,”号,限如果分别是一级菜单和每个一级菜单最后一个时不需要","号分隔了。 $counter = 0;  $counter2 = 0;//循环一级菜单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;//创建菜单$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":"学校系统",    "sub_button":[     {      "type":"click",      "name":"课程表",      "key":"课程表"    },     {      "type":"click",      "name":"个人信息",      "key":"个人信息"    },     {      "type":"click",      "name":"平时成绩",      "key":"平时成绩"    },     {      "type":"click",      "name":"奖惩记录",      "key":"奖惩记录"    }    ]   },   {    "name":"技术分享",    "sub_button":[     {      "type":"click",      "name":"移动WEB开发",      "key":"移动WEB开发"    },     {      "type":"click",      "name":"J2EE框架",      "key":"J2EE框架"    },     {      "type":"click",      "name":"Android开发",      "key":"Android开发"    },     {      "type":"click",      "name":"PHP框架",      "key":"PHP框架"    }    ]   },{    "name":"技术支持",    "sub_button":[     {      "type":"click",      "name":"在线客服",      "key":"在线客服"    },     {      "type":"click",      "name":"技术分享",      "key":"技术分享"    },     {      "type":"view",      "name":"天气预报",      "url":"http://m.hao123.com/a/tianqi"    }    ]   }  ]  }';   */ //创建菜单实现  $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;  }?>

TAG标签:
一佰互联-领先的自助建站网站建设网站设计网站开发网站制作做网站建网站虚拟主机云主机vps主机租用域名注册网站制作如何建网站?用巅云建站系统优惠套餐:域名+空间+建站系统即可轻松做网站,无需安装、一键上传、自由更改换模板,拖拉式“DIY”随心布局,通过网络轻点鼠标自己就能做网站!同步生成:电脑站+手机站+微网站+小程序+APP,真正的五站合一。 我们还提供地方行业门户网站制作万州人才网招聘服务。
备案系统认证 安网 举报不良网站 举报不良网站 我们的支付方式 AAA级信用 AAA认证
上海 北京 深圳 广州 天津 杭州 南京 武汉 成都 沈阳 大连 长沙 济南 青岛 苏州 福州 无锡 哈尔滨 宁波 重庆 大庆 厦门 西安 长春 珠海 郑州 海口 昆明 太原 石家庄 温州 合肥 乌鲁木齐 南宁 南通 合肥 兰州 呼和浩特 贵阳 烟台 秦皇岛 包头 唐山 银川 汕头 连云港 威海 西宁 湛江 北海 万州 涪陵 长寿 黔江 永川 丰都 忠县 江津 南川 开县 云阳 万盛 梁平 垫江 巫山 城口 建站宝盒 免费建站 门户网站建设 微信网站 手机网站 门户网站制作

7x24小时服务电话:18581389571 传真:023-85725751 免费建站交流群:236412099 139947842(自助建站交流) E-Mail:post@yinxi.net 网站投诉:
重庆楚捷科技有限公司 一佰互联©版权所有 自助建站(www.yinxi.net,Inc.) 2001-2020 All Rights Reserved 本站程序受法律保护,网站法律顾问:ITLAW-庄毅雄律师
中华人民共和国信息产业部网站备案号:渝ICP备12000592号
云主机 网站模板 虚拟主机 重庆监控 虚拟主机 万州人才网 如何建立网站 网站建设 域名注册 虚拟主机 网站制作SEO优化