가상계좌 웹훅 운영서버는 동작을 안하고(http code:308), 로컬서버만 동작해요(ngrok).
안녕하세요 항상 친절하고 정성 가득 응대해주시는 토스 개발팀 정말로 항상 감사드립니다🙏
웹훅 토스페이먼츠 개발자센터에서 로컬서버 등록은 되는데... 질문을 올렸는데 그 글을 찾을 수 없어서 다시 같은 주제로 질문드립니다.
가상계좌 입금 성공 시 웹훅이 동작하는 것을 로컬서버(ngrok)을 이용하면 성공이 되지만(https://c792-49-163-157-229.ngrok-free.app/api/tossPayment/virtualAccountCompleted),
운영서버만 웹훅을 동작시키면 http code: 308이 뜨고 웹훅이 동작하지 않습니다.
(로컬과 운영 endpoint가 같아서 로컬서버를 키면 동작을 합니다)(https://www.enjoylulu.com/api/tossPayment/virtualAccountCompleted)
postman에서 웹훅의 json 형태를 갖춰서 요청을 보내면 200이 뜨는것까지 확인한 상태고,
코드 내부에는 308 상태를 내보내는 코드를 포함하지 않았습니다.
308은 서버의 url endpoint가 다른 대로 이동했다는 의미인것은 아는데,
postman으로 요청을 하면 재대로 코드대로 동작을 하거든요.
제가 AWS RDS를 사용중인데 웹훅이 도착을 하길 기다리고 로그를 그 시간대에 찾아봤더니, 로그 자체가 안 뜨더라고요.
결론: 왜 308이 뜨고, 운영서버의 endpoint에 웹훅의 동작하지 않나요?




18 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
로컬과 운영 endpoint가 같아서 로컬서버를 키면 동작을 합니다
라고 하셨는데 정확히 어떻게 동작시키시는 건가요?
response=HTTP/1.1 308 Permanent Redirect
cache-control: public, max-age=0, must-revalidate
content-type: text/plain
date: Mon, 26 Aug 2024 07:20:44 GMT
location: https://enjoylulu.com/api/tossPayment/virtualAccountCompleted
refresh: 0;url=https://enjoylulu.com/api/tossPayment/virtualAccountCompleted
server: Vercel
strict-transport-security: max-age=63072000
transfer-encoding: chunked
x-vercel-id: icn1::ns8ds-1724656844244-fd80344a12f8
냥과장님 항상 잘 도와주셔서 감사합니다
제가 설명을 정확히 하지 못했네요.
제가 말할려는 의도는
host_url 뒤의 endpoint를 말한거였어요
이런식으로 응답이 오는데요.
헤더쪽에 refresh 가 붙어서 이동하도록 처리가 되는 것 같습니다.
운영 서버쪽에 웹서버 설정을 봐주셔야 할것 같아요.
308은 사용하시는 서버쪽에서 보내시는 겁니다.
그럼 AWS RDS 설정을 손대면 될까요?
그건 저희도 알수가 없습니다. 어떤 방식을 사용하시는지 알수 없어서 뭐라고 가이드를 드릴수가 없어요.
넵 알겠습니다 일단 관련내용 찾아보겠습니다!
퇴근시간이실텐데 잘 알려주셔서 감사합니닷!
AWS RDS를 이용하여 직접 웹훅을 수신하도록 설정하셨나요?
RDS 설정으로 가능할지 확인해보시고 해결이 안된다면
AWS Gateway에서 lambda를 이용하여 수신하고 RDS로 전달하는 방법도 고민해보실 수 있을 것 같아요.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
토스 개발문서를 읽어보니 문제가 외부에서 요청하는 IP에 대한 방화벽 활성화를 안 한것 같아서 이 URL 참고해서 AWS RDS의 인바운드 규칙을 수정했습니다.
https://docs.tosspayments.com/reference/using-api/security
문서에서 지시하는데로 IP 4개를 마지막에 /32를 붙여서 접근 제어 목록에 추가를 한 후 테스트를 해 봐도 안되고, AWS RDS의 로그에도 API가 왔다는게 안 찍혔습니다.
혹시 제가 놓인 부분이 있거나 마지막에 /32를 붙여서 안 된 것일까요?
(정 안되면 @박수습 님이 알려주신 AWS Gateway에서 lambda 이용하는 방법으로 하려고요, 감사합니다)
보안 | 토스페이먼츠 개발자센터
토스페이먼츠 API의 보안 정책과 방화벽 설정하는 방법을 안내합니다.


/32를 붙이는 것은 단일 IP주소에 대한 방화벽 설정을 의미해서 문제는 없어 보이는데요.
해당 웹훅 주소를 호출하면 지속적으로 308 응답이 떨어집니다. 방화벽에서 걸리는 것은 아니고 해당 주소를 처리해주는 부분에 문제가 있을 것 같아요.
308의미는 Permanent Redirect거든요.
리다이렉트로 처리되면안되고 바로 200으로 정상 응답이 떨어져야 합니다.
그러면 웹훅이 도착하는 서버의 코드를 수정해야 할까요 or AWS 설정을 건드려야 할까요 or 다른 방법을 써야할까요?
해당 서버앞에 다른 route 방식이나 이런게 들어가 있는게 아닐까 싶은데요.
AWS 쪽에 문의를 해보시는게 좋을것 같습니다. 저희는 지금 사용하시는 AWS 구성을 잘 모르기 때문에 가이드를 드리기가 어렵습니다.
@Kim/WebDev 지금 헤더를 보니
www를 없애고 @로 redirect가 나가는거같은데
www빼고 웹훅 등록해서 재시도 해주시겠어요?
아마 AWS차원에서 www 서브도메인을 없애는 설정이 있는것 같습니다.
도메인 업체 통해서 도메인 구매 하셨으면,
여기서 DNS 레코드 설정도 한번 보시고요.
@Ayaan 드디어 되요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
당신은 진심 천재에요 엉엉엉
당신은 제 코딩 인생을 살려주신 은인입니다
혹시 뭐라고 찾아보면 관련 내용 상세히 볼 수 있을까요(구글 검색해봐도 안 나와서요)
저도 잘 모르겠습니다만
헤더에서 로케이션이 @인 부분에서 아이디어를 얻었습니다.
저도 시간될때 찾아보고 공유드릴게요.
넵 감사합니다! 🙂