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.
38 lines
1.3 KiB
38 lines
1.3 KiB
<?php
|
|
namespace LaneWeChat\Core;
|
|
|
|
class AccessToken{
|
|
public static function getAccessToken(){
|
|
$accessToken = self::_checkAccessToken();
|
|
if($accessToken === false){
|
|
$accessToken = self::_getAccessToken();
|
|
}
|
|
return $accessToken['access_token'];
|
|
}
|
|
|
|
private static function _getAccessToken(){
|
|
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.WECHAT_APPID.'&secret='.WECHAT_APPSECRET;
|
|
$accessToken = Curl::callWebServer($url, '', 'GET');
|
|
if(!isset($accessToken['access_token'])){
|
|
return Msg::returnErrMsg(MsgConstant::ERROR_GET_ACCESS_TOKEN, '获取ACCESS_TOKEN失败');
|
|
}
|
|
$accessToken['time'] = time();
|
|
$accessTokenJson = json_encode($accessToken);
|
|
$f = fopen('access_token', 'w+');
|
|
fwrite($f, $accessTokenJson);
|
|
fclose($f);
|
|
return $accessToken;
|
|
}
|
|
|
|
private static function _checkAccessToken(){
|
|
$data = file_get_contents('access_token');
|
|
$accessToken['value'] = $data;
|
|
if(!empty($accessToken['value'])){
|
|
$accessToken = json_decode($accessToken['value'], true);
|
|
if(time() - $accessToken['time'] < $accessToken['expires_in']-10){
|
|
return $accessToken;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
} |