fastadmin api模块里面生成二维码

application\api\controller\Demo.php
 

success('返回成功', $this->request->param());
    }

    /**
     * 无需登录的接口
     *
     */
    public function test1()
    {   
       $this->success('返回成功', ['action' => 'test1']);
    }

    /**
     * 需要登录的接口
     *
     */
    public function test2()
    {
       $this->success('返回成功', ['action' => 'test2']);
    }

    /**
     * 需要登录且需要验证有相应组的权限
     *
     */
    public function test3()
    {
        $this->success('返回成功', ['action' => 'test3']);
    }
    
    public function qrCode(){
        //生成二维码 传生成二维码的文本内容
        $qrCode    = $this->build('codeText');
        $qrCodeUrl =  $this->serverUrl().'/uploads/qrcode/'.$qrCode;
        $this->success('返回成功', ['qrCodeUrl' => $qrCodeUrl]);
    }

    public function serverUrl(){
        $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
        return  $http_type . $_SERVER['HTTP_HOST'];
    }

    // 生成二维码
    public function build($text)
    {
        $config = get_addon_config('qrcode');
        $params = $this->request->get();
        $params = array_intersect_key($params, array_flip(['text', 'size', 'padding', 'errorlevel', 'foreground', 'background', 'logo', 'logosize', 'logopath', 'label', 'labelfontsize', 'labelalignment']));

        $params['text'] = $text;
        $params['label'] = '';
        $qrCode = \addons\qrcode\library\Service::qrcode($params);

        $mimetype = $config['format'] == 'png' ? 'image/png' : 'image/svg+xml';

        $response = Response::create()->header("Content-Type", $mimetype);

        // 直接显示二维码
        // header('Content-Type: ' . $qrCode->getContentType());
        // $response->content($qrCode->writeString());

        // 写入到文件
        if ($config['writefile']) {
            $qrcodePath = ROOT_PATH . 'public/uploads/qrcode/';
            if (!is_dir($qrcodePath)) {
                @mkdir($qrcodePath);
            }
            if (is_really_writable($qrcodePath)) {
                $filePath = $qrcodePath . md5(implode('', $params)) . '.' . $config['format'];
                $qrCode->writeFile($filePath);
                $code_name = md5(implode('', $params)) . '.' . $config['format'];
            }
        }

        return $code_name;
    }

}
访问 http://www.test.com/api/demo/qrCode
返回 {"code":1,"msg":"返回成功","time":"1652325427","data":{"qrCodeUrl":"http:\/\/www.test.com\/uploads\/qrcode\/3b74e04f535ae05247f5c620f454b905.png"}}
二维码

 

你可能感兴趣的:(php,php,fastadmin)