企业微信授权登录流程

** $client = new Client;   详情请看 :https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html**
**请求授权的接口**
     // 换取code
    public function getCode() {
        $this->load->model('score_model');
        $token = $this->score_model->TokenSign();
        if (empty($_GET['code'])) {
            $redirectUrl = urlencode(dr_now_url());
            $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wwe6c6bad98da9b9de&redirect_uri='.$redirectUrl.'&response_type=code&scope=snsapi_base&state=kajsndk#wechat_redirect';
            header("Location: $url");
            return;
        }
        $memberUsid  = $this->score_model->postMember($_GET['code']); 
        if(isset($memberUsid)) {
            $memberInfo = $this->score_model->companyUserInfo($memberUsid['UserId']);
            if(isset($memberInfo)){
                $this->load->model('Member_action_model');
                $memberUid = $this->Member_action_model->addAccount($memberInfo,$memberUsid['UserId']);
                return $memberUid;
            }
        }
    }

这边是系统调用的模型

// 授权获取Token 建立连接
    public function TokenSign() {
        // 读取配置文件
        $oauth = require WEBPATH.'config/qiye.php';
        !$oauth['qiye']['corpid'] && x_json(0,'OAuth错误: 缺少OAuth参数');
        $client = new Client;
        // 读取物理缓存文件
        $token = $this->cache->file->get('qiye-token');
        if(!$token) {
            $token = $client->get('https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='.$oauth['qiye']['corpid'].'&corpsecret='.$oauth['qiye']['corpsecret']);
            $token =  json_decode((string)$token->getBody(),true);
            // 写入物理文件
            $this->cache->file->save("qiye-token", [
                'code' => $token['access_token'],
                'next_send_time' => SYS_TIME + 3600
            ], ($token['expires_in']) /2);
        }
        return $token;
    }
    // 换取用户 [userID,userName,avatar];
    public function postMember($code){
        $token = $this->cache->file->get('qiye-token');
        if($token) {
            $client = new Client;
            $memberInfo  = $client->get('https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token='.$token['code'].'&code='.$code);
            $memberInfo = json_decode((string)$memberInfo->getBody(),true);
        return $memberInfo;
        }
    }
    // 换取用户信息
    public function companyUserInfo ($memberUsid) {
        // 读取文件
        $token = $this->cache->file->get('qiye-token');
        $client = new Client;
        $memberInfo = $client->get('https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token='.$token['code'].'&userid='.$memberUsid);
        $memberInfo = json_decode((string)$memberInfo->getBody(),true);
         //$memberInfo;  用户信息 就可以注册用户了
        return $memberInfo;
       
    }
    

你可能感兴趣的:(php)