博客列表 >thinkphp3.2自定义微信菜单

thinkphp3.2自定义微信菜单

兵临城下的博客
兵临城下的博客原创
2018年07月20日 14:06:461163浏览

 //提交菜单信息到微信公众号

public function menu_tijiao(){

        /*

         * 菜单处理开始

         * 只取3条leftid=0的数据

        */

        $menu=M('menu')->where(array('parent_id'=>0))->order('id')->limit(3)->select();

        $menu_count=M('menu')->where(array('parent_id'=>0))->count();

        /*

         * 菜单数据重组

         * 重组结构参考微信公共平台开发文档

         * name 菜单名称

         * type 菜单类型

         * url 链接地址:针对viewleix

        */

        $arr=array();

        foreach ($menu as $v){

            $menu_2=M('menu')->where(array('parent_id'=>$v['id']))->find();

            if (!empty($menu_2)){

                $v['n']=1;

            }else{

                $v['n']=0;

            }

            $arr[]=$v;

        }

        //字段N 判断是否有下一级

        //p($arr);die;

        $k=0;

        $data = '{"button":[';//菜单头

        foreach($arr as $v){

            if ($v['menu_type']=='click'){

                $type='key';

            }elseif ($v['menu_type']=='view'){

                $type='url';

            }

            $k=$k+1;

            if ($v['n']==0){

                if ($k==$menu_count){//如果是最后一个菜单,那么就不要逗号;

                    $data.='{"type":"'.$v['menu_type'].'","name":"'.$v['menu_name'].'","'.$type.'":"'.$v['menu_url'].'"}';//如果是最后一个菜单,不就要逗号了。

                }else{

                    $data.='{"type":"'.$v['menu_type'].'","name":"'.$v['menu_name'].'","'.$type.'":"'.$v['menu_url'].'"},';//如果是最后一个菜单,不就要逗号了。

                }

            }else{

                $data.='{"name":"'.$v['menu_name'].'","sub_button":[';

                /*

                 * 开始输出子菜单

                 */

                $menu_two=M('menu')->where(array('parent_id'=>$v['id']))->select();//子菜单数据

                $menu_twocount=M('menu')->where(array('parent_id'=>$v['id']))->count();//子菜单数量

                $m=0;

                foreach ($menu_two as $y){

                    if ($y['menu_type']=='click'){

                        $type_two='key';

                    }elseif ($y['menu_type']=='view'){

                        $type_two='url';

                    }

                    $m=$m+1;


                    if ($m==$menu_twocount){//如果是最后一个菜单,那么就不要逗号;

                        $data.='{"type":"'.$y['menu_type'].'","name":"'.$y['menu_name'].'","'.$type_two.'":"'.$y['menu_url'].'"}';//如果是最后一个菜单,不就要逗号了。

                    }else{

                        $data.='{"type":"'.$y['menu_type'].'","name":"'.$y['menu_name'].'","'.$type_two.'":"'.$y['menu_url'].'"},';//如果是最后一个菜单,不就要逗号了。

                    }

                }

                if ($m==$menu_twocount){//如果是最后一个菜单的话,就不要逗号了

                    $data.= ']},';

                }else{

                    $data.= ']}';

                }

            }

        }

        $data.= ']}';

// var_dump($data);die;

        $access_token = get_access_token();

        // var_dump($access_token);die;

        $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=$access_token";

        //echo '<br />'.$url;

        $result = curl_post($url, $data);

        $de_json = json_decode($result,TRUE);

        // dump($de_json);die;

        if($de_json['errcode']==0){

            $name = $_SESSION['name'];

            $action = '成功提交菜单至微信公众号';

            add_log($name,$action);


            $this->success('成功提交菜单至微信公众号');

        }

        else{

            $this->error('提交失败:errcode:'.$de_json['errcode'].' errmsg:'.$de_json['errmsg']);

        }

    }


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议