当前位置: 首页 > 后端技术 > PHP

通过小程序实现微信扫码登录,个人网站接入微信扫码登录功能

时间:2023-03-29 18:54:48 PHP

$access_token['expires']){//如果已经过期,则必须重新获取并缓存$access_token=array();$access_token['access_token']=getNewToken($appid,$appsecret);$access_token['过期']=time()+7000;//将数组写入php文件$arr='';$arrfile=fopen("./access_token.php","w");fwrite($arrfile,$arr);fclose($arr文件);//返回当前的access_tokenreturn$access_token['access_token'];}else{//如果还没有过期,直接读取缓存文件return$access_token['access_token'];}}//获取新的access_token函数{$应用秘密}";$access_token_Arr=https_request($url);return$access_token_Arr['access_token'];}//curl请求函数functionhttps_request($url){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);$out=curl_exec($ch);curl_close($ch);returnjson_decode($out,true);}//创建小程序码functioncreatQrcode(){//请求小程序接口创建小程序码$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.getToken());curl_setopt($ch,CURLOPT_POST,true);$sc=uniqid();//生成场景$data=array("scene"=>$sc,"env_version"=>"develop"//小程序审核通过后需要修改参数为release);curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($data));curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);curl_setopt($ch,CURLOPT_RETURNTRANSFER,真);$result=curl_exec($ch);//图像缓冲区到本地图像$img=file_put_contents($sc.'.png',$result);//导入数据库配置include'./Db.php';//将二维码场景写入数据库$add_scene="INSERTINTOxcxqrcodelogin(scene)VALUES('$sc')";如果($conn->query($add_scene)===TRUE){$file=$sc.'.png';如果($fp=fopen($file,"rb",0)){$gambar=fread($fp,filesize($file));fclose($fp);$base64_qrcode='data:image/jpg/png/gif;base64,'.chunk_split(base64_encode($gambar));//以JSON格式返回小程序代码和场景returnjson_encode(array('xcxqrcode'=>$base64_qrcode,'scene'=>$sc));}}//断开连接curl_close($ch);$conn->close();}?>xcxqrcode;$scene=$qrcodebase64json->场景;//删除本地图片unlink('./'.$scene.'.png');?>"id="xcxqrcode">"id="sc"/>请使用微信扫码