결제 흐름
토스페이먼츠 연동 결제 시스템의 동작 흐름입니다.
카드 결제
가상계좌 결제
가상계좌 미입금 처리
- Redis TTL 기반으로 입금 대기 시간 관리
- TTL 만료 시
RedisKeyExpiredListener에서 네이버 예약 자동 취소
결제 취소
POST /payment/cancel
취소 조건
- 예약 시작 30분 전까지만 취소 가능
- 세션의
loginId와 결제자 정보(이메일/휴대폰) 일치 필요
가상계좌 입금 후 취소
- 환불 계좌 정보 필수 (
refundReceiveAccountBank,refundReceiveAccountNumber,refundReceiveAccountHolderName)
결제 키 체계
| 키 | 용도 |
|---|---|
paymentKey | 토스페이먼츠 결제 식별자 |
orderId | 주문 번호 (클라이언트 생성) |
doorlockKey | 도어락 인증 키 (UUID, 결제 완료 시 생성) |
lastTransactionKey | 최종 트랜잭션 키 (취소 시 갱신) |
Redis 상태 관리
예약 진행 중 Redis Hash로 상태를 관리합니다.
- 키:
RESERVATION_PROGRESS_INFO:{orderId} - TTL: 예약 탭 → 10분, 결제 탭 → 30분
- 상태 전이:
reservationTab→paymentTab→verified→ (삭제 또는waitingForDeposit)