Henu
Henu3y ago

가상계좌 웹훅 사용 관련 문의

안녕하세요, 스프링 프레임워크(EgovFramework) 환경에서 '토스페이먼츠' Javascript SDK를 이용하여 카드결제, 가상계좌, 계좌이체 일반 결제 모듈을 순차적으로 연동중에 있습니다. 가상계좌 결제 승인 API 처리 후 고객이 입금함에 따라 동작하는 웹훅 기능을 사용해보려고 합니다. (상점(쇼핑몰) DB에 저장된 결제 정보의 입금상태를 업데이트시켜주기 위함) 가상계좌 결제의 경우에도 카드/계좌이체를 이용하는 것과 거의 동일하지만 'virtualAccountCallbackUrl' 값을 요청 파라미터로 추가 설정하여 결제를 시도하였습니다. 결제 승인 API 처리까지 성공적으로 마친 후 발급되는 가상계좌번호를 통해 입금처리를 진행하였지만, 웹훅 URL이 호출되지 않는 것으로 보입니다. 로컬호스트 환경에서 진행을해서 그런 것일까요? * 위 모든 과정은 테스트 모드에서 실행하였습니다. * 아래 저와 비슷한 포스트가 있는것 같으나, 저와 사용방식이 달라 문의남깁니다.
No description
10 Replies
이실장
이실장3y ago
가상계좌 웹훅은 외부에서 접근 가능한 url를 입력해주셔야합니다. 더불어, 파라미터로 보내기보다는 https://developers.tosspaymenst.com > 내개발정보 > 웹훅 에서 등록하시는걸 권고드립니다.
Henu
HenuOP3y ago
감사합니다. 어쩐지 파라미터로 전달하는것이 아닌 토스페이먼츠 상점관리자 개발자 페이지에서 웹훅을 등록해보려 했으나, 로컬호스트 주소와 같은 형식의 경우 등록이 안되더라구요. 그럼 임의의 도메인을 발급받아 테스트가 가능하겠군요.
이실장
이실장3y ago
https://webhook.site/ 임시로 웹훅을 받아볼수 있는 사이트도 있으니 참고바랍니다.
Henu
HenuOP3y ago
위 사이트는 처음 알게되었네요. 사용법은 찾아봐야할 것 같아 당장히 사용하지는 못해, 'ngrok'이라는 툴을 통해 로컬에서 실행하는 웹 서버를 통해 임의로 도메인을 생성해서 가상계좌 웹훅 URL로 등록하여 테스트 모드에서 가상계좌 결제 및 '입금처리'를 진행해보니 웹훅 URL에 해당하는 핸들러가 정상적으로 동작하네요. 혹시 그러면 이 가상계좌 웹훅 URL은 지금은 입금에서만 동작하지만 나중에 결제취소 기능까지 연동했을 때에는 부분취소/전체취소 이벤트 발생시에도 동작하게 되는건가요?
No description
No description
No description
이실장
이실장3y ago
해당 이벤트의 경우 '웹훅 URL' 에 등록을 해주시면 됩니다 같은 URL주소를 사용해주셔도 무방하고요
Henu
HenuOP3y ago
아, '가상계좌 웹훅 URL'과 '웹훅 URL'의 용도가 다른 것이었군요. 웹훅 API 문서를 다시 한번 읽어봐야겠습니다!
No description
이실장
이실장3y ago
웹훅 URL은 결제 상태가 바뀌었을 때 보내드린다고 이해하시면 됩니다! 취소등 결제 상태가 바뀌었을 때는 아래와 같은 형식으로 웹훅을 보내드립니다.
{"eventType":"PAYMENT_STATUS_CHANGED""createdAt":"2022-09-08T09:33:31.135418""data":{"paymentKey":"vG45eDbZnodP9BRQmyarYXwKAWbgpVJ07KzLNkE6AOMwXYWl""status":"DONE""orderId":"220907-80732744"}}
Henu
HenuOP3y ago
그렇군요. 이 웹훅은 결제수단과는 상관없이 이벤트 타입(일반결제, 브렌드페이 등)과 상태가 어떻게 변했는지에 따라 저희 상점(쇼핑몰) DB의 결제정보를 알맞게 업데이트 처리 할 수 있는 기능이 되겠네요. 감사합니다! 가상계좌 웹훅과 웹훅 모두 작업 중 궁금한 사항이 생겨 추가로 이곳에 질문을 남겨봅니다. 우선 테스트 환경설정을 통해 가상계좌 웹훅 URL과 웹훅 URL을 모두 설정(두 URL은 다르게 설정하였음)한 후 각 URL별로 호출되는 소스코드 구현을 완료하였습니다. 다만, 가상계좌 결제수단으로 결제를 시도하고나서 발급된 가상계좌번호로 테스트에서 제공하는 '입금처리'를 진행하였는데요. 이런 경우 가상계좌 웹훅과 웹훅 모두 동작하는 것으로 보입니다. 이게 맞는지와 만약, 두 가지 모두 동작한다면 굳이 가상계좌 웹훅 URL을 사용하는 것이 아닌 웹훅 URL로만 사용해도 될까요? 추후 카드, 계좌이체 결제에서도 상태 변경(취소, 부분취소 등)에 따라 웹훅을 사용할 것이기 때문입니다! (2022.10.16. 내용추가) 추가로 토스페이먼츠측에서 제공하는 '가상결제' 결제 연동 문서 내용 중 결제 승인 응답 데이터로 'approvedAt' 값이 설정된 체로 주어졌지만, 실제로는 그렇지 않은(null 값) 것 같더라구요. 이것도 확인 부탁드리겠습니다.
Kimoon Lee
Kimoon Lee3y ago
네 2가지 모두 발송됩니다만 웹훅은 secret 정보가 제공되지 않습니다. 해당 값을 결제 승인시에 응답으로 드리는 값으로 입금통보를 검증할수 있는 값입니다. 그래서 최소한 입금통보는 입금콜백으로 처리해 주시기 바랍니다. 가상계좌의 경우 계좌가 발급되었다고 해서 결제가 완료되는 것이 아닙니다. 가상계좌 결제의 경우 approvedAt 은 입금을 하는 시점으로 지정되므로 발급시점에는 null 이 맞습니다.
Henu
HenuOP3y ago
감사합니다. 그렇다면 가상계좌 입금 웹훅은 ‘가상계좌 웹훅’을 이용하고, 나머지는 공통적으로 ’웹훅‘을 이용해보겠습니다. 추가 관련 문의는 작업하다 이 포스트에 이어 덧글로 남기겠습니다! 문서를 좀 더 확인해본 뒤 결정한 사항이지만, 저희 상점에서는 굳이 웹훅을 사용하지 않고, 가상계좌에 대해서만 ‘입금’ 처리를 하기 위한 목적으로 ‘가상계좌 웹훅’만 사용하기로 했습니다! 상점에서는 결정상태를 크게 입금/취소/부분취소에 한해서만 변경이 이루어질 것이기 때문에 그 중 입금은 카드/계좌이체의 경우 결제 당시 진행될 것이니 웹훅을 사용할 필요는 없어보였고, 모든 수단에 대한 취소/부분취소의 경우 따로 결제 취소 API의 응답 데이터를 가지고 상점 DB의 결제 이력을 조작(업데이트 등) 하는 것이 가능할 것 같기 때문입니다.

Did you find this page helpful?