mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2024-12-04 21:09:43 +08:00
103 lines
3.2 KiB
PHP
Executable File
103 lines
3.2 KiB
PHP
Executable File
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Devil
|
|
// +----------------------------------------------------------------------
|
|
namespace base;
|
|
|
|
/**
|
|
* 百度用户授权驱动
|
|
* @author Devil
|
|
* @version V_1.0.0
|
|
*/
|
|
class BaiduAuth
|
|
{
|
|
/**
|
|
* [__construct 构造方法]
|
|
*/
|
|
public function __construct(){}
|
|
|
|
/**
|
|
* 用户授权
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 1.0.0
|
|
* @date 2018-11-06
|
|
* @desc description
|
|
* @param [array] $params [输入参数]
|
|
*/
|
|
public function GetAuthUserInfo($params = [])
|
|
{
|
|
if(empty($params['authcode']))
|
|
{
|
|
return ['status'=>-1, 'msg'=>'授权码有误'];
|
|
}
|
|
if(empty($params['config']))
|
|
{
|
|
return ['status'=>-1, 'msg'=>'配置有误'];
|
|
}
|
|
|
|
$data = [
|
|
'code' => $params['authcode'],
|
|
'client_id' => $params['config']['key'],
|
|
'sk' => $params['config']['secret'],
|
|
];
|
|
$result = $this->HttpRequest('https://spapi.baidu.com/oauth/jscode2sessionkey', $data);
|
|
if(empty($result['openid']))
|
|
{
|
|
return ['status'=>-1, 'msg'=>$result['error_description']];
|
|
}
|
|
return ['status'=>0, 'msg'=>'授权成功', 'data'=>$result];
|
|
}
|
|
|
|
/**
|
|
* [HttpRequest 网络请求]
|
|
* @author Devil
|
|
* @blog http://gong.gg/
|
|
* @version 1.0.0
|
|
* @datetime 2017-09-25T09:10:46+0800
|
|
* @param [string] $url [请求url]
|
|
* @param [array] $data [发送数据]
|
|
* @return [mixed] [请求返回数据]
|
|
*/
|
|
private function HttpRequest($url, $data)
|
|
{
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
curl_setopt($ch, CURLOPT_FAILONERROR, false);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
|
$body_string = '';
|
|
if(is_array($data) && 0 < count($data))
|
|
{
|
|
foreach($data as $k => $v)
|
|
{
|
|
$body_string .= $k.'='.urlencode($v).'&';
|
|
}
|
|
curl_setopt($ch, CURLOPT_POST, true);
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $body_string);
|
|
}
|
|
$headers = array('content-type: application/x-www-form-urlencoded;charset=UTF-8');
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
|
$reponse = curl_exec($ch);
|
|
if(curl_errno($ch))
|
|
{
|
|
return false;
|
|
} else {
|
|
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
if(200 !== $httpStatusCode)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
curl_close($ch);
|
|
return json_decode($reponse, true);
|
|
}
|
|
}
|
|
?>
|