토스 페이먼츠에 중복 주문번호 결제가 들어오는 경우 결제 과정 자체를 막는 기능이 있을까요?
안녕하세요, 결제 연동 관련하여 질문이 있어 글을 남깁니다.
현재 저희 시스템의 주문번호(orderId) 생성 로직에 일시적인 이슈가 있어, 간혹 중복된 주문번호가 생성되는 문제가 있습니다.
저희 내부 DB에는 중복된 주문번호를 저장할 수 없어서 해당 결제를 저희 쪽에서 API로 취소 처리하고 있습니다. 하지만 중복된 orderId로 결제 요청이 가면 토스페이먼츠에서는 결제 내역이 남고 있으며 이 과정에서 고객 문의가 계속해서 발생하고 있는 상황입니다.
혹시 토스페이먼츠 측에서, 이미 결제 요청이 한 번이라도 있었던 주문번호에 대해 중복 결제 요청이 들어올 경우, 결제 과정 자체를 시작하지 못하도록 차단하는 기능이 있는지 궁금합니다. (상점 아이디에 관계없이 주문번호가 중복됐을 때 입니다)
이전에 사용했던 나이스페이먼츠에서는 해당 기능이 있었는데, 토스 페이먼츠에 해당 기능이 존재하나요?
내부적으로 주문번호 생성 로직을 변경하는 작업을 계획하고 있지만, 그전까지 임시로 대응하고 싶습니다. 만약 이 기능이 가능하다면, 현재 겪고 있는 문제를 임시로나마 해결할 수 있을 것 같습니다.
10 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
네, 토스페이먼츠에서는 상점ID 결제수단별 주문번호는 가맹점의 거래를 구분하는 유니크한 정보로 다룹니다.
그래서 이미 결제가 완료된 거래건에 해당하는 주문번호로 재시도 하면 DUPLICATED_ORDER_ID 로 실패 응답합니다.
아래 에러 목록에서 찾으실 수 있습니다.
https://docs.tosspayments.com/reference/error-codes#전체-에러-목록
API 에러 코드 | 토스페이먼츠 개발자센터
토스페이먼츠 API 사용할 때 발생할 수 있는 에러를 살펴보세요.
주문이 중복된 상태로 토스 결제를 요청하는 경우 결제 내역에도 남지 않도록 원천 차단하는 방법이 있을까요?
주문번호가 중복되는 경우 내부 로직에서 오류를 찾아서 걸러내긴 하지만 토스 결제내역에 남아서 문의가 오고 있어서요.
네 그건 가맹점에서 구현해주셔야 합니다.
successurl 에서 승인요청을 하기 전에 가맹점 db를 조회하셔서, 승인건수가 1건이상이 나오면 승인요청을 하지않고 실패처리하는 방법으로 구현하셔야 할것 같습니다.
현재 저희 고객사가 2개의 MID를 통해 토스페이먼츠 결제를 이용하고 있습니다.
위에서 말씀해주신 것처럼 주문번호는 각 MID(상점ID) 내에서 고유성이 체크되는 것으로 알고 있습니다.
혹시, MID가 다르더라도 동일한 주문번호로 재결제를 시도할 경우 (예: 'MID-A'에서 'ORDER-123' 결제 성공 후, 'MID-B'에서 'ORDER-123'으로 재시도) DUPLICATED_ORDER_ID 오류를 반환하도록 설정하는 것이 가능한가요?
주문번호의 유니크성 체크 범위를 MID별이 아닌, 고객사(가맹점) 단위로 적용할 수 있는지 궁금합니다.
불가능 할겁니다.
MID 기준으로 유니크성을 제공하고 있습니다.
말씀하신대로는 불가능합니다.
하시려면 귀사 서버 내 원장에서 비교를 하셔서
자체적으로 에러를 뱉어야 하겠습니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.