微信公众号--自定义菜单创建接口

    /**
     * @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);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值