김찬호
TPToss payments 개발자 커뮤니티
•Created by 김찬호 on 4/2/2025 in #❓┃연동개발-문의
[Toss Payments 문의] 결제 승인 전 서버 검증이 필요한 이유에 대한 질문
안녕하세요, 이전에 주신 답변을 토대로 결제 보안 구조에 대해 다시 정리해보았는데, 제가 이해한 내용이 맞는지 확인 부탁드립니다.
---
1. Toss에서는 결제 요청(requestPayment) 시점부터 결제 승인까지(paymentKey 기반)의
orderId
, amount
의 일치를 내부적으로 검증하여 데이터 정합성을 보장하는 것으로 이해했습니다.
2. 하지만, 이 요청 이전(결제창을 띄우기 전) 단계에서 금액이 위조되거나 조작되는 경우에는 Toss에서는 이를 감지하거나 방지할 수 없기 때문에, 가맹점(서버 측)에서 orderId
, amount
를 사전에 저장하고 승인 전에 다시 검증해야 한다고 이해했습니다.
3. 결국 Toss가 보장하는 건 "결제 요청 이후의 정합성"이고, 요청 이전 단계의 정합성과 비즈니스 유효성(주문자 일치, 결제 가능 상태 등)은 가맹점의 책임 범위라고 이해했는데, 이 정리가 정확할까요?
---
제가 설계하고 있는 결제 플로우가 보안적으로 문제가 없는지 확인하고자 문의드렸습니다.
감사합니다!8 replies