삼심SAMSIM

점검 가이드 · 결제

결제 금액은 서버가 정해야 하는 이유 — 금액 조작 막기

2026-10-24 기준

세 줄 요약
  • 브라우저에서 오는 값은 손님이 얼마든지 바꿀 수 있습니다. 금액도 마찬가지입니다.
  • 결제 금액은 서버가 상품 가격표로 계산해 주문에 저장하고, 승인 직전에 다시 대조해야 합니다.
  • 토스페이먼츠도 결제 요청 전에 주문번호와 금액을 서버에 저장해 두고, 승인 전에 금액이 같은지 확인하라고 안내합니다.

어떻게 금액이 바뀌나요

AI 가 만든 결제 화면은 종종 "화면에 있는 가격"을 그대로 결제창에 넘기고, 결제가 끝나면 결제창이 돌려준 금액으로 승인을 요청합니다. 이 흐름에서는 금액이 처음부터 끝까지 브라우저를 거칩니다.

브라우저 개발자 도구나 주소창을 조금만 다룰 줄 알면 이 값을 바꿀 수 있습니다. 예를 들어 결제 완료 후 돌아오는 주소의 amount 값이나 결제 요청의 금액을 바꾸면, 서버가 확인하지 않는 한 그 금액으로 결제가 끝나고 상품은 정상 지급됩니다.

쿠폰·할인·수량도 같은 문제입니다. "할인율 90%"나 "수량 -1"을 브라우저가 보내고 서버가 믿으면 금액이 엉뚱하게 계산됩니다.

올바른 흐름

  1. 손님이 상품을 고르면 브라우저는 "상품 ID 와 수량"만 서버에 보냅니다. 금액은 보내지 않습니다.
  2. 서버가 가격표(DB 나 설정 파일)에서 가격을 찾아 할인·수량을 계산하고, 주문번호와 금액을 DB 에 「결제 대기」로 저장합니다.
  3. 서버가 정한 주문번호와 금액으로 결제창을 엽니다.
  4. 결제가 끝나 완료 주소로 돌아오면, 서버는 그 주문번호로 저장해 둔 금액을 꺼내 돌아온 금액과 비교합니다. 다르면 승인하지 않고 손님에게 알립니다.
  5. 같을 때만 결제사에 승인을 요청하고, 승인 응답의 금액과 상태도 다시 확인한 뒤 상품을 지급합니다.

토스페이먼츠에서 확인할 점

  • 토스페이먼츠 결제위젯 연동 안내는 결제 요청 전에 orderId 와 amount 를 서버에 저장하고, successUrl 로 돌아온 amount 가 처음 정한 금액과 같은지 반드시 확인하라고 안내합니다. 다르면 결제를 취소하고 구매자에게 알리라고 합니다.
  • 승인 요청에는 paymentKey, orderId, amount 를 함께 보냅니다. 이때 amount 는 주소에서 받은 값이 아니라 서버에 저장해 둔 값을 씁니다.
  • 토스페이먼츠 안내에 따르면 결제 요청이 끝난 뒤 정해진 시간(문서 기준 10분) 안에 승인하지 않으면 승인할 수 없습니다. 오래 기다리게 하는 단계는 승인 뒤로 미룹니다.
  • 시크릿 키는 서버에서만 씁니다. 승인 요청을 브라우저에서 보내면 안 됩니다.

내 AI 코딩 도구에 이렇게 맡겨 보세요

내 AI 에게 그대로 붙여 넣기이 프로젝트의 결제 금액 흐름을 점검해 줘. 1) 결제 금액이 어디서 정해지는지 처음부터 끝까지 따라가서, 브라우저가 보낸 금액·할인율·수량·쿠폰 값을 서버가 그대로 믿는 곳이 있는지 찾아 줘. 2) 결제 완료 후 돌아오는 주소의 amount 를 바꾸거나, 결제 요청 금액을 100원으로 바꾸면 어떻게 되는지 실제 코드 기준으로 설명해 줘. 3) 고칠 때는: 브라우저는 상품 ID·수량만 보내고, 서버가 가격표로 금액을 계산해 주문번호와 함께 DB 에 저장하고, 승인 전에 저장한 금액과 돌아온 금액을 비교해 다르면 승인하지 않게 해 줘. 승인 요청의 amount 는 저장해 둔 값을 쓰고, 승인 응답의 금액도 확인해 줘. 고치기 전에 수정안을 먼저 보여 줘.

자주 묻는 질문

결제사에서 금액을 확인해 주지 않나요?

결제사는 "요청받은 금액"으로 결제를 진행할 뿐, 그 금액이 내 상품 가격과 맞는지는 모릅니다. 내 가격표와 맞는지는 내 서버가 확인해야 합니다.

화면에서 가격을 수정 못 하게 막아 두었는데요.

화면의 입력칸을 막아도, 브라우저가 서버로 보내는 요청 자체는 바꿀 수 있습니다. 서버가 다시 계산하는 것만이 확실한 방법입니다.

가격을 바꾸면 결제 중인 손님은 어떻게 되나요?

주문을 만들 때 계산한 금액을 주문에 저장해 두므로, 그 주문은 저장된 금액으로 진행됩니다. 가격 변경은 새 주문부터 적용됩니다.

내 코드에 이런 문제가 있는지, AI 세 개가 따로 봐 드려요.

삼심은 Claude·GPT·Gemini 가 서로 모르게 점검하고 지적을 교차 확인해, 개발부터 법률까지 8개 분야의 고칠 순서와 수정 지시문을 드립니다.

함께 보면 좋은 글

참고

이 글은 일반적인 정보이며 법률·보안 자문이 아닙니다. 서비스마다 상황이 다르니 고치기 전에 확인하세요.