You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
3.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
// 第三方授权登录插件类如有BUG请联系本人
/*===========================================================
* author : 青蜂网络
* 官方网址 : www.0769web.net
* QQ : 75283535
* VERSION : 1.0v
* DATE : 2016-2-23
* 尊重作者,保留版权信息
* 版权所有 青蜂网络
* 使用;不允许对程序代码以任何形式任何目的的再发布。
**/
if (defined('WEBSITE'))
{
global $_LANG;
$_LANG['help']['APP_KEY'] = '微信开放平台中创建网站应用审核通过后获取的AppID';
$_LANG['help']['APP_SECRET'] = '微信开放平台中创建网站应用审核通过后获取的AppSecret';
$_LANG['APP_KEY'] = 'AppID';
$_LANG['APP_SECRET'] = 'AppSecret';
$i = isset($web) ? count($web) : 0;
// 类名
$web[$i]['name'] = '微信扫码登录';
// 文件名,不包含后缀
$web[$i]['type'] = 'weixin';
$web[$i]['className'] = 'weixin';
// 作者信息
$web[$i]['author'] = '青蜂网络';
// 网址
$web[$i]['www'] = '<a href="http://www.0769web.net" target="_blank">www.0769web.net</a>';
// 作者qq
$web[$i]['qq'] = '782869779';
// 申请网址
$web[$i]['website'] = 'http://open.weixin.qq.com';
// 版本号
$web[$i]['version'] = '3.0';
// 更新日期
$web[$i]['date'] = '2017-06-28';
// 配置信息
$web[$i]['config'] = array(
array('type'=>'text' , 'name'=>'APP_KEY', 'value'=>''),
array('type'=>'text' , 'name' => 'APP_SECRET' , 'value' => ''),
);
}
if (!defined('WEBSITE'))
{
include 'oath2.class.php';
class website extends oath2
{
var $token;
var $error_msg;
var $parameter = array();
function __construct(){
$this->website();
}
function website()
{
$state = md5(time()+rand(0,9999));
$_SESSION['weixin_state'] = $state;
$this->authorizeURL = 'https://open.weixin.qq.com/connect/qrconnect';
$this->app_key = APP_KEY;
$this->app_secret = APP_SECRET;
$this->parameter = array(
'response_type' => 'code',
'scope' => 'snsapi_login',
'state' => $state,
);
}
function login($redirect_uri='')
{
$url = $this->authorizeURL.'?';
$url .= 'appid='.$this->app_key;
if(!empty($redirect_uri))
{
$this->parameter['redirect_uri'] = $redirect_uri;
}
$url .= '&'.http_build_query($this->parameter);
return $url;
}
function getAccessToken()
{
$code = empty($_REQUEST['code'])?'':$_REQUEST['code'];
$url = sprintf('https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code',$this->app_key,$this->app_secret,$code);
$result = $this->http($url);
$result_arr = json_decode($result,true);
$token = $result_arr['access_token'];
$refresh = $result_arr['refresh_token'];
$openid = $result_arr['openid'];
$_SESSION['openid'] = $openid;
return $token;
}
function setAccessToken($token)
{
$this->token = $token;
return true;
}
function getMessage()
{
$url = sprintf('https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s',$this->token,$_SESSION['openid']);
$result = $this->http($url);
$result_arr = json_decode($result,true);
$ret = array();
$ret['name'] = $result_arr['nickname'];
$ret['sex'] = $result_arr['sex'];
$ret['user_id'] = $result_arr['openid'];
$ret['img'] = $result_arr['headimgurl'];
return $ret;
}
function get_error()
{
return '未知错误';
}
}
}