123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- namespace App\Services\Common;
- use GuzzleHttp\Client;
- /**
- * qq第三方登录
- * Class QqService
- * @package App\Services\Common
- */
- class QqService
- {
- protected $auth_url = "https://graph.qq.com/";
- protected $appid;
- protected $appkey;
- protected $httpClient;
- /**
- * QqService constructor.
- */
- public function __construct()
- {
- $this->httpClient=new Client([
- 'http_errors' => false
- ]);
- $this->appid=config('aix.system.oauth.qq.app_id');
- $this->appkey=config('aix.system.oauth.qq.app_key');
- }
- public function getAccessToken($code)
- {
- $uri=$this->auth_url."oauth2.0/token?grant_type=authorization_code&client_id=$this->appid&client_secret=$this->appkey&code=$code&redirect_uri=".session('qq_redirect_uri');
- $resopnse=$this->httpClient->get($uri);
- parse_str($resopnse->getBody()->getContents(), $result);
- return $result['access_token'];
- }
- public function getOpenid($access_token)
- {
- $uri=$this->auth_url."oauth2.0/me?access_token=$access_token";
- $resopnse=$this->httpClient->get($uri);
- $result=trim(str_replace(['callback(',');'], ["", ""], $resopnse->getBody()->getContents()));
- $res_arr=json_decode($result, true);
- return $res_arr['openid'];
- }
- public function getUserInfo($access_token, $openid)
- {
- $uri=$this->auth_url."user/get_user_info?access_token=$access_token&oauth_consumer_key=$this->appid&openid=$openid";
- $resopnse=$this->httpClient->get($uri);
- $res_arr=json_decode($resopnse->getBody()->getContents(), true);
- return $res_arr;
- }
- public function getUser($code)
- {
- $access_token=$this->getAccessToken($code);
- $openid=$this->getOpenid($access_token);
- $user=$this->getUserInfo($access_token, $openid);
- $user['openid']=$openid;
- return $user;
- }
- }
|