這篇博客適合看懂了官方文檔不知道咋寫的,只想接口自定義菜單的請看第34行,祝您生活愉快!
第一步,打開服務器開發配置,試過不開啓也可以用接口自定義菜單,不過下一篇微信自動回覆也要打開乾脆就提前打開吧
啓用的時候微信會給服務器地址發送一個驗證的請求,驗證通過才能正常啓用,用戶給公衆號發送消息的時候也會對這個地址發送請求,和驗證的區別是,驗證會多一個echostr字段,如果存在這個字段就是驗證地址的請求,下面是驗證的代碼,微信官方文檔就有
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
方法返回true則驗證通過,直接返回
echo $_GET["echostr"];
exit;
然後就可以正常啓用了。下面有71個字的廢話,順便一說我在沒有打開服務器配置的情況下用接口自定義了菜單,啓用之後菜單就沒了,所以只要啓用應該是不管在自定菜單設置的菜單還是接口定義的都會消失
下面就是自定義菜單的代碼了,這是最近開發的新的項目叫車公衆號,發現有很多人照着官方文檔寫代碼不好用,可以直接複製我的修改(((o(゚▽゚)o)))
/**
* 公衆號菜單
*/
public function wxMenu()
{
$data = ' {
"button":[
{
"type":"location_select",
"name":"一鍵叫車",
"key":"rselfmenu_2_0"
},
{
"type":"view",
"name":"語音叫車",
"url":"http://www.baidu.com"
},
{
"name":"我的",
"sub_button":[
{
"type":"view",
"name":"我的信息",
"url":"http://www.baidu.com"
}]
}]
}';
$url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=' . getAccesstoken() . '';
$res = $this->curl_post($url, $data);
dump($res);
}
直接請求就可以了,祝你成功!