Merged
Conversation
* feat: 토스페이먼츠 결제 테이블 DDL 생성 - tosspayments_payment 테이블 생성 - tosspayments_payment_result 테이블 생성 - ENUM 타입으로 state, type, tosspayments_status 필드 정의 - 인덱스 및 외래키 제약조건 추가 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 관련 Enum 타입 정의 - PaymentState: 결제 상태 관리 (NEED_APPROVE, APPROVED 등) - PaymentType: 결제 유형 (NORMAL, BILLING, BRANDPAY) - TosspaymentsStatus: 토스페이먼츠 결제 상태 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 토스페이먼츠 결제 엔티티 구현 - TosspaymentsPayment: 결제 정보 엔티티 - TosspaymentsPaymentResult: 결제 결과 엔티티 - BaseEntity: createdAt, updatedAt 추가 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 토스페이먼츠 JPA 레포지토리 추가 - TosspaymentsPaymentRepository: 결제 정보 레포지토리 - TosspaymentsPaymentResultRepository: 결제 결과 레포지토리 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: JSON 객체를 문자열로 변환하는 Deserializer 구현 - ObjectToStringDeserializer: JSON 객체/배열을 문자열로 자동 변환 - metadata 필드 처리를 위한 커스텀 deserializer 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 확인 요청 DTO 구현 - ConfirmRequest: 결제 승인 요청 DTO - snake_case JSON 필드 매핑 지원 - metadata 필드 자동 문자열 변환 처리 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 토스페이먼츠 API DTO 구현 - TosspaymentsConfirmRequest/Response: 결제 승인 요청/응답 - EasyPay, Receipt, Failure 등 응답 관련 DTO - TossDateTimeDeserializer: 토스 날짜 형식 처리 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 토스페이먼츠 API 클라이언트 구현 - TosspaymentsClient: 토스페이먼츠 API 통신 클라이언트 - TossPaymentsClientBuilder: WebClient 빌더 구성 - TosspaymentsInternalServerErrorCode: 에러 코드 정의 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: HTTP 예외 처리 클래스 추가 - HttpBadRequestErrorException: 400 에러 처리 - HttpInternalServerErrorException: 500 에러 처리 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 서비스 레이어 구현 - PaymentFacadeService: 결제 처리 파사드 - TosspaymentsPaymentService: 결제 정보 관리 - TosspaymentsPaymentResultService: 결제 결과 저장 - TosspaymentsTransactionService: 트랜잭션 처리 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 컨트롤러 구현 - PaymentController: 결제 승인 API 엔드포인트 - PaymentTestController: 결제 테스트 페이지 제공 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 테스트 페이지 구현 - 토스페이먼츠 위젯 통합 - metadata 객체 전송 지원 - memberId 및 결제 정보 URL 파라미터 전달 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 성공 페이지 구현 - URL 파라미터에서 metadata 파싱 처리 - 결제 승인 API 자동 호출 - snake_case JSON 필드 전송 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 실패 페이지 구현 - 결제 실패 시 에러 정보 표시 - 재시도 버튼 제공 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: external 모듈 설정 추가 - build.gradle: WebFlux, Spring Boot 의존성 - application-external.yml: 토스페이먼츠 API 설정 - application-external-test.yml: 테스트 환경 설정 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: 프로젝트 설정 파일 업데이트 - CLAUDE.md: 프로젝트 가이드 문서 - settings.gradle: external 모듈 추가 - build.gradle: 의존성 업데이트 - application.yml: snake_case JSON 설정 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: dev 환경에 토스 페이먼츠 테스트 키 추가 --------- Co-authored-by: Claude <noreply@anthropic.com>
* chore: 클로드 코드를 위한 문서 추가 * feat: 결제를 요청하는 서비스 대상을 구분하기 위한 컬럼 추가 * feat: 결제 내역 조회 API 및 서비스 구분 기능 구현 - ServiceType enum 추가하여 MSA 환경에서 서비스 구분 - 사용자 결제 내역 조회 API 구현 (/api/v1/payments/me) - Pageable을 사용한 페이지네이션 지원 - PaymentState 필터링 (COMPLETED, CANCELED, CLIENT_BAD_REQUEST) - failureMessage 필드 추가하여 결제 실패 상세 메시지 저장 - JPA 네이밍 컨벤션 준수 - 세션 기반 인증 연동 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 토스페이먼츠 실패 메시지 상세 저장을 위한 컬럼 추가 - failure_message TEXT 컬럼 추가 - 결제 실패 시 상세 메시지 저장 가능 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: 필요없는 파일 삭제 * test: 자신의 결제 조회 테스트 코드 작성 * feat: TosspaymentsPaymentResult 엔티티에 환불 관련 필드 추가 - cancelReason: 환불 사유 저장 - canceledAt: 환불 시각 저장 - cancelStatus: 환불 상태 저장 - updateCancelInfo 메서드 추가로 환불 정보 업데이트 기능 구현 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: Repository에 환불 처리를 위한 조회 메서드 추가 - TosspaymentsPaymentRepository: findByPaymentKey 메서드 추가 - TosspaymentsPaymentResultRepository: findByTosspaymentsPaymentId 메서드 추가 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 토스페이먼츠 클라이언트에 환불 API 기능 추가 - cancelPayment 메서드 구현으로 전체 환불 처리 지원 - TosspaymentsPaymentCancelRequest DTO를 사용한 환불 요청 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 환불 처리를 위한 서비스 로직 구현 - TosspaymentsPaymentService: readByPaymentKey 메서드 추가 - TosspaymentsPaymentResultService: readByTosspaymentsPaymentId 메서드 추가 - TosspaymentsTransactionService: applyCancelResult 메서드로 환불 트랜잭션 처리 - 결제 상태를 CANCELED로 변경 - 환불 정보(cancelReason, canceledAt, cancelStatus 등) 업데이트 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 결제 환불 API 엔드포인트 구현 - PaymentController: /internal/v1/payments/cancel POST 엔드포인트 추가 - PaymentFacadeService: cancelPayment 메서드로 환불 처리 오케스트레이션 - 토스페이먼츠 환불 API 호출 (트랜잭션 외부) - 환불 결과 DB 저장 (트랜잭션 내부) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: 로컬용 환불 테스트 html 작성 * test: internal 모듈 통합 테스트 코드 작성 * refactor: 결제 조회 기능 삭제(인터뷰 서버로 이동) * feat: ExecutionTimer 추가 * feat: GlobalExceptionHandler 구현 --------- Co-authored-by: Claude <noreply@anthropic.com>
feat: 토스페이먼츠로부터 받은 응답을 confirmPayment에서 그대로 응답
[Refactor] - metadata 검증 제거
[Refactor] - metadata 검증 제거
Test Results1 tests 1 ✅ 0s ⏱️ Results for commit a91c72a. ♻️ This comment has been updated with latest results. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
민호형 화이팅