본문으로 건너뛰기

결제 흐름

토스페이먼츠 연동 결제 시스템의 동작 흐름입니다.

카드 결제

가상계좌 결제

가상계좌 미입금 처리

  • 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분
  • 상태 전이: reservationTabpaymentTabverified → (삭제 또는 waitingForDeposit)