🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
​ 获取accesstoken 官方文档:[https://microapp.bytedance.com/dev/cn/mini-app/develop/server/interface-request-credential/getaccesstoken](https://microapp.bytedance.com/dev/cn/mini-app/develop/server/interface-request-credential/getaccesstoken "https://microapp.bytedance.com/dev/cn/mini-app/develop/server/interface-request-credential/getaccesstoken") ~~~php public function get_access_token(){ $appid = 'tt4a8******2271f';//配置appid $secret = '420d0ae397099**********9a97017d09378';//配置secret $url = "https://developer.toutiao.com/api/apps/token?grant_type=client_credential&appid=".$appid."&secret=".$secret; $result = https_request($url); $Result = json_decode($result,true); return $Result['access_token']; } ~~~ ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动") 生成带参数二维码(存到服务器本地+路径存到用户指定字段用于二次分享的时候直接拿取对应带参数二维码) 官方文档: [https://microapp.bytedance.com/dev/cn/mini-app/develop/server/qr-code/createqrcode](https://microapp.bytedance.com/dev/cn/mini-app/develop/server/qr-code/createqrcode "https://microapp.bytedance.com/dev/cn/mini-app/develop/server/qr-code/createqrcode") ~~~php //获得抖音二维码 public function dyshare(){ if (!input('?post.spcode')) { $ret['code'] = 400; $ret['message'] = "缺少参数,请参照接口文档,规范传参"; $ret['data'] = null; return json($ret); } $spcode=request()->param('spcode'); $code=Db::name('newuser')->where('spcode',$spcode)->find(); if(!$code){ return json(['code'=>400,'message'=>'用户不存在','data'=>'']); } if($code['dyfxcode']!=''){ return json(['code'=>200,'message'=>'获取成功','data'=>request()->domain().$code['dyfxcode']]); } $qr_path = "./uploads/"; if(!file_exists($qr_path.'user/')){ mkdir($qr_path.'user/', 0700,true);//判断保存目录是否存在,不存在自动生成文件目录 } $filename = 'user/'.time().'.png'; $file = $qr_path.$filename; $access_token= $this->get_access_token(); $url = 'https://developer.toutiao.com/api/apps/qrcode'; $qrcode = array( 'access_token'=> $access_token, 'scene' => $spcode,//二维码所带参数 'appname' => 'douyin', // 'width' => '430', 'path' => urlencode("pages/index/index?spcode=".$spcode),//二维码跳转路径(要已发布小程序) // 'platform' => 'miniapp', // "set_icon" => true ); $data = $this->https_post($url,json_encode($qrcode));//请求接口 $filename = date('YmdHis').rand(10000,999999).'.jpg'; $dir = ROOT_PATH.'public/uploads/douyin'; if(!is_dir($dir)){ @mkdir($dir,0777,true); } $file = $dir.'/'.$filename; file_put_contents($file,$data); $retFile ='/uploads/douyin/'.$filename; Db::name('newuser')->where('spcode',$spcode)->update(['dyfxcode'=>$retFile]); return json(['code'=>200,'message'=>'获取成功','data'=>request()->domain().$retFile]); } ~~~ ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动") httpGet请求,可以直接放在公共函数库application/common.php里面 ~~~php #curl请求 if(!function_exists('https_request')){ function https_request($url,$data = null){ if(function_exists('curl_init')){ $curl = curl_init(); curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }else{ return false; } } } ~~~ ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动") 最后生成的结果是一个正方形的二维码:如下所示 ![](https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5teGlhby50b3AvdXBsb2Fkcy9kb3V5aW4vMjAyMDA2MTIxODU1MTYxNTU1NTUuanBn?x-oss-process=image/format,png)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")​编辑 ​