PHP 获取小程序二维码接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/enjoy_sun_moon/article/details/82023984
    public function index(){
//          内容直接显示一张图片
//        header('content-type:image/gif');
//        header('content-type:image/png');//格式自选,不同格式貌似加载速度略有不同,想加载更快可选择jpg
        header('content-type:image/jpg');
        $id = 28;
        $data = array();
        $data['scene'] = "id=" . $id;//自定义信息,可以填写诸如识别用户身份的字段,注意用中文时的情况
        $data['page'] = "pages/index/index";//扫描后对应的path
        $data['width'] = 800;//自定义的尺寸
        $data['auto_color'] = false;//是否自定义颜色
        $color = array(
            "r"=>"221",
            "g"=>"0",
            "b"=>"0",
        );
        $data['line_color'] = $color;//自定义的颜色值
        $data   = json_encode($data);
        $access = json_decode($this->get_access_token(),true);
        $access_token= $access['access_token'];
//        var_dump($access_token);
        $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $access_token;
        $qrdata = $this->get_http_array($url,$data);
        var_dump($qrdata);
    }
    //获取access_token
    public function get_access_token(){
        $access_token = S('access_token');
        if(!$access_token) {
            $appid        = C(WECHAT_APPID);
            $appsecret    = C(WECHAT_APPSECRET);
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
            $access_token = httpGet($url);
        }
        return $access_token;
    }
    public function get_http_array($url,$post_data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        // curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   //没有这个会自动输出,不用print_r();也会在后面多个1
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        $output = curl_exec($ch);
        curl_close($ch);
        $out = json_decode($output);
        return $out;
    }
//二进制转图片image/png
    public function data_uri($contents, $mime)
    {
        $base64   = base64_encode($contents);
        return ('data:' . $mime . ';base64,' . $base64);
    }

主要是获取图片是的参数   一开始不知怎么写    后来看了一些csdn上额例子才知道是json数据

    public function build_qrcode(){
        $id   = I('post.id');
        $ajax = I('post.ajax');
        if($ajax == 1){
            import("@.ORG.Util.WxCode");
            $wxcodeobj = new WxCode($id, $page, $width);
            $qrcode_path = $wxcodeobj->getwxaqrcode();
            if ($qrcode_path != '') {
                $res = oss_upload($qrcode_path, $qrcode_path);
                if ($res['status'] == 1) {
                    unlink($data['url']);
                }
                $this->ajaxReturn($res);
            } else {
                $data['message'] = '二维码生成失败';
                $data['status'] = 0;
                $this->ajaxReturn($res);
            }
        }else {
            $data['message'] = '请求无效ajax不等于1';
            $data['status']  = 0;
            $this->ajaxReturn($res);
        }
    }

猜你喜欢

转载自blog.csdn.net/enjoy_sun_moon/article/details/82023984