Files
sam-kd/etax/dev.md

1.1 KiB

Etax 개발 노트

API 오류 해결 가이드

바로빌 SOAP 클라이언트 미설치 오류 (500 Error)

문제 상황: 서버에 PHP SOAP 확장 모듈이 설치되어 있지 않은 경우(Class 'SoapClient' not found), new SoapClient() 호출 시 치명적인 오류(Fatal Error)가 발생하여 HTTP 500 상태 코드를 반환합니다.

해결 방법: soapClient 생성 로직을 try-catch 블록으로 감싸되, Exception이 아닌 **Throwable**을 catch해야 합니다. PHP 7+에서는 치명적인 오류가 Error 객체로 던져지며, 이는 Exception이 아닌 Throwable 인터페이스를 구현하기 때문입니다.

수정 예시:

$barobillSoapClient = null;
try {
    $barobillSoapClient = new SoapClient($url, $options);
} catch (Throwable $e) {
    // Class not found 등의 Fatal Error도 여기서 잡힘
    error_log('SOAP Client 생성 실패: ' . $e->getMessage());
    // 이후 로직에서 $barobillSoapClient가 null일 경우의 대체 로직(예: 시뮬레이션 모드) 수행
}

적용 파일:

  • etax/api/barobill_config.php
  • etax/api/issue.php (전역 에러 핸들링)