公司用的是thinkphp 3.1,在项目的lib目录建立目录ORG,注意大写,
qq互联登陆sdk下载地址为http://wiki.connect.qq.com/sdk下载,自行下载,
下载解压之后把Connect2.1文件夹剪切到刚建立的ORG目录下,并改名Connect,
然后在浏览器中进行安装,目录直接写到刚建立的ORG/Connect,就会出现欢迎页面了,直接点击(设置配置项),然后填写id key之类的(注意,callback请填写完全域名,带http://,因为qq互联升级之后要写完全,不然登陆跳转会出现100010错误),然后其他的随意,我是直接全选的,点击 (配置)成功之后,到刚那个Connect目录把除了API目录其他的全部删除,之后把API目录中的文件全部剪切到上一级(Connect)目录中来,把qqConnectAPI.php改为qqConnectAPI.class.php,到此文件部分就可以了,然后在你的项目控制器里写代码了
Public function _initialize(){ import('@.ORG.Connect.qqConnectAPI'); //通过import载入刚刚的class文件(因为是在同一个项目下直接@,import具体用法请百度) $this->QC = new QC(); } public function qq_login(){//qq登陆的a标签就可以直接指向这里了 $this->QC->qq_login(); } public function qq_callback(){//qq的回调函数,在qq互联的官方网站以及配置的时候填写的就是这个回调地址 $token = $this->QC->qq_callback(); $openid = $this->QC->get_openid(); $QC = new QC($token,$openid); $arr = $QC->get_user_info(); $db=M("Member"); //接下来就是自己项目的登陆函数了 $where['qq_openid']=$openid; //判断此QQ是否注册 唯一标识符openid 在表里加了个qq_openid为唯一 $isqq=$db->where($where)->find(); if($isqq){ //写入登陆状态 session('user_id', $isqq['id']); session('user_name', $isqq['username']); session('user_nickname', $isqq['account']); session('user_email', $isqq['email']); session('user_last_time', $isqq['last_time']); $save_data['id']=$isqq['id']; $save_data['last_time']=time(); $db->save($save_data); $this->success('登陆成功!',U('Member/index')); }else{ $data['qq_openid']=$openid; //QQ登陆唯openid $data['username']=$arr['nickname']; //用户名 $data['nickname']=$arr['nickname']; //网名 $data['face_url']=$arr['figureurl_2']; //头像 $data['status']='1'; //用户状态为启用 //如果用户名存在 $name['username']=$arr['nickname']; $isname=$db->where($name)->find(); if($isname){ //用户名存在添加随机数 $data['username']=$arr['nickname']."_".rand(1000,9999); } //判断是否写入成功 if($id=$db->add($data)){ //写入登陆状态 session('user_id', $id); session('user_name', $data['account']); session('user_nickname', $data['account']); session('user_email', '未填写'); session('user_last_time', time()); $save_data['id']=$id; $save_data['last_time']=time(); $db->save($save_data); $this->success('注册成功!',U('Member/index')); }else{ $this->error('注册失败!',U('Member/login')); } } } 整个thinkphp的qq互联登陆就可以了