자사몰 중복 결제 확인표: 카드 승인·주문 생성·취소 완료를 나누는 대응 순서
고객이 “한 번 주문했는데 카드 앱에 두 건이 보인다”고 문의하면 곧바로 한 건을 취소하거나 다시 결제해 달라고 안내하기 쉽습니다. 그러나 카드 승인 두 건, PG 거래 두 건, 자사몰 주문 두 건은 서로 다른 기록입니다. 승인 보류가 두 줄로 보이는 경우, 주문은 한 건인데 결제 콜백이 두 번 들어온 경우, 실제 주문이 두 건 생성된 경우가 각각 있을 수 있습니다.
첫 대응은 추가 결제를 요청하지 않고 주문번호·결제키·승인번호·금액·시각·취소 상태를 한 표에 맞추는 일입니다. 자사몰 환불 처리 절차는 환불 요청부터 결과까지의 고객 대응, 자사몰 간편결제 조합은 결제수단 선택의 운영 맥락을 다루고, 이 글은 같은 결제가 중복으로 보일 때 조정하는 순서를 다룹니다.
두 번 결제처럼 보여도 먼저 네 상태로 나눕니다
고객의 카드 앱 화면은 출발점이지 최종 원장이 아닙니다. “승인”, “매입”, “청구”, “취소 접수”, “환급 완료”가 어떤 상태인지 결제수단과 카드사에 따라 다르게 표시될 수 있으므로 자사몰·PG 관리자와 함께 확인합니다.
| 고객이 본 현상 | 자사몰에서 함께 볼 상태 | 우선 판단 | 담당자 행동 |
|---|---|---|---|
| 카드 앱에 승인 두 줄, 주문 한 건 | 결제키·승인번호·승인 상태 | 두 승인 중 하나가 중복인지, 보류인지 | PG 원장으로 두 거래를 조회하고 취소 가능 상태만 분리 |
| 카드 앱에 승인 두 줄, 주문 두 건 | 주문번호·상품·배송지·결제금액 | 주문이 실제로 두 개 생성됐는지 | 고객 의사와 출고 상태를 확인한 뒤 한 주문의 취소 경로를 고정 |
| 카드 앱에 한 줄, 주문 두 건 | 콜백 로그·주문 생성 시각·결제키 | 결제 콜백 중복 또는 주문 생성 중복 가능성 | 출고·재고를 보류하고 주문 원장과 PG 거래를 조정 |
| 주문은 취소됨, 카드 청구는 남음 | 취소 요청 시각·PG 취소 결과·카드사 반영 | 자사몰 상태와 결제 취소 완료가 다른지 | 취소 요청번호와 결과를 저장하고 반영 상태를 조회 |
| 승인 두 줄이 곧 사라짐 | 승인 만료·매입 여부·카드사 안내 | 청구 전 승인 보류일 가능성 | 임의 환급 대신 거래 상태와 확인 시점을 고객에게 안내 |
“두 건이 보인다”는 말만으로 고객에게 환급 완료라고 알리지 않습니다. PG가 취소 요청을 받았는지, 취소 결과가 성공인지, 카드사에 반영됐는지 세 단계의 기록을 각각 남깁니다.
첫 10분에는 추가 결제와 임의 환급을 멈춥니다
중복 결제 문의를 받으면 다음 순서로 작업 카드를 엽니다.
1. 고객에게 주문번호, 결제수단, 두 거래가 보이는 화면의 조회 시각을 받습니다. 2. 주민등록번호·전체 카드번호·인증번호는 받지 않고 승인번호 일부와 거래금액처럼 필요한 값만 요청합니다. 3. 자사몰에서 주문번호·주문상태·결제금액·배송지·출고 여부를 확인합니다. 4. PG 관리자에서 결제키 또는 거래번호, 승인 시각, 승인·매입·취소 상태를 조회합니다. 5. 카드사 앱의 표시와 PG 원장의 거래 수가 다르면 두 기록을 같은 뜻으로 합치지 않습니다. 6. 어느 주문·거래를 취소할지 정하기 전 출고와 재고 작업을 보류합니다.
| 기록 필드 | 예시로 남길 값 | 기록 이유 |
|---|---|---|
| 문의 접수 | 접수 시각, 채널, 담당자 | 고객 안내의 시작점을 고정 |
| 자사몰 주문 | 주문번호, 주문 생성 시각, 상태 | 실제 주문 수를 확인 |
| 결제 | PG 거래번호, paymentKey 또는 동등 식별자, 승인번호 | 결제 건을 서로 구분 |
| 금액 | 승인금액, 주문금액, 쿠폰·배송비 | 금액만 같은 거래를 오인하지 않음 |
| 상태 | 승인, 매입, 취소 요청, 취소 성공, 환급 확인 | 상태 변화의 순서를 재현 |
| 물류 | 출고 여부, 송장, 재고 차감 | 취소 가능한 주문과 이미 진행된 주문을 분리 |
| 안내 | 고객에게 말한 내용, 다음 확인 시각 | 환급 완료와 확인 중을 혼동하지 않음 |
결제 원장·주문 원장·환급 원장을 나란히 봅니다
관리자 화면을 열었을 때 주문번호 하나만 검색하면 결제 중복을 놓칠 수 있습니다. 고객이 말한 금액과 시각을 기준으로 PG의 거래를 먼저 찾고, 각 거래가 어느 주문에 연결됐는지 역으로 매핑합니다.
| 비교 항목 | 결제 원장 | 주문 원장 | 환급 원장 |
|---|---|---|---|
| 식별자 | 결제키, 거래번호, 승인번호 | 주문번호, 주문 생성 ID | 취소번호, 환급 ID, 콜백 ID |
| 시간 | 승인 요청·승인·매입 시각 | 주문 생성·상태 변경 시각 | 취소 요청·성공·반영 시각 |
| 금액 | 승인금액, 부분 취소 잔액 | 상품·배송비·할인 후 결제액 | 취소금액, 잔여금액 |
| 연결 | paymentKey와 주문 메타 | 주문과 결제키의 1:1 또는 정책상 관계 | 취소 대상 결제키와 요청 결과 |
| 확인자 | PG·카드사 상태 | 쇼핑몰 관리자·물류 | PG 취소 결과·카드사 반영 |
결제사업자 문서에는 보통 결제 승인과 취소를 조회할 수 있는 고유 식별자가 있습니다. 예를 들어 토스페이먼츠 코어 API 레퍼런스는 승인된 결제를 `paymentKey`로 취소하고, 부분 취소에는 `cancelAmount`를 사용하는 구조를 설명합니다. 이 필드명은 토스 연동의 예시이므로 카페24·아임웹·다른 PG를 사용하는 자사몰에서는 실제 관리자 화면의 거래번호와 취소 메뉴를 기준으로 바꿔 적습니다.
네 가지 상황별 처리 순서를 고정합니다
승인 두 건·주문 한 건
먼저 두 결제 거래의 결제키 또는 승인번호가 서로 다른지 확인합니다. 서로 다른 승인 거래가 실제로 매입됐고 주문에는 한 건만 연결됐다면, 상품을 두 번 보내기 전에 중복 거래를 취소 대상으로 분리합니다. 한 건이 승인 보류이고 PG에서 매입되지 않았다면 취소와 환급의 의미가 다를 수 있으므로 PG 상태와 카드사 반영 안내를 함께 기록합니다.
고객에게는 “한 건은 정상 주문에 연결됐고, 다른 건은 결제사업자 거래 상태를 확인 중”처럼 구분해 알립니다. “한도만 복구됐다”거나 “환급됐다”는 표현은 실제 결과를 확인한 뒤 사용합니다.
승인 두 건·주문 두 건
주문상품·배송지·수령인·고객 연락처·생성 시각을 대조합니다. 고객이 한 주문만 의도했다면 출고 전인지 확인하고 취소 대상 주문번호와 결제 거래를 한 쌍으로 묶습니다. 두 주문이 모두 고객의 의도였거나 한 주문이 선물용이라면 임의로 취소하지 않고 고객 확인을 남깁니다.
주문 하나만 취소하면서 다른 결제 거래를 남겨 두는 식으로 처리하지 말고, `주문번호 → 결제키 → 취소 요청번호` 연결을 작업 카드에 적습니다. 출고가 시작된 뒤에는 주문 취소와 반품·환불의 절차가 달라질 수 있습니다.
승인 한 건·주문 두 건
결제가 한 건인데 주문이 두 개라면 결제 중복보다 콜백 재처리, 새로고침, 주문 생성 재시도 또는 관리자 데이터 중복일 수 있습니다. 두 주문을 모두 출고하지 말고, 하나를 기준 주문으로 정한 이유와 다른 주문의 상태를 기록합니다. 재고가 두 번 차감됐다면 주문 상태만 바꾸지 말고 재고 원장도 함께 대조합니다.
결제 콜백 로그에는 요청 ID, 결제키, 수신 시각, 처리 결과, 주문 연결 결과를 남깁니다. 같은 결제키가 두 주문에 연결됐다면 새로운 결제를 받는 문제와 주문 데이터 중복 문제를 분리해 개발·PG 담당자에게 전달합니다.
주문 취소·환불 완료인데 카드 청구가 남는 경우
자사몰에서 주문을 취소한 것과 카드사에 매출 취소가 반영된 것은 다른 상태입니다. PG 취소 요청번호, 성공 응답, 취소 금액, 카드사 반영 예상 안내를 차례로 확인합니다. 취소 요청이 실패했거나 부분 취소만 된 경우에는 주문 메모에 실제 결과를 적고 고객에게 다시 안내합니다.
전자상거래법의 현행 조문은 적용되는 청약철회·환급 상황에서 결제업자에 대한 청구 정지 또는 취소 요청을 다룹니다. 국가법령정보센터 현행 전자상거래법의 거래 유형과 예외를 확인한 뒤, 실제 자사몰의 결제수단·PG 약관·주문 상태를 함께 검토합니다.
고객에게는 확인된 것과 확인 중인 것을 나눠 씁니다
중복 결제 문의에서 가장 큰 혼선은 카드 앱 화면, 쇼핑몰 주문 화면, PG 상태를 하나의 “환급”으로 말하는 것입니다. 아래처럼 현재 확정된 사실과 다음 확인 시각을 나눠 전달합니다.
> 주문번호 [주문번호]는 자사몰에서 [주문 상태]로 확인되었습니다. 결제사업자 기록에서는 [승인 건수]건이 조회되어 [정상 주문 연결 건수]건과 대조 중입니다. 현재 [취소 요청 여부·요청번호]까지 확인했고, 카드사 반영 여부는 [다음 확인 시각]에 다시 안내드리겠습니다. 같은 결제를 추가로 진행하지 말아 주세요.
고객이 카드 명세서나 앱의 두 줄을 보냈다면 전체 카드번호와 인증정보를 저장하지 않습니다. 거래일·금액·승인번호 일부·주문번호처럼 조정에 필요한 정보만 남기고, 파일 접근 권한을 운영 담당자와 결제 담당자로 제한합니다.
환급·취소 기록과 소비자 문의 경로를 분리합니다
소비자24 상담사례는 카드 매출을 식별할 때 거래일·금액·승인번호 등 원거래 정보가 필요하다고 안내합니다. 카드 결제 물품 취소 상담사례처럼 원거래를 확인할 수 있는 자료를 준비하면 사업자와 소비자가 같은 거래를 보고 있는지 맞추기 쉽습니다.
분쟁이 계속되면 소비자24 상담·피해구제 신청 같은 공식 상담 경로와 사업자 내부 접수번호를 따로 보관합니다. 외부 상담 접수는 사업자 내부 환급 처리의 대체 번호가 아니므로, 두 번호와 담당기관·접수일시를 모두 기록합니다.
전자상거래법 시행령의 거래기록 보존 안내는 계약·청약철회와 대금결제·재화 공급 기록을 보존 대상으로 제시합니다. 실제 보존기간, 개인정보 접근권한, 로그 삭제 정책은 현재 법령과 자사 개인정보·보안 기준을 함께 검토해 정합니다.
같은 문의가 반복되지 않게 결제 흐름을 보완합니다
재발 방지는 “버튼을 한 번만 누르게 하기” 하나로 끝나지 않습니다. 결제 요청부터 주문 생성, 콜백, 취소까지 같은 키로 연결되는지 점검합니다.
| 구간 | 점검할 설계 | 남길 로그 |
|---|---|---|
| 결제 시작 | 장바구니·주문 시도 ID 발급, 중복 클릭 처리 | 시도 ID, 고객 세션, 생성 시각 |
| 승인 요청 | 같은 주문의 재요청을 식별하는 키 사용 | 주문번호, 결제키, 요청 횟수 |
| 승인 응답 | 성공 응답 재수신을 중복 주문으로 만들지 않음 | 응답 수신 시각, 처리 결과 |
| 콜백·웹훅 | 동일 이벤트를 한 번만 반영하는 조건 | 이벤트 ID, 처리 상태, 재시도 횟수 |
| 주문 생성 | 결제키와 주문번호 연결의 중복 검사 | 연결 결과, 오류 코드 |
| 취소 | 전액·부분 취소 금액과 대상 거래를 확인 | 취소 요청 ID, 금액, 성공 응답 |
| 고객 안내 | 환급 완료와 취소 요청 접수를 구분 | 메시지 내용, 발송 시각 |
카페24 PG사 연동은 PG 연결과 결제수단 설정을 점검하는 글이고, 모바일 자사몰 UX 체크리스트는 결제 화면의 사용성 확인에 가깝습니다. 두 글을 참고하더라도 중복 결제 대응에서는 운영 로그와 PG 원장 대조가 먼저입니다.
자사몰 중복 결제 15항목 체크리스트
- [ ] 문의 접수 시각과 담당자를 기록했습니다.
- [ ] 고객의 주문번호와 결제수단을 확인했습니다.
- [ ] 카드 전체번호나 인증정보를 저장하지 않았습니다.
- [ ] 자사몰 주문 수와 주문 생성 시각을 확인했습니다.
- [ ] 승인금액과 주문금액에 배송비·쿠폰 차이가 있는지 봤습니다.
- [ ] PG 결제키·거래번호·승인번호를 건별로 나눴습니다.
- [ ] 승인·매입·취소 요청·취소 성공 상태를 구분했습니다.
- [ ] 각 결제 거래가 어느 주문에 연결됐는지 표시했습니다.
- [ ] 출고·재고 차감 여부를 취소 판단 전에 확인했습니다.
- [ ] 중복 주문과 중복 승인 가능성을 별도로 기록했습니다.
- [ ] 취소 대상 결제키와 취소 금액을 확인했습니다.
- [ ] 취소 요청번호와 PG 성공 응답을 저장했습니다.
- [ ] 카드사 반영 여부와 다음 확인 시각을 고객에게 안내했습니다.
- [ ] 내부 주문번호와 소비자24 등 외부 상담번호를 구분했습니다.
- [ ] 계약·결제·취소 기록의 보존 위치와 접근권한을 확인했습니다.
자주 묻는 질문
#### 카드 앱에 두 건이 보이면 하나는 바로 취소하나요?
먼저 PG 원장에서 두 거래가 실제 승인·매입됐는지 확인합니다. 승인 보류, 중복 승인, 실제 주문 두 건은 취소 대상과 고객 안내가 다르므로 결제키와 승인번호를 건별로 대조한 뒤 처리합니다.
#### 주문은 한 건인데 결제키가 두 개면 환급이 끝난 건가요?
아닙니다. 결제키가 두 개라는 사실은 두 거래를 찾는 단서입니다. 한 건을 취소 요청했는지, PG가 성공으로 응답했는지, 카드사에 반영됐는지를 차례로 확인해야 합니다.
#### 고객이 다시 결제하면 먼저 처리해도 되나요?
기존 거래가 정리되지 않은 상태에서 추가 결제를 요청하면 중복 금액을 더 만들 수 있습니다. 현재 주문과 PG 거래를 확인한 뒤 필요한 경우 결제 담당자와 고객에게 같은 기준으로 안내합니다.
공식 확인 링크
- 국가법령정보센터 현행 전자상거래법
- 전자상거래법 시행령 거래기록 보존 안내
- 소비자24 카드 결제 물품 취소 상담사례
- 소비자24 상담·피해구제 신청
- 토스페이먼츠 코어 API 레퍼런스
- 토스페이먼츠 결제 취소 가이드
자사몰 중복 결제는 카드 앱의 줄 수를 세는 일이 아니라 결제·주문·취소 원장을 같은 식별자로 맞추는 일입니다. 추가 결제나 환급 완료를 먼저 약속하지 말고, 정상 주문과 중복 거래를 분리한 뒤 PG 취소 결과와 고객 안내 시각까지 한 카드에 남기면 다음 담당자가 같은 사실에서 이어갈 수 있습니다.