결제 · 정산 기반 구축
정산을 필요할 때 계산해 보여주는 값이 아니라, 결제·환불이 일어난 순간 쌓이는 기록으로 설계했습니다. 숫자가 어긋났을 때 어디서부터인지 되짚을 수 있어야 했기 때문입니다.
모바일 PWA 커머스에 PG를 직접 연동해 구축하고 운영 중인 서비스입니다. 결제 대행 솔루션에 얹지 않고 승인·환불·정산을 직접 설계했기에, 운영 중 PG를 교체하고 환불 정책을 바꾸는 일까지 서비스 중단 없이 처리할 수 있었습니다.
offondangol.com 바로가기 ↗기능을 더한 순서가 아니라, 운영에서 부딪힌 문제와 그때 내린 판단을 남깁니다.
정산을 필요할 때 계산해 보여주는 값이 아니라, 결제·환불이 일어난 순간 쌓이는 기록으로 설계했습니다. 숫자가 어긋났을 때 어디서부터인지 되짚을 수 있어야 했기 때문입니다.
실거래가 오가는 상태에서 결제 대행사를 교체했습니다. 이때 결제 로직을 특정 PG에 묶지 않도록 다시 그어, 주문·환불·정산 로직은 거의 손대지 않고 연동 부분만 갈아끼웠습니다.
어려웠던 건 금액 계산이 아니라 순서였습니다. 일부만 환불한 주문을 나중에 마저 환불할 때 생기는 어긋남을 차례로 잡았습니다.
아직 보내지도 않은 주문의 취소에 반품배송비가 붙던 문제를 발견했습니다. 규칙을 바로잡는 데서 그치지 않고 이미 과다 청구된 건을 찾아 소급 환불했고, 이후로는 신청 화면에서 금액을 미리 고지합니다.
요청받은 기능을 붙인 것이 아니라, 결제 흐름 전체를 직접 책임지는 범위입니다.
결제 대행 솔루션 없이 PG 규격을 직접 구현. 특정 PG에 종속되지 않는 구조로 설계해 교체·병행이 가능합니다.
승인이 즉시 끝나는 카드와, 입금까지 기다려야 하는 가상계좌를 하나의 주문 상태 흐름으로 처리합니다.
주문에서 고른 항목만 환불하고, 남은 금액·배송비·정산 차감까지 함께 맞춥니다.
출고 여부에 따라 부과를 판정하고, 고객에게 금액을 미리 고지한 뒤 환불액에 반영합니다.
PG 통보만 믿지 않고 주기적으로 거래 내역을 대조해, 누락·지연된 결제 상태를 스스로 맞춥니다.
적립과 차감을 수정 불가능한 기록으로 쌓고, 확정부터 지급 완료까지 단계별로 관리·정산서 발행합니다.
비로그인 상태에서는 상품과 가격이 보이지 않는 폐쇄몰 구조의 모바일 PWA입니다.