가상계좌 입금처리 문의
주문번호 : dc8d131d-9264-4fb3-93ab-27dc22741f92
가상계좌 입금처리 테스트 중에 문제가 있어 문의드립니다.
카드결제나 가상계좌 결제는 문제없이 되고있으나, 입금완료 통보가 정상적으로 처리되지 않습니다.
어떤 문제인지 답변 부탁드립니다.
77 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
The target server failed to respond
에러를 받고 있습니다.
등록한 URL 에 서버가 정상동작하는지 확인부탁드립니다.
웹훅에 등록한 url을 직접 브라우저로 호출했을 때는 was 단까지 신호가 옵니다.
테스트 결제내역에서 입금처리 시에는 신호가 들어오지 않는 것으로 확인됩니다. 토스에서 호출이 되는지 확인이 필요합니다
개발서버 상에서는 모두 정상동작하는것을 확인했으나, 운영서버 적용 시 발생하는 문제입니다. 운영 url은 https://www.komir.or.kr:6700 인데 혹시 6700이라는 포트가 url 상에 붙어있는게 문제가 될까요?
port이슈는 아닙니다.
가맹점 서버나 방확벽에서 저희를 막는것은 아닌지 확인 부탁드려요.
POSTMAN 등의 툴로 직접 해당 URL을 method:POST로 하여 호출해보시면 원인파악에 도움이 되실거에요.
방화벽설정 완료되었습니다. 방화벽이 문제면 카드결제나 url 직접 호출시에도 통신이 안돼야 하는거 아닌가요?
결제할때 파라미터로 성공/실패 콜백은 정상적으로 호출이됩니다
카드결제나 URL 직접호출은 가맹점 -> 토스페이먼츠 outbound 이고
웹훅 통보는 토스페이먼츠 -> 가맹점 inbound 입니다.
outbound, inbound 차이가 있기 때문에 둘은 차이가 있습니다.
결제 시에 결제정보를 전달하면 그거에 대한 성공여부를 주시는데 이때 inbound가 아닌가요?
API 호출에 대한 response 니까 inbound 아닙니다.
successUrl : window.location.origin + "/${siteCd}/${prgrmSn}/fcltInspAply/<c:out value='${stlmFclt.fcltInspAplySn}' />/stlmSuccess",
failUrl : window.location.origin + "/${siteCd}/${prgrmSn}/fcltInspAply/<c:out value='${stlmFclt.fcltInspAplySn}' />/stlmFail",
결제 시에 소스입니다. 파라미터 전달해서 해당 url로 토스에서 inbound 호출을 합니다
이건 redirection 입니다.
successUrl 로 이동을 하니까요
아 그렇군요
그리고 successUrl 의 이동 주체는 client 이지, 토스페이먼츠가 아닙니다.
토스페이먼츠는 client 를 successUrl 로 redirection 시키고,
그 다음 client 에서 가맹점 쪽으로의 연결이나 이런것이 수행되는 순서 입니다.
네,
그런데, 현재 운영서버의 웹훅 URL을 인터넷 상의 컴퓨터 브라우저에서 호출하면 WAS 로그 상에 정상적으로 이벤트가 들어옵니다.
다만, 파라미터가 없기 때문에 403 에러가 나지만,,,
동일 네트워크 내에서 수행하셔서 이벤트가 있을것 같습니다.
동일 네트워크가 아닙니다.
5G 등 모바일 네트워크로 진행 해보세요
실제 운영서버는 공공기관 서버이고, 지금은 개발사에서 확인한 내용입니다.
지금 서버 / 네트워크 구성이 어떻게 되어 있는지 저희는 알지 못하니
가능한 public 쪽에서의 시도 해보시고
토스페이먼츠 에서의 통보도 추가로 확인 해보세요.
개발사가 어떤 환경하에서 시도한 것도 저희는 알지 못하니,
테스트 하신 모든 환경을 저희에게 설명 주시거나
이 부분이 힘드시면
5G 등의 public 에서 통보 테스트 해보고
토스페이먼츠 에서의 통보 테스트 해보고 등
순서를 잡아서 수행 해보세요
운영서버는 원주에 위치한 공공기관 서버로 webtob, jeus로 구성된 일반 홈페이지입니다
저희 개발사는 대전에 위치한 사무실에서 콜백 접속 테스트를 해 보았던 결과입니다.
공공기관 홈페이지 앞단에는 방화벽과 같은 보안 솔루션이 없는 것으로 확인하였습니다.
토스에서 웹훅 URL을 호출하는 것과 저희가 위치한 원격지 장소에서 브라우저로 해당 URL을 호출하는 것은 환경 상 같은 조건이라고 생각하여 말씀드렸습니다.
토스에서 호출하는 ip 시작점하고 원격지 지점 ip시작점은 다르지 않나요?
동일 네트워크라는 의문에 대해 동일 네트워크가 아니라는 걸 말씀드린겁니다.
그래서 방화벽 작업도 하신것 같은데
방화벽 작업? 그런 건 따로 없었습니다.
위에 설정 했다고 하신것 같은데요
아, 그건 이 내용과 관계없는 방화벽 설정이었습니다. 잘못 말씀드린 것 같습니다.
해당 방화벽은 결제 시 토스 서버로의 방화벽 설정이었습니다.
개발사에서 테스트 한것 관련해서 설명하시느라 그랬군요. 그 부분은 개발사 하고 확인 하셔야 겠네요
저희가 개발사입니다.
그러면 원청 쪽에 확인 요청 하셔야 하는거 아니에요??
원청 서버 방화벽 작업 잘 되었냐고?
결제를 위해서 토스로의 아웃바운드 방화벽을 설정한것입니다. 그래서 결제가 카드결제 및 가상계좌 결제가 성공한 것이구요
가상계좌는 토스 테스트 결제내역에서 입금 처리를 해야지 최종 완료가 되어
입금처리를 했는데 WAS 서버로 입금처리 URL 호출 신호가 도착하지 않았습니다.
그래서 해당 URL을 원격지 브라우저에서 직접 호출하였는데 신호가 들어왔구요
토스 웹훅에서 호출이 정상적으로 이루어지 않은 것에 대해서 확인이 필요할 듯 하여 요청드린겁니다.
대화 초기에 서버가 정상상태가 아닌 것 같다는 응답 내용을 보여주셨는데
서버는 정상적으로 동작하고 있거든요
홈페이지 웹(webtob) 서버 앞단에는 방화벽이 차단하고 있지 않습니다.
외부에서 직접 등록하신 주소를 POST로 호출해보면 소켓 연결이 제대로 이뤄지지 않습니다.
http://www.komir.or.kr:6700/생략/vaCallback
토스페이먼츠 IP만 방화벽에서 허용하셨을까요?
서버가 정상 동작하고 있다는 것은 어떻게 확인하셨을까요?
POSTMAN 등으로 해당 주소 직접 호출하신 것을 캡쳐하여 올려주실 수 있을까요?
https://www.komir.or.kr:6700/api/stlm/vaCallback 호출 시 403 에러가 발생하는 부분은 json 데이터 파라미터가 없을 경우 반환하는 코드입니다.
https://www.komir.or.kr:6700/ 사이트를 접속해보시면 서버 정상여부는 확인하실 수 있습니다.
현재 정상 상태입니다.
POSTMAN 등으로 호출 테스트 하신 것 올려주실 수 있을까요?
웹사이트 정상 접속은 확인하였습니다.
동일 네트워크에서 호출하신 것일까요?
동일 네트워크가 뭘 의미하시는걸까요?
서버는 클라우드 존에 있고
저희는 개발사에서 접속시도를 한 것입니다.
저희가 시도한 경우 다음과 같이 에러가 발생하거든요.
POST http://www.komir.or.kr:6700/api/stlm/vaCallback
Error: socket hang up
https로 해보시겠어요
웹훅 주소를 http로 하시지 않았나요?
호출이 되지 않아서 잠시 바꿔보았었습니다.
실제 호출은 https로 설정해서 테스트 했습니다.
https로 변경하고 다시 결제하여 확인 부탁드려요.
그리고 주문번호 남겨주시겠어요?
dc8d131d-9264-4fb3-93ab-27dc22741f92
https로 테스트 했습니다
해당 주문번호는 http로 시도되었었구요.
결제를 새로 해보시겠어요?
상점관리자-개발자 센터에서 https로 웹훅 주소 바꾸시고 결제를 다시 해보세요.
a58b14ba-a3c4-4034-b71d-e39de19d227a
이게 https로 테스트한 주문번호 인듯 합니다
현재 결제 테스트를 하는데 제약이 있습니다. 내일은 가능합니다. 일단 저 주문번호로 어떻게 오류가 떨어졌는지 확인 부탁드려요
해당 건은 승인 API를 호출하지 않으셨는데요.
내일 다시 테스트하고 알려주세요.
정상적으로 가상계좌가 발급되지 않은 주문입니다.
위 주문번호 결제건입니다 입금처리 버튼을 눌러서 승인되었다는 메시지가 떴으나 입금처리는 되지 않았습니다
지금 스크린샷 주신 건의 주문번호는
dc8d131d-9264-4fb3-93ab-27dc22741f92 에요
바로위에 알려주신건과 다릅니다
dc8d131d-9264-4fb3-93ab-27dc22741f92 건을 확인해보면 될까요?
그런데 결제를 한번만
결제를 한번만 했는데 내역이 2개가 생겼어요
만료는 어떤걸 뜻하는걸까요?
결제창을 열었다가 그냥 닫으시면 30분후에 만료상태가 됩니다.
테스트 거래내역에만 보이시는 거고 라이브에서는 이경우 보이지 않습니다.
아 알겠습니다 dc8d131d-9264-4fb3-93ab-27dc22741f92 이 주문건 진행시 처음에는 https로 테스트를 진행했으나 입금처리 호출이 되지 않아서 그 이후에 http로 잠시 변경했었습니다
그리고 다시 https로 되돌렸구요 현재도 https입니다
현재도 결제 실패로 메일은 계속
도착하고있습니다
이 화면에 접속해서 어떻게 나오는지 스크린샷 가능하신가요?
웹훅 목록에서 등록하신 웹훅 이름 누르면 보일거에요
웹훅 주소 변경으로 여러번 삭제하고 등록하고 했더니
내역이 사라진것들이 있습니다
네, 그럼 다시시도 눌러보시겠어요?
이벤트 발생시간 눌러보시면 보내질 웹훅 내용 확인도 가능해요
받으실 주문결제건이 맞는지도 확인해보세요
만약 받고싶은 테스트결제건이 여기에 없다면 가상계좌 발급부터 다시 진행하셔야해요
웹훅은 한번 등록하시면 바꾸지 않으시는것을 권장드립니다.
잘 안되시는 부분 알려주시면 도와드릴 수 있는내용인지 파악해볼게요
위에 웹훅은 이 결제 건 이력이었습니다.
네 "다시 시도" 눌러보셨나요?
이벤트 전송이 정상적으로 처리되지 않았어요. 웹훅 URL을 확인해주세요. {statusCode=503}
이런 메시지입니다.
그러면... 만드신 웹훅 URL이 parameter 가 있어야 200 OK 가 가능할까요?
네
결제까지 안해도 웹훅 URL이 정상 호출 가능한 상태인지를 먼저 확인하시면됩니다
parameter 세팅해서 정상호출되게 만들어보시고 URL 을 브라우저에서 날호출해보실수있나요?
지금은 저희가 DB에 저장되어 있는 paymentKey 등의 정보를 확인할 수 없어 파라미터를 설정해서 호출해 볼 수 없습니다.
내일 기관에 방문해서 테스트 해 볼 수 있습니다.
그렇군요, 가능하시다면 들어오는 데이터는 그대로 찍히도록 구현하시는게 디버깅에 좋습니다.
이전에도 말씀드렸지만, 브라우저를 통해서 호출하면 로그 상에 이벤트 기록이 남고, 웹훅을 통해서 입금처리하면 로그가 전혀 남지 않습니다.
jsp 샘플인데요 이런식으로 만들으셔서 우선 기능이 잘 도는지를 점검하시고 이후에 parameter 처리등을 추가하시는게 좋습니다
저희 회사 개발서버를 사용해서 웹훅 등록하고 정상 처리되는 것을 확인하여 완료한 상태입니다.
그러면 코드상의 문제는 없겠네요
네
네트워크쪽을 확인하시는게 맞는 절차입니다
네트워크 엔지니어분께 503 에러를 이야기 해주시면 되구요
일단, 내일 기관에 방문해서 가상계좌 입금 처리 시에 로그를 확인해보겠습니다.
내일 다시 상황을 공유하도록 하겠습니다.
네 그런데 변한게 없다면 내일도 똑같은 결과를 얻으실거같아요
네, 그럴것 같습니다.
네트워크 환경 등도 다시 확인해보겠습니다.
네, 알겠습니다.
이미 테스트하셨던 것을 점검하는 차원이라
지금 이슈만 해결하시면 이후엔 크게 걸리실것은 없을거같아요
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.