https://www.nongsarang.com/shop/
영카트 5.6.24 최신 버전입니다.
이니시스 결제 완료시 응답없음 에러가 나옵니다. 소스 수정한것 없으며, KG이니시스 웹결제 사인키 등 정보 등록하였습니다.
log 폴더 권한도 707로 변경하였구요, 결제창까지 모두 정상으로 나오는데, 실제 결제를 하면 결제 완료에서 오류가 나오네요.
호스팅은 나우호스팅 사용중에 있습니다.
결제시 20초 정도 로딩이 걸리면서
https://www.nongsarang.com/shop/inicis/inistdpay_return.php 페이지에서 아래 처럼 나오네요.
어떻게 해야 될지 도와주세요.
영카트 5.6.24 최신 버전입니다.
이니시스 결제 완료시 응답없음 에러가 나옵니다. 소스 수정한것 없으며, KG이니시스 웹결제 사인키 등 정보 등록하였습니다.
log 폴더 권한도 707로 변경하였구요, 결제창까지 모두 정상으로 나오는데, 실제 결제를 하면 결제 완료에서 오류가 나오네요.
호스팅은 나우호스팅 사용중에 있습니다.
결제시 20초 정도 로딩이 걸리면서
https://www.nongsarang.com/shop/inicis/inistdpay_return.php 페이지에서 아래 처럼 나오네요.
어떻게 해야 될지 도와주세요.
Gateway Timeout
The gateway did not receive a timely response from the upstream server or application.
답변 4개 / 댓글 2개
채택된 답변
+20 포인트
2주 전
지금 증상으로 보면 이니시스 쪽 문제라기보다는 결제 완료 후 돌아오는 inistdpay_return.php에서 서버가 응답을 제때 못 주면서 타임아웃이 나는 상황으로 보입니다.
결제창까지는 정상이고, 실제 결제 후 20초 정도 멈췄다가 Gateway Timeout이 나온다면 return 페이지 내부 처리에서 지연이 걸리는 경우가 대부분입니다.
우선 가장 먼저 확인하셔야 할 부분은 return 페이지 안에서 이니시스 승인 검증 통신을 하는 구간입니다. 보통 결제 완료 후 서버에서 이니시스 측으로 한 번 더 승인 검증 요청을 보내는데, 이때 curl 통신이 막히거나 SSL 인증 문제, 방화벽 차단 등이 있으면 그 자리에서 대기하다가 타임아웃이 발생합니다.
나우호스팅을 사용 중이라고 하셨으니, 외부 HTTPS 통신이 제한되어 있는지 고객센터에 문의해보시는 것이 좋겠습니다. KG이니시스 승인 서버로 나가는 443 포트 outbound 통신이 정상적으로 허용되어 있는지 확인이 필요합니다.
또 하나는 NOTI URL 설정입니다. 이니시스 관리자 페이지에서 서버통보 URL이 정확히 등록되어 있는지 확인하시고, 해당 URL이 외부에서 접근 가능하며 404나 403, 500 오류 없이 정상 응답하는지도 점검해보셔야 합니다. 호스팅 보안 설정이나 mod_security 같은 웹방화벽에서 이니시스 POST 요청을 차단하는 경우도 있습니다.
log 폴더 권한을 707로 변경하셨다고 하셨는데, 환경에 따라 웹서버 계정이 실제로 쓰기 권한이 없는 경우도 있습니다. 테스트로 잠시 777로 올려서 증상이 달라지는지 확인해보시고, 가능하다면 소유자를 웹서버 계정에 맞추는 방식이 더 안전합니다. 로그 기록이나 파일 저장 단계에서 멈춰도 동일하게 타임아웃이 발생합니다.
그리고 PHP 실행 시간 제한도 확인해보셔야 합니다. max_execution_time이나 default_socket_timeout 값이 낮게 설정되어 있으면 승인 검증 통신이 조금만 지연되어도 바로 끊깁니다. 호스팅 환경이라면 타임아웃 관련 설정을 조정할 수 있는지도 문의해보시는 것이 좋겠습니다.
가장 빠르게 원인을 찾는 방법은 inistdpay_return.php 상단과 승인 검증 직전, 직후에 로그를 남겨서 어느 구간에서 멈추는지 확인하는 것입니다. 에러 로그도 함께 확인하시면 정확한 지점을 찾는 데 도움이 됩니다.
정리하면, 현재 상황은 결제 완료 후 return 페이지 내부 처리 중 외부 통신이나 파일, DB 처리 단계에서 지연이 발생하면서 웹서버가 타임아웃을 내는 케이스로 보입니다. return.php 코드 일부를 확인해보면 더 정확하게 짚어드릴 수 있을 것 같습니다.
결제창까지는 정상이고, 실제 결제 후 20초 정도 멈췄다가 Gateway Timeout이 나온다면 return 페이지 내부 처리에서 지연이 걸리는 경우가 대부분입니다.
우선 가장 먼저 확인하셔야 할 부분은 return 페이지 안에서 이니시스 승인 검증 통신을 하는 구간입니다. 보통 결제 완료 후 서버에서 이니시스 측으로 한 번 더 승인 검증 요청을 보내는데, 이때 curl 통신이 막히거나 SSL 인증 문제, 방화벽 차단 등이 있으면 그 자리에서 대기하다가 타임아웃이 발생합니다.
나우호스팅을 사용 중이라고 하셨으니, 외부 HTTPS 통신이 제한되어 있는지 고객센터에 문의해보시는 것이 좋겠습니다. KG이니시스 승인 서버로 나가는 443 포트 outbound 통신이 정상적으로 허용되어 있는지 확인이 필요합니다.
또 하나는 NOTI URL 설정입니다. 이니시스 관리자 페이지에서 서버통보 URL이 정확히 등록되어 있는지 확인하시고, 해당 URL이 외부에서 접근 가능하며 404나 403, 500 오류 없이 정상 응답하는지도 점검해보셔야 합니다. 호스팅 보안 설정이나 mod_security 같은 웹방화벽에서 이니시스 POST 요청을 차단하는 경우도 있습니다.
log 폴더 권한을 707로 변경하셨다고 하셨는데, 환경에 따라 웹서버 계정이 실제로 쓰기 권한이 없는 경우도 있습니다. 테스트로 잠시 777로 올려서 증상이 달라지는지 확인해보시고, 가능하다면 소유자를 웹서버 계정에 맞추는 방식이 더 안전합니다. 로그 기록이나 파일 저장 단계에서 멈춰도 동일하게 타임아웃이 발생합니다.
그리고 PHP 실행 시간 제한도 확인해보셔야 합니다. max_execution_time이나 default_socket_timeout 값이 낮게 설정되어 있으면 승인 검증 통신이 조금만 지연되어도 바로 끊깁니다. 호스팅 환경이라면 타임아웃 관련 설정을 조정할 수 있는지도 문의해보시는 것이 좋겠습니다.
가장 빠르게 원인을 찾는 방법은 inistdpay_return.php 상단과 승인 검증 직전, 직후에 로그를 남겨서 어느 구간에서 멈추는지 확인하는 것입니다. 에러 로그도 함께 확인하시면 정확한 지점을 찾는 데 도움이 됩니다.
정리하면, 현재 상황은 결제 완료 후 return 페이지 내부 처리 중 외부 통신이나 파일, DB 처리 단계에서 지연이 발생하면서 웹서버가 타임아웃을 내는 케이스로 보입니다. return.php 코드 일부를 확인해보면 더 정확하게 짚어드릴 수 있을 것 같습니다.
답변에 대한 댓글 2개
2주 전
방화벽이나 통신상에 문제는 없는지 체크해 보셔야 할듯 합니다.
3주 전
중간중간 exit;를 넣어가시면서 문제 소스를 찾아보시면 좋을듯합니다
3주 전
방화벽, 보안 설정, SSL 인증서 문제 등 을 체크해보시기 바랍니다.
답변을 작성하려면 로그인이 필요합니다.