本文整理汇总了PHP中QC::qq_callback方法的典型用法代码示例。如果您正苦于以下问题:PHP QC::qq_callback方法的具体用法?PHP QC::qq_callback怎么用?PHP QC::qq_callback使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QC
的用法示例。
在下文中一共展示了QC::qq_callback方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: callback
public function callback()
{
es_session::start();
require_once APP_ROOT_PATH . "system/api_login/qqv2/qqConnectAPI.php";
$qc = new QC();
$access_token = $qc->qq_callback();
$openid = $qc->get_openid();
$use_info_keysArr = array("access_token" => $access_token, "openid" => $openid, "oauth_consumer_key" => $this->api['config']['app_key']);
$use_info_url = "https://graph.qq.com/user/get_user_info";
$graph_use_info_url = $qc->urlUtils->combineURL($use_info_url, $use_info_keysArr);
$response = $qc->urlUtils->get_contents($graph_use_info_url);
$arr = array();
$arr = json_decode($response, true);
$msg['field'] = 'qq_id';
$msg['id'] = $openid;
$msg['name'] = $arr["nickname"];
es_session::set("api_user_info", $msg);
$user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where qq_id = '" . $openid . "' and qq_id <> '' and is_effect=1 and is_delete=0");
if ($user_data) {
$user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
$user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
if ($user_current_group['score'] < $user_group['score']) {
$user_data['group_id'] = intval($user_group['id']);
}
es_session::set("user_info", $user_data);
$GLOBALS['db']->query("update " . DB_PREFIX . "user set login_ip = '" . get_client_ip() . "',login_time= " . TIME_UTC . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
es_session::delete("api_user_info");
app_recirect_preview();
} else {
$this->create_user();
app_redirect(APP_ROOT . "/");
}
}
示例2: callback
public function callback()
{
vendor('QQApi.qqConnectAPI');
$qc = new \QC();
$access_token = $qc->qq_callback();
$openid = $qc->get_openid();
$data['data'] = serialize(array('access_token' => $access_token, 'openid' => $openid));
M('post_log')->add($data);
//注册会员信息
//查看此openid是否存在
$map['username'] = $openid;
$detail = D('User')->where($map)->find();
$userid = $detail['userid'];
$nickname = $detail['nickname'];
if (!$detail) {
//获取用户信息
$arr = $qc->get_user_info();
M('post_log')->add(array('data' => serialize($arr)));
$info['username'] = $openid;
$info['nickname'] = $nickname = $arr['nickname'];
$userid = D('User')->add($info);
}
if ($userid) {
//保存session
session('userid', $userid);
//保存cookie用户信息
cookie('userid', $userid);
cookie('nickname', $nickname);
cookie('userid', $userid);
redirect(U('Shenma/user'));
}
/* $arr = $qc->get_user_info();
var_dump($arr);exit; */
}
示例3: callbackAction
public function callbackAction()
{
$mediaqqmodel = new Media_QQModel($this->_basemodel, $this->_qqparam);
$app_id = isset($_REQUEST['app_id']) ? trim($_REQUEST['app_id']) : '69948denMVMoBujYGLSFGUHbkvP7E3';
$mediaqq = $mediaqqmodel->getApp($app_id);
$APPID = $mediaqq['APPID'] && $mediaqq['APPKEY'] ? $mediaqq['APPID'] : $mediaqq['def_APPID'];
$APPKEY = $mediaqq['APPID'] && $mediaqq['APPKEY'] ? $mediaqq['APPKEY'] : $mediaqq['def_APPKEY'];
$redirect_uri = $this->_qqparam['redirect_uri'] . '?app_id=' . $mediaqq['app_id'];
$state = md5($mediaqq['app_key']);
$qcinit = new QQAPI_YafQQConnetAPI();
$qc = new QC();
$access_token = $qc->qq_callback($APPID, $redirect_uri, $APPKEY);
echo $access_token . '----------';
$openid = $qc->get_openid($access_token);
echo $openid . '---------';
$qqUser = $qc->my_get_userinfo($access_token, $openid, $APPID);
if ($qqUser && $qqUser->nickname) {
$media_user_id = $mediaqqmodel->saveUser($openid, $qqUser, $APPID);
if ($media_user_id) {
$usertokentime = date('Y-m-d H:i:s', time() + Yaf_Application::app()->getConfig()->application->usertokentime);
$login_token = $mediaqqmodel->saveAccessToken($app_id, $access_token, $openid, $media_user_id, $usertokentime);
if ($login_token) {
$url = $mediaqq['token_url'];
$concat = '&';
if (strpos($url, '?') === false) {
$concat = '?';
}
$url .= $concat . "token={$login_token}";
header("Location:{$url}");
}
}
}
exit;
}
示例4: callback
public function callback()
{
require 'QQ/API/qqConnectAPI.php';
//引进qqapi 接口
$qc = new \QC();
$acs = $qc->qq_callback();
//获取access-token 和openid
$oid = $qc->get_openid();
$qc = new \QC($acs, $oid);
$uinfo = $qc->get_user_info();
//获取用户信息
$user = M('user');
$list = $user->where("openid='" . $oid . "' and status = 1")->find();
if ($list) {
session('userid', $list['id']);
session('username', $list['nickname']);
session('userphone', $list['mobile']);
session('userimg', $list['headpic']);
//var_dump($list);die();
echo "<script>window.close();window.opener.location.reload()</script>";
exit;
//$this->redirect('Index/index', '', 0, '页面跳转中...');
} else {
session('openid', $oid);
session('uinfo', $uinfo);
session('sign', array('name' => 'QQ账号', 'code' => 1));
echo "<script>window.close();window.opener.location.href='" . U('User/threepartlogin') . "'</script>";
exit;
}
}
示例5: callback
/**
* 返回登录
*/
public function callback()
{
require_once COMMON_LIB_PATH . "QqConnect/API/qqConnectAPI.php";
$qc = new QC();
$callback = $qc->qq_callback();
$openid = $qc->get_openid();
$user = K("user")->field("uid,username,password,qqau,userlock,uuid,usergroup")->where(array("qqau" => $openid))->find();
session("qqau", $openid);
if (empty($user["qqau"])) {
//首次登录或没有绑定账号
$qc = new QC($callback, $openid);
$arr = $qc->get_user_info();
session("UserInfo", $arr["nickname"]);
go("Passport/Qqlogin/index");
} elseif ($user["qqau"] == $openid) {
//数据库比对正确
if ($user["userlock"] == 1) {
$this->error("您已经被锁定,请联系管理员!");
}
//$this->eve_exp($user["uid"]);
$loginData = array("logintime" => time(), "loginip" => ip::getClientIp(), "qqau" => $openid);
M("user")->where(array("uid" => $user["uid"]))->save($loginData);
// p($_POST);
session("username", $user["username"]);
session("uid", $user["uid"]);
session("uuid", $user["uuid"]);
session("usergroup", $user["usergroup"]);
$this->success("登录成功!正在跳转...", U(__WEB__));
}
}
示例6: qqcallback
public function qqcallback()
{
Vendor('Oauth.QC#class');
$qc = new \QC();
$token = $qc->qq_callback();
$openid = $qc->get_openid();
if (!$token || !$openid) {
$this->error('操作失败');
}
// 重新实例化 QC类
$qc = new \QC($token, $openid);
$uinfo = $qc->get_user_info();
$this->user_model = D('user');
$user = $this->user_model->field('id,email,password')->where(array('qq_token' => $token, 'qq_openid' => $openid))->find();
// echo $this->user_model->getLastSql();
if ($user['id'] > 0) {
// 登录用户
if ($this->user_model->login($user['id'], $user['email'], $user['password'])) {
//TODO:跳转到登录前页面
$this->success('登录成功!', session('rebackurl'));
} else {
$this->error($model->getError());
}
} else {
session('avatar', $uinfo['figureurl_qq_2']);
session('openid', $openid);
session('token', $token);
session('uname', $uinfo['nickname']);
session('oatype', 'qq_');
//print_r($uinfo);
$this->redirect('join');
}
}
示例7: qqcallback
public function qqcallback()
{
require_once "./QQ/API/qqConnectAPI.php";
$qc = new \QC();
echo $qc->qq_callback();
echo $qc->get_openid();
var_dump($qc);
}
示例8: getAccessToken
public function getAccessToken($parms)
{
require_once dirname(__FILE__) . "/API/qqConnectAPI.php";
$qc = new QC();
$access_token = $qc->qq_callback($this->apiId, parent::getReturnUrl(), $this->apiKey);
$openid = $qc->get_openid();
ISession::set('openid', $openid);
ISession::set('access_token', $access_token);
}
示例9: actionQq_callback
/**
* QQ回调地址
*
*/
public function actionQq_callback()
{
require_once Yii::getPathOfAlias('ext') . "/OAuth/qq/qqConnectAPI.php";
$qc = new QC();
$access_token = $qc->qq_callback();
$openid = $qc->get_openid();
$qc = new QC($access_token, $openid);
$user_info = $qc->get_user_info();
//查看是否已绑定
$bind = OAuthQQ::model()->findByPk($openid);
//数据
$data = array('type' => 'qq', 'access_token' => $access_token, 'openid' => $openid, 'uid' => $bind ? $bind->uid : 0, 'username' => $user_info['nickname'], 'avatar' => $user_info['figureurl_2']);
//绑定注册
$this->bind_register($bind, $data);
}
示例10: QQ_callback
function QQ_callback()
{
$cb_arr = array();
$qc = new QC();
$access_token = $qc->qq_callback();
//DE89B12F418C136D96F62898CBC4705E
$openid = $qc->get_openid();
//B8C02925F80EE3B4462B86E7868DAC1D
//echo $access_token;
//echo $openid;
$qc1 = new QC($access_token, $openid);
$userinfo_arr = $qc1->get_user_info();
$nickname = $userinfo_arr["nickname"];
$cb_arr = array('access_token' => $access_token, 'openid' => $openid, 'nick' => $nickname);
return $cb_arr;
}
示例11: callback
public function callback()
{
define('QQ_LOGIN_APPID', $this->config->get('qq_login_appid'));
define('QQ_LOGIN_APPKEY', $this->config->get('qq_login_appkey'));
define('QQ_CALLBACK_URI', HTTP_SERVER . 'catalog/controller/api/qq_callback.php');
require_once DIR_SYSTEM . 'library/qq/qqConnectAPI.php';
$qc = new QC();
$access_token = $qc->qq_callback();
$openid = $qc->get_openid();
$qui = new QC($access_token, $openid);
$user_info = $qui->get_user_info();
$this->session->data['qq_nickname'] = $user_info['nickname'];
$this->load->language('extension/module/qq_login');
$data['text_qq_login'] = $this->language->get('text_qq_login');
if (stristr($openid, 'error')) {
echo $this->language->get('error_openid');
} elseif ($openid) {
$this->session->data['qq_openid'] = $openid;
if ($this->customer->login_qq($this->session->data['qq_openid'])) {
unset($this->session->data['guest']);
// Default Addresses
$this->load->model('account/address');
if ($this->config->get('config_tax_customer') == 'payment') {
$this->session->data['payment_address'] = $this->model_account_address->getAddress($this->customer->getAddressId());
}
if ($this->config->get('config_tax_customer') == 'shipping') {
$this->session->data['shipping_address'] = $this->model_account_address->getAddress($this->customer->getAddressId());
}
$this->response->redirect($this->url->link('account/account', '', 'SSL'));
} else {
$this->session->data['qq_login_warning'] = sprintf($this->language->get('text_qq_login_warning'), $this->config->get('config_name'));
$this->response->redirect($this->url->link('account/login', '', 'SSL'));
}
} else {
echo $this->language->get('text_qq_fail');
}
}
示例12: randusname
</head>
<?php
session_start();
function randusname($name)
{
$nickname = $name . '_' . rand(1000, 9999);
return $nickname;
}
require_once "../../../include/conn.php";
require_once "../../../include/myfunction.php";
require_once "../API/qqConnectAPI.php";
require_once "../../../config.inc.php";
require_once "../../../uc_client/client.php";
$siteweb = GetSiteconfig();
$qc = new QC();
$qqcallback = $qc->qq_callback();
$qqid = $qc->get_openid();
$qc = new QC($qqcallback, $qqid);
$arr = $qc->get_user_info();
if (!empty($qqcallback)) {
$sql = "select * from user where qq_ua='{$qqid}'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
$usxx = mysql_fetch_assoc($result);
if (!empty($_SESSION['usnamese']) && !empty($usxx['qq_ua'])) {
echo "<script>location='/u'</script>";
exit;
}
if ($count) {
if (time() > $usxx['Pingbi']) {
$_SESSION['usnamese'] = $usxx['name'];
示例13: callback
public function callback()
{
global_run();
require_once APP_ROOT_PATH . "system/api_login/qqv2/qqConnectAPI.php";
$qc = new QC();
$access_token = $qc->qq_callback();
$openid = $qc->get_openid();
$use_info_keysArr = array("access_token" => $access_token, "openid" => $openid, "oauth_consumer_key" => $this->api['config']['app_key']);
$use_info_url = "https://graph.qq.com/user/get_user_info";
$graph_use_info_url = $qc->urlUtils->combineURL($use_info_url, $use_info_keysArr);
$response = $qc->urlUtils->get_contents($graph_use_info_url);
if ($response['ret'] != 0) {
showErr("授权失败,错误信息:" . $response['msg']);
die;
}
$response = json_decode($response, 1);
$msg['field'] = 'qqv2_id';
$msg['id'] = $openid;
$msg['name'] = $response["nickname"];
es_session::set("api_user_info", $msg);
$user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where qqv2_id = '" . $openid . "' and qqv2_id <> '' and is_effect=1 and is_delete=0");
$is_bind = intval(es_session::get("is_bind"));
if ($user_data) {
$GLOBALS['db']->query("update " . DB_PREFIX . "user set qq_token = '" . $access_token . "',login_ip = '" . CLIENT_IP . "',login_time= " . NOW_TIME . " where id =" . $user_data['id']);
es_session::delete("api_user_info");
if ($is_bind) {
if (intval($user_data['id']) != intval($GLOBALS['user_info']['id'])) {
showErr("该帐号已经被别的会员绑定过,请直接用帐号登录", 0, url("index", "uc_account"));
} else {
require_once APP_ROOT_PATH . "system/model/user.php";
load_user($user_data['id'], true);
es_session::set("user_info", $user_data);
app_redirect(url("index", "uc_account"));
}
} else {
require_once APP_ROOT_PATH . "system/model/user.php";
auto_do_login_user($user_data['user_name'], $user_data['user_pwd'], $from_cookie = false);
app_redirect(url("index", "index"));
}
} elseif ($is_bind == 1 && $GLOBALS['user_info']) {
//当有用户身份且要求绑定时
$GLOBALS['db']->query("update " . DB_PREFIX . "user set qqv2_id= '" . $msg['id'] . "', qq_token ='" . $access_token . "' where id =" . $GLOBALS['user_info']['id']);
require_once APP_ROOT_PATH . "system/model/user.php";
load_user($GLOBALS['user_info']['id'], true);
app_redirect(url("index", "uc_account"));
} else {
$user_info = $this->create_user();
require_once APP_ROOT_PATH . "system/model/user.php";
auto_do_login_user($user_info['user_name'], $user_info['user_pwd'], $from_cookie = false);
app_redirect(url("index", "index"));
}
}
示例14: qq_sucsess
public function qq_sucsess()
{
session_start();
define('M_ROOT', dirname(dirname(__FILE__)));
$ss = M_ROOT;
$str = str_replace("\\", "/", $ss);
include_once $str . "/API/qq/qqConnectAPI.php";
$qc = new \QC();
$atid = $qc->qq_callback();
$opid = $qc->get_openid();
$opid = (string) $opid;
$state = I('state');
$_SESSION['state'] = $state;
$qc = new \QC($atid, $opid);
// 重新带参地new一次否则会丢失信息
$user_model = D('yuser');
$find = $user_model->field('uid,username,nickname,figureurl,userpic')->where(' openid=' . '"' . $opid . '"')->find();
if (empty($find)) {
$info = $qc->__call('get_user_info');
}
if (!empty($info)) {
$data = array('username' => $info['nickname'], 'nickname' => $info['nickname'], 'sex' => $info['gender'], 'province' => $info['province'], 'city' => $info['city'], 'year' => $info['year'], 'figureurl' => $info['figureurl_qq_2'], 'openid' => $opid, 'tokenid' => $atid, 'addtime' => date('Y-m-d H:i:s'), 'loginip' => get_client_ip(), 'status' => 1);
if ($id = $user_model->add($data)) {
$user = $user_model->field('uid,username,figureurl,userpic')->where('uid=' . $id)->find();
$picName = $find['userpic'];
$picInfo = pathinfo($picName);
$find['userpic'] = $picInfo['filename'] . '70.' . $picInfo['extension'];
$_SESSION['user'] = $user;
$this->redirect('/Index', '登录成功,正在跳转到首页', 0);
}
} else {
$picName = $find['userpic'];
$picInfo = pathinfo($picName);
$find['userpic'] = $picInfo['filename'] . '70.' . $picInfo['extension'];
$qiandao = $user_model->getQiandao($find['uid']);
$find['qiandao'] = $qiandao;
$data = array('lastlogin' => date('Y-m-d H:i:s', time()), 'uid' => session('user.uid'));
$user_model->save($data);
$_SESSION['user'] = $find;
$this->redirect('/Index', '登录成功,正在跳转到首页', 0);
}
}
示例15: qqCallback
/**
* qq登陆回调
* @return void
*/
public function qqCallback()
{
require_once APP_DIR . "vendors/auth/qq/API/qqConnectAPI.php";
$qc = new \QC();
$token = $qc->qq_callback();
$openid = $qc->get_openid();
if (!$openid || !$token) {
return;
}
//授权之后的操作,默认是登录
$auth_action = $this->input->cookie('auth_action');
if ($auth_action) {
//清楚此临时cookie
$this->output->cookie(['auth_action' => ''], 0);
} else {
$auth_action = 'login';
}
//得到第三方账户对应的数据库账户
$account = $this->related_account->one($openid);
if ($auth_action == 'login') {
if ($account) {
// 在登录前转移数据
$this->transferData($account->uid);
$this->model('passport')->login($account->uid, 'password');
$this->output->view('passport/qq', ['uid' => $account->uid]);
} else {
$qc = new \QC($token, $openid);
$userinfo = $qc->get_user_info();
//判断nickname是否存在
if ($this->user->isNicknameExist($userinfo['nickname'])) {
$userinfo['nickname'] = $userinfo['nickname'] . '_' . substr(md5(time()), 0, 2);
}
$data = ['with_openid' => 1, 'nickname' => $userinfo['nickname'], 'created' => time(), 'modified' => time(), 'login_ip' => ip2long($this->input->ip())];
$uid = $this->user->insert($data);
if ($uid) {
$this->user_config->insert(['uid' => $uid]);
// 添加默认标签
$this->tag->addDefaultTags($uid);
// 转移数据
$this->transferData($account->uid);
}
//头像放入队列获取
$this->redis('queue')->lPush('queue:avatar:download', "{$uid}|{$userinfo['figureurl_qq_2']}");
if ($uid) {
if ($this->related_account->insert(['uid' => $uid, 'app_uid' => $openid, 'app_id' => $this->config->logintype['qq'], 'access_token' => $token])) {
$this->model('passport')->login($uid, 'password');
$this->output->view('passport/qq', ['uid' => $uid]);
} else {
echo 'login error';
}
} else {
echo 'login error';
}
}
} else {
if ($auth_action == 'bind') {
//得到当前用户
$uid = $this->passport->getAuthenticatedUid();
//用户未登录
if (!$uid) {
$this->output->view('passport/bind_failed', ['message' => "请您先登录", 'app' => 'qq']);
exit;
}
//检测当前登录用户是否已经绑定了qq账号,如果绑定了则要求解绑
$result = $this->related_account->select(['where' => ['uid' => $uid]]);
if ($result && $result[0] && $result[0]->app_id == $this->config->logintype['qq']) {
//已经绑定qq
if ($result[0]->app_uid == $openid) {
$this->output->view('passport/bind_failed', ['message' => "您已经绑定此QQ账号,无需再次绑定", 'app' => 'qq']);
} else {
$this->output->view('passport/bind_failed', ['message' => "您已经绑定其他QQ账号,请先解绑,然后绑定新的QQ账号", 'app' => 'qq']);
}
exit;
}
//绑定QQ账户
if ($account) {
//如果此账户已经在数据库中存在关联,
$user = $this->user->one($account->uid);
//如果此qq账号已经绑定邮箱
if ($user->mail) {
$this->output->view('passport/bind_failed', ['message' => "此账户已经与另一账号绑定,请先解绑另一账户", 'app' => 'qq']);
exit;
} else {
//将第三方关联到当前用户,
if ($this->related_account->update(['uid' => $uid, 'access_token' => $token], ['app_uid' => $openid, 'uid' => $account->uid, 'app_id' => $this->config->logintype['qq']])) {
//转移数据(贴纸,标签,图片,书签)到当前用户
$from = $account->uid;
$to = $uid;
$this->user->mergeUserData($from, $to);
//成功页面
$this->output->view('passport/bind_success', ['app' => 'qq']);
} else {
$this->output->view('passport/bind_failed', ['message' => '关联失败', 'app' => 'qq']);
}
}
} else {
//.........这里部分代码省略.........