Skip to content

[FEAT] 환불 API #316

Description

@jongjunn

📊 개발 단계 및 우선순위

  • P1 : 운영 및 확장 기능

🎯 도메인 연관 관계 및 완료 조건

  • 연관 도메인 : payment, enrollment, subscription
  • 설명 : 토스페이먼츠 환불 API 호출 후 Payment(REFUNDED) + Enrollment(REFUNDED) 상태 변경

💻 상세 작업 내용

  • Model / Policy : Payment 환불 정책, Enrollment 환불 상태 전이
  • UseCase / Command : RefundPaymentCommand
  • Service : 환불 처리 서비스 (강의 환불 / 구독 환불 분기)
  • Port / Adapter : TossPaymentsAdapter.cancel()
  • Repository : PaymentRepository, EnrollmentRepository
  • Controller : POST /api/payments/{paymentId}/refund
  • response / request : RefundRequest, RefundResponse

🚨 검증 및 예외 처리 (TestCode)

  • 정상 환불 시 Payment(REFUNDED) + Enrollment(REFUNDED) 확인
  • 이미 환불된 결제 재환불 시 예외 발생
  • 토스 환불 API 실패 시 상태 변경 롤백 확인

🔗 참고 자료

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions