Php开发微信公众号自定义菜单功能
相关信息请参看微信公众号开发接口文档
下边是PHP版的菜单添加、删除、查询接口实现代码,包括Token获取代码:*1
private function menus_operate () { $type = empty($_GET['type']) ? '' : trim($_GET['type']); if (!$type) { echo 'operate fail,no operate type'; return; } $password = empty($_GET['password']) ? '' : trim($_GET['password']); if (!$password||$password!='heshunneng') { echo 'operate fail,password error'; return; } switch ($type) { case "create": echo $this->CreateMenus(); break; case "query": echo $this->QueryMenus(); break; case "delete": echo $this->DeleteMenus(); break; case "get_token": echo $this->GetAccessToken(); break; default: echo 'please enter the right type!'; } } private function GetAccessToken () { $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx5d82defab*f&secret=f65cc3ceca3c537f974b875596*'; $result = json_decode(file_get_contents($url)); if (empty($result->{'access_token'})) { echo 'get AccessToken fail ' . $result->{'errcode'} . ' ' . $result->{'errmsg'}.'. '; } else { echo $result->{'access_token'}.'. '.$result->{'expires_in'}; } } private function CreateMenus () { $access_token = empty($_GET['token']) ? '' : trim($_GET['token']); if (!$access_token) { echo 'operate fail,no access_token'; return; } $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token; $data = '{ "button":[ { "name":"物流信息", "sub_button":[ { "type":"click", "name":"找货", "key":"menu_huoyuan" }, { "type":"click", "name":"找车", "key":"menu_cheyuan" }, { "type":"click", "name":"找专线", "key":"menu_zhuanxian" }, { "type":"click", "name":"物流园区", "key":"menu_yuanqu" }, { "type":"click", "name":"仓库招租", "key":"menu_zhaozu" }] }, { "name":"物流新闻", "sub_button":[ { "type":"click", "name":"政策公告", "key":"menu_gonggao" }, { "type":"click", "name":"物流新闻", "key":"menu_news" }, { "type":"click", "name":"东盟动态", "key":"menu_dongmeng" }, { "type":"click", "name":"天气查询", "key":"menu_weather" }, { "type":"click", "name":"在途服务", "key":"menu_zaitu" }] }, { "name":"业务信息", "sub_button":[ { "type":"click", "name":"仓储业务", "key":"menu_contact" }, { "type":"click", "name":"中转业务", "key":"menu_idea" }, { "type":"click", "name":"在途业务", "key":"menu_about" }, { "type":"click", "name":"客户查询", "key":"menu_about" }] }] }'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch); if (curl_errno($ch)) { echo 'Errno' . curl_error($ch); } curl_close($ch); $result=json_decode($tmpInfo); echo ' '.$result->errcode.' '.$result->errmsg.'.'; } private function QueryMenus () { $access_token = empty($_GET['token']) ? '' : trim($_GET['token']); if (!$access_token) { echo 'operate fail,no access_token'; return; } $url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".$access_token; return file_get_contents($url); } private function DeleteMenus () { $access_token = empty($_GET['token']) ? '' : trim($_GET['token']); if (!$access_token) { echo 'operate fail,no access_token'; return; } $url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$access_token; $result = json_decode(file_get_contents($url)); echo $result->{'errcode'} . ' ' . $result->{'errmsg'}.'. '; }
说明下,以上代码执行方式,先获取Access_Token后作为参数传入菜单新增、删除、查询接口进行菜单操作,如有疑问可留言。
最近评论