用AI赚第一桶💰低成本搭建一套AI赚钱工具,源码可二开。 广告
~~~ use think\Controller; use think\Db; class Hd extends Controller { private $appid = "wx47d06f01aca201f5"; //你的appId private $secret = "50263c6adbbe9f23a2cb7d721de28985"; //你的appSecret //获取用户的openid function index(){ //1.获取到code================================= $redirect_uri = urlencode("http://".$_SERVER['HTTP_HOST']."/index/hd/getUserInfo");//这里的地址需要http:// $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=123#wechat_redirect"; $this->redirect($url); exit(); } //通过post获取用户的信息 function getJson($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); return json_decode($output, true); } //获取用户的openid function getUserInfo(){ $data = request()->get(); $code = $data['code']; //2.获取到网页授权的access_token=============== //第一步,获取access_token //新建一个文件存储access_token,避免多次获取,access_token的有效时间是2个小时,这里的目录是根目录:www.xxx.xxx/access_token.txt $file_name = 'access_token.txt'; if (!file_exists($file_name)) { //文件不存在,新建并附赋权限 $my_file = fopen($file_name, "w"); $file_name = $my_file; chmod($file_name,0777); } $content = file_get_contents($file_name); //读取文件内容 $arr = json_decode($content,true); //转化为数组 if (is_array($arr)) { if (isset($arr['end_time']) && $arr['end_time'] > time()) { //access_token未过时,直接拿来使用 $token = $arr; } else { //access_token超时,重新获取 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appid&secret=$this->secret"; $token = $this->getJson($url); $token['start_time'] = time(); $token['end_time'] = time()+7000; $my_file = fopen($file_name, "w") or die("Unable to open file!"); $txt = json_encode($token); fwrite($my_file, $txt); fclose($my_file); } } else { //用于新建文件时的写入 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appid&secret=$this->secret"; $token = $this->getJson($url); $token['start_time'] = time(); $token['end_time'] = time()+7000; $my_file = fopen($file_name, "w") or die("Unable to open file!"); $txt = json_encode($token); fwrite($my_file, $txt); fclose($my_file); } //第二步:取得openid $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->appid&secret=$this->secret&code=$code&grant_type=authorization_code"; $oauth2 = $this->getJson($oauth2Url); $openid = $oauth2['openid']; //第三步:根据全局access_token和openid查询用户信息 $access_token = $token["access_token"]; $openid = $oauth2['openid']; $get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN"; $user_info = $this->getJson($get_user_info_url); $user_info=json_encode($user_info); $this->redirect('rouge','user_info='.$user_info); } //活动主体 public function rouge(){ $user=input('user_info'); $user=json_decode($user); return view('',[ 'title'=>"活动", 'user_info'=>$user, ]); } } ~~~ 前端通过ajax,用index作为接口,获取到用户的数据。