포스트

취소

취소

일반적인 취소 흐름

주문 관점 취소 흐름

요구사항 더 캐묻기

  • 결제 일로 부터 얼마나 흐른 뒤까지 취소할 수 있는지?
  • 취소하면 바로 환불이 되는건지? 관리자가 승인 해줘야 하는건지?
  • 쿠폰이나 포인트도 복구가 되는건지?

구현 시, 포인트

  • 결제 테이블은 성공 값으로 그대로 두고 취소 테이블을 별도로 만들어 관리
  • 부분 취소를 여러 번 하더라도 결제는 업데이트가 일어나지 않고 취소 테이블만 행이 추가 되는 식으로 관리할 수 있음

API

취소

1
POST /v1/cancel
Parameter설명
orderKey주문 키
  1. 주문 키주문 상태PAID주문 조회
  2. 주문 유저현재 유저가 일치한지 체크
  3. 주문에 해당하는 결제 조회
  4. 결제 상태SUCCESS 인지 체크
  5. 결제 취소 외부 API 호출
  6. 주문 엔티티 상태 취소로 변경
  7. 사용한 쿠폰이 있다면 다시 사용 가능 상태로 변경
  8. 사용한 포인트 다시 적립
  9. 지급한 포인트 차감
  10. 취소 엔티티에 저장
  11. 결제 히스토리 테이블에 취소 내역 저장

개념도

  • 취소는 주문을 의존
  • 취소는 쿠폰과 포인트를 되돌려야 하므로 쿠폰과 포인트에 의존
  • 취소는 결제 데이터 기반으로 취소하므로 결제에 의존

참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.