体育管项目脚本
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

<?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();