Backend
home

13. 코틀린 프로젝트

생성일
2025/02/12 12:30
태그
Kotlin

결제 시스템 소개

계좌와 결제의 차이점

계좌는 이미 있는 계좌의 잔액을 변경
결제는 새로운 주문이 생성되면서 주문의 하위 거래(결제, 취소 등)도 생성됨
결제 요청 저장을 위해 주로 2회 트랜잭션으로 처리
주문 : 거래(트랜잭션) = 1:N 관계
결제 트랜잭션은 M개, 취소 트랜잭션은 N개
트랜잭션의 종류로 구분 : 결제, 취소, 망취소
가맹점 - 결제 - 계좌 간 연동 관계
가맹점의 가맹점 주문ID, 결제ID, 계좌거래ID
대사(Reconciliation)란?
화해, 고해성사 등을 의미 → 문제가 되는 것을 확인하여 해결함
양자를 서로 비교 대조해서 차이를 없애고 같은 값이 되도록 하는 과정

결제 시스템 도메인

결제 사용자(PaymentUser)

결제 시스템의 고유한 사용자를 저장하는 테이블
계좌 시스템의 사용자 아이디와 계좌 번호를 알고 있어서 계좌 시스템에 거래 요청 시 필요

주문(Order)

사용자가 결제를 진행할 때 신규로 생성되는 테이블
결제와 환불 등 여러 거래의 마스터 테이블로 구성됨

주문의 세부 거래(Transaction)

주문의 세부 트랜잭션을 담는 테이블
거래의 타입과 상태, 금액을 저장
자체 거래번호(transactionId), 가맹점의 거래번호, 결제수단의 거래번호를 저장하여 대사와 정산 처리할 때 활용