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.
113 lines
3.3 KiB
113 lines
3.3 KiB
<?php
|
|
|
|
namespace task\tasks;
|
|
include 'Base.php';
|
|
class LibLease extends Base
|
|
{
|
|
|
|
# 获取token url
|
|
protected $accessTokenUrl = 'https://ulas1.szlib.org.cn/auth/oauth/token?grant_type=password&scope=app';
|
|
# 获取数据 url
|
|
protected $dataUrl = 'https://api.szlib.org.cn/monitor/getLibraryServiceData?access_token=';
|
|
# client_id
|
|
protected $client_id = 'baapi';
|
|
# client_secret
|
|
protected $client_secret = 'Ba2020api';
|
|
protected $username = 'balib';
|
|
protected $password = 'Ba2015lib';
|
|
protected $accessTokenFilename = 'lib_lease_access_token.txt';
|
|
|
|
|
|
public function run()
|
|
{
|
|
$fileData = @file_get_contents($this->accessTokenFilename);
|
|
$assess_token = $fileData ?: $this->getAccessToken();
|
|
|
|
$config = $this->config('api_config');
|
|
$url = $this->dataUrl . $assess_token;
|
|
$result = $this->sendGetCurl($url);
|
|
$result_data = json_decode($result,true);
|
|
|
|
# token过期重新获取
|
|
if (isset($result_data['error']) && $result_data['error'] == 'invalid_token') {
|
|
$assess_token = $this->getAccessToken();
|
|
$url = $this->dataUrl . $assess_token;
|
|
$result = $this->sendGetCurl($url);
|
|
$result_data = json_decode($result,true);
|
|
}
|
|
|
|
if ($result_data['result'] != 'success') return '失败';
|
|
|
|
$requestData = [
|
|
[
|
|
'library' => '044007',
|
|
'newreader' => $result_data['newreader'],
|
|
'servcount' => $result_data['servcount'],
|
|
'returncount' => $result_data['returncount']
|
|
]
|
|
];
|
|
$requestRes = $this->request_create_data($requestData,'/api/library.pass/createLibraryLease',$config['host_path'],true);
|
|
|
|
if (!$requestRes['status']) return $requestRes['msg'];
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 获取登陆token
|
|
*/
|
|
protected function getAccessToken()
|
|
{
|
|
|
|
$url = $this->accessTokenUrl;
|
|
$url .= "&client_id=".$this->client_id;
|
|
$url .= "&client_secret=".$this->client_secret;
|
|
$url .= "&username=".$this->username;
|
|
$url .= "&password=".md5($this->password);
|
|
|
|
$result = $this->curl_post($url);
|
|
$deResult = json_decode($result,true);
|
|
if (isset($deResult['error'])) {
|
|
exit($deResult['error_description']);
|
|
}
|
|
$access_token = $deResult['access_token'];
|
|
|
|
file_put_contents($this->accessTokenFilename,$access_token);
|
|
|
|
return $access_token;
|
|
}
|
|
|
|
/**
|
|
* 发送get请求
|
|
* @param $url
|
|
* @return bool|string|void
|
|
*/
|
|
protected function sendGetCurl($url)
|
|
{
|
|
$curl = curl_init();
|
|
curl_setopt_array($curl, [
|
|
CURLOPT_URL => $url,
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_ENCODING => "",
|
|
CURLOPT_MAXREDIRS => 10,
|
|
CURLOPT_TIMEOUT => 30,
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
|
CURLOPT_CUSTOMREQUEST => "GET",
|
|
]);
|
|
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
|
$response = curl_exec($curl);
|
|
$err = curl_error($curl);
|
|
|
|
curl_close($curl);
|
|
|
|
if ($err) {
|
|
exit("cURL Error #:" . $err);
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
}
|
|
$lib = new LibLease();
|
|
echo $lib->run();
|
|
|