orgNo = $company['orgNo'];
$this->appKey = $company['appKey'];
$this->prefixUrl = $company['url'];
}
/**
获取Token
*/
public function getToken($orgNo){
$filePath = public_path().'temp/'.$orgNo.'.txt';
$data = [];
$accessToken = '';
if(file_exists($filePath)){
$content = file_get_contents($filePath);
$data = $content ? json_decode($content,true) : [];
}
if(!empty($data) && $data['expires_time'] > time()){
$accessToken = $data['access_token'];
}else{
$url = $this->prefixUrl.'/api/open/getToken';
$timestamp = time();
$params = [
'appid' => $this->orgNo,
'appsecret' => $this->appKey,
];
$header = [
'Content-Type: application/json',
];
$ret = $this->request($url,json_encode($params),'post',$header);
$respone = json_decode($ret,true);
if(isset($respone['code']) && $respone['code'] == 1){
$data = json_encode($respone['data']);
$accessToken = $respone['data']['access_token'];
file_put_contents($filePath,$data);
}else{
print_r($url);
print_r('
');
print_r($params);
print_r('
');
print_r($respone);
exit;
}
}
if($accessToken == ''){
echo '获取Token失败';
return false;
}
return $accessToken;
}
/**
生成签名
$params : 请求参数数组
$token : access_token
$timestamp : 时间戳
$api : 当前请求接口除去域名的部分,如:/api/gasoline/recharge
*/
public function signature($params,$token,$timestamp,$api){
$params['token'] = $token;
sort($params, SORT_STRING);
// $tmpStr = implode($params);
$tmpStr = implode($params);
$str = $api.$token.$tmpStr.$timestamp;
$sign = sha1($str);
return $sign;
}
/**
网络请求方法
*/
public function request($url,$params,$method,$header = [],$gzip = false,$httpcode = false){
if(!$url) return;
$ch = curl_init();
if($method == 'get'){
$paramsUrl = http_build_query($params);
if(strpos($url,'?')){
$url .= '&'.$paramsUrl;
}else{
$url .= '?'.$paramsUrl;
}
}else{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
}
if($header){
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);
}
if($gzip) curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , 0);
$cEncode = curl_exec($ch);
if($httpcode){
$cEncode = [
'cEncode'=>$cEncode,
'httpCode'=>curl_getinfo($ch,CURLINFO_HTTP_CODE)
];
}
curl_close($ch);
return $cEncode;
}
}