<?php
/*
실전투자 계좌 : 44324749-01
KIS Developers
사용자 ID : @2977183
API그룹
[해외선물옵션] 주문/계좌
[해외주식] 기본시세
[국내선물옵션] 주문/계좌
[국내주식] 기본시세
[장내채권] 기본시세
OAuth인증
[국내주식] ELW 시세
[국내주식] 순위분석
[국내주식] 업종/기타
[국내주식] 시세분석
[해외선물옵션]실시간시세
[국내선물옵션] 기본시세
제휴사
[해외선물옵션] 기본시세
[국내주식] 종목정보
[국내주식] 주문/계좌
[국내주식] 실시간시세
[국내선물옵션] 실시간시세
[해외주식] 시세분석
[장내채권] 주문/계좌
[해외주식] 실시간시세
[해외주식] 주문/계좌
[장내채권] 실시간시세
API 키 발급 주소 : https://securities.koreainvestment.com/main/customer/systemdown/RestAPIService.jsp?cmd=TF04ea03130
*/
$STOCK_ACCESS_KEY = "PSU1Yh8yFTvIRV3KulPkC6lJwpCBjpqHaqDz";
$STOCK_SECRET_KEY = "u18MELe21zujSk9nc1qFJhbCE+YRXdnzlcCQmPWtpGLYL4EAPcU8NX30NZMIlen/fwgIHdnO0epm7BpTw7VCXzmXoWE8c1J0fgic/FTaIrtKzwbpac7eXy+mFD26rqJhOHUMA9DNXWuxp4+qgRRIQkgEFBszcxsenTFdm9AsfOwj2mBqh5U=";
// 토큰 발급 함수 (매 API 호출 전에 이걸로 토큰 받아서 쓰면 됨)
function get_access_token($appkey, $appsecret) {
$token_file = '/tmp/kis_token.json';
// 저장된 토큰 확인
if (file_exists($token_file)) {
$saved = json_decode(file_get_contents($token_file), true);
if ($saved && $saved['expires'] > time() + 60) {
return $saved['token']; // 유효하면 그냥 반환
}
}
// 만료됐으면 재발급
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://openapi.koreainvestment.com:9443/oauth2/tokenP");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"grant_type" => "client_credentials",
"appkey" => $appkey,
"appsecret" => $appsecret
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
// 파일에 저장
file_put_contents($token_file, json_encode([
'token' => $res['access_token'],
'expires' => time() + 86400 - 300 // 24시간 - 5분 여유
]));
return $res['access_token'];
}
?>