커서가 망쳐놓은 듯

This commit is contained in:
2026-03-17 12:33:30 +09:00
parent 6fc179f598
commit c2b2b711e0
91 changed files with 45391 additions and 2244 deletions

View File

@@ -332,34 +332,19 @@ class KISClient:
logger.info("한투 토큰 캐시 사용 (%s) | 파일=%s | 토큰앞8=%s", mode_str, path, token_head)
return
# 캐시 없음/만료 → API로 새 토큰 발급 (캐시 파일 없어도 자동 발급)
appkey_tail = (self.app_key[-4:] if len(self.app_key) >= 4 else self.app_key) or "????"
logger.info(
"한투 토큰 발급 요청 (%s) | 앱키 끝4자리=%s | 저장할 캐시=%s",
mode_str, appkey_tail, path,
)
url = f"{self.base_url}/oauth2/tokenP"
body = {"grant_type": "client_credentials", "appkey": self.app_key, "appsecret": self.app_secret}
# 캐시 없음/만료 → kis_token_manager 경로로만 발급 (잠금·1일1회 준수, SMS 시각 안정화)
try:
r = requests.post(url, json=body, timeout=10)
data = r.json()
if "access_token" in data:
self.access_token = data["access_token"]
expired = data.get("access_token_token_expired") or ""
_save_kis_token_cache(self.access_token, expired, self.mock)
token_head = (self.access_token[:8] + "") if self.access_token and len(self.access_token) > 8 else "(없음)"
logger.info(
"한투 토큰 발급 완료 (%s) | 캐시=%s | 앱키끝4=%s | 토큰앞8=%s",
mode_str, path, appkey_tail, token_head,
)
else:
logger.error("한투 토큰 발급 실패: %s", data)
if isinstance(data, dict) and data.get("error_code") == "EGW00133":
logger.warning("한투 1분당 1회 제한. 1분 후 재시도하거나 캐시 사용: %s", path)
raise RuntimeError("한투 토큰 발급 실패")
from kis_token_manager import ensure_token
if ensure_token(self.mock):
cached = _load_kis_token_cache(self.mock)
if cached:
self.access_token = cached
token_head = (cached[:8] + "") if len(cached) > 8 else "(없음)"
logger.info("한투 토큰 발급 완료 (%s) | 캐시=%s | 토큰앞8=%s", mode_str, path, token_head)
return
except Exception as e:
logger.error("한투 인증 예외: %s", e)
raise
logger.warning("kis_token_manager 발급 실패, 재시도: %s", e)
raise RuntimeError("한투 토큰 발급 실패 (캐시 없음·만료 시 kis_token_manager.ensure_token 사용)")
def _get_hashkey(self, body):
"""해시키(Hashkey) 발급 - POST 요청 시 body 무결성 검증용"""