Skip to content

fix: Toss 결제 승인 실패 응답의 error code를 도메인 에러로 매핑 - #422

Merged
soyeon1806 merged 1 commit into
devfrom
fix/toss-error-code-mapping
Jul 15, 2026
Merged

fix: Toss 결제 승인 실패 응답의 error code를 도메인 에러로 매핑#422
soyeon1806 merged 1 commit into
devfrom
fix/toss-error-code-mapping

Conversation

@soyeon1806

@soyeon1806 soyeon1806 commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

✅ PR 설명

Toss가 승인 실패 시 응답 body에 {code, message}를 주는데도, 기존 코드는 4xx 예외를 catch(Exception)으로 잡아 모두 PAYMENT_VERIFICATION_FAILED로 뭉개고 실제 원인을 버렸습니다.
이에 운영에서 실패 원인을 알 수 없고, 사용자에게도 항상 동일한 에러가 나갔습니다.
그래서 Toss 실패 응답의 code를 파싱해 도메인 에러로 매핑하고, 매핑되지 않는 코드도 실제 code/message를 로그로 남기도록 했습니다.

🏗 작업 내용

  • TossPaymentClient.requestConfirm에서 HttpStatusCodeException(4xx/5xx)을 잡아 mapConfirmError로 처리
  • 에러 코드 매핑
  • 매핑 여부와 무관하게 실제 httpStatus/code/message를 error 로그로 기록
  • ErrorCode.PAYMENT_REJECTED(400) 추가
  • 클라이언트 테스트 3개 추가

📸 테스트 결과 (선택)

  • TossPaymentClientTest 5/5

🔗 관련 이슈 (선택)

관련된 Issue가 있다면 #이슈번호 형식으로 작성해주세요.

🚨 참고 사항 (선택)

리뷰어가 참고해야 할 사항이 있다면 작성해주세요.

@soyeon1806 soyeon1806 self-assigned this Jul 15, 2026
@soyeon1806
soyeon1806 merged commit 52561f1 into dev Jul 15, 2026
2 checks passed
@soyeon1806
soyeon1806 deleted the fix/toss-error-code-mapping branch July 15, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant