您的位置:首页 > 移动开发 > 微信开发

php 微信授权登陆

2016-03-22 00:00 676 查看
摘要: 微信授权登陆

<?php
//require "Config.php";    //引入设置
auth();
//通过验证,进行授权登录
function auth(){
$auth = new HyAuth();
switch($_GET['method']){
case 'getcode':
$auth->getAccessToken();
break;
case 'getData':
$auth->getData();
break;
default:
$auth->my_auth();
break;
}
}

class HyAuth{

private $APPID = 'xxxxxxxxxxxxx';
private $APPSECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx';
//https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

/**
* 用户显示授权
*/
function my_auth(){
// echo "Ok";
$appid = $this->APPID;
$secret = $this->APPSECRET;
$state = md5(rand(100,999).time().rand(100,999));
$redirect_uri = urlencode('http://hanghaiwang.zoneluo.com/bin/controller/auth.php?method=getcode');
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$redirect_uri.'&response_type=code&scope=snsapi_userinfo&state=state#wechat_redirect';
header('Location:'.$url);
}

/**
* 获取用户的openid和acss_token(用于显示授权)
*/
function getAccessToken(){
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->APPID.'&secret='.$this->APPSECRET.'&code='.$_GET['code'].'&grant_type=authorization_code';
include_once(dirname(dirname(__FILE__))."/res/comm.php");
$data = json_decode(curl_get($url),true) ;
$this->getUserInfo($data);
}

/**
* 用户显示授权获取用户具体信息
*/
function getUserInfo($array){
include_once(dirname(dirname(__FILE__))."/res/comm.php");
$url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$array['access_token'].'&openid='.$array['openid'].'&lang=zh_CN';
//$data = curl_get($url);
$data = json_decode(curl_get($url),true) ;
include_once(dirname(dirname(__FILE__))."/dao/UsersDao.class.php");
$userDao = new UsersDao();
$users = $userDao->selectUserData($data);
if(empty($users)){
$result = $userDao->addUserData($data);
$_SESSION['uid'] = $result;
$_SESSION['project'] = 'huangshi';
}else{
$_SESSION['uid'] = $users['id'];
$_SESSION['project'] = 'huangshi';
}
header('Location:http://hanghaiwang.zoneluo.com/index.php');
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: