error)) { echo "

error:

" . $msg->error; echo "

msg :

" . $msg->error_description; } } $params = array(); parse_str($response, $params); //set access token to session session("access_token",$params["access_token"]); } else { echo("The state does not match. You may be a victim of CSRF."); } } function get_openid() { $graph_url = "https://graph.qq.com/oauth2.0/me?access_token=" . session('access_token'); $str = get_url_contents($graph_url); if (strpos($str, "callback") !== false) { $lpos = strpos($str, "("); $rpos = strrpos($str, ")"); $str = substr($str, $lpos + 1, $rpos - $lpos -1); } $user = json_decode($str); if (isset($user->error)) { echo "

error:

" . $user->error; echo "

msg :

" . $user->error_description; } //set openid to session session('openid',$user->openid); } //QQ登录成功后的回调地址,主要保存access token qq_callback(); //获取用户标示id get_openid(); @header('location: '.HOME_SITE_URL.'/Connectqq'); ?>