/** * @param $url 接口 url * @param string $type 请求类型 * @param string $res 返回数据类型 * @param string $arr post请求参数 * @return mixed */ public function http_curl($url='',$type='get',$res='json',$arr=''){ //1、初始化 $ch = curl_init(); //2、设置参数 curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 if ($type=='post') { curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$arr); } //3、采集 $re = curl_exec($ch); if ($res=='json') { if(curl_errno($ch)){ //请求失败 return curl_error($ch); }else{ return json_decode($re, true); } } //4、关闭 curl_close($ch); } //返回access_token public function getWxAccessToken(){ if ($_SESSION['access_token'] && $_SESSION['expire_time']>time()){ return $_SESSION['access_token']; }else{ // //session不存在或者已经过期 $appId='wx4e51c7d2349c2a9b'; $appSecret='7bb74128d3fd4bf0dcefe2e3622b408b'; $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appId.'&secret='.$appSecret; $res = $this->http_curl($url,'get','json'); $accessToken = $res['access_token']; //将重新获取到的access_token存到session中 $_SESSION['access_token'] = $accessToken; $_SESSION['expire_time']=time()+7000; return $accessToken; } } /** * 自定义菜单创建接口 */ public function defineItem(){ //创建微信菜单 header('Content-type: text/html; charset=utf-8'); $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$this->getWxAccessToken(); echo $this->getWxAccessToken(); $postArr = array( 'button' => array( array( 'name'=>urlencode('武术'), 'type'=>'click', 'key'=>'item1' ), array( 'name'=>urlencode('影视'), 'sub_button'=>array( array( 'name'=>urlencode('歌曲'), 'type'=>'click', 'key'=>'songs' ), array( 'name'=>urlencode('电影'), 'type'=>'view', 'url'=>'http://www.baidu.com' ) ) ), array( 'name'=>urlencode('菜单三'), 'type'=>'view', 'url'=>'http://www.qq.com' ), ), ); echo '<hr/>'; var_dump($postArr); //将数组转化为json格式 echo '<hr/>'; echo $postJson = urldecode(json_encode($postArr)); echo '<hr/>'; $res = $this->http_curl($url,'post','json',$postJson); var_dump($res); }
微信公众号--自定义菜单创建接口
最新推荐文章于 2024-05-08 09:19:41 发布