Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

♻️ 결제 실패 케이스를 더 쉽게 처리할 수 있도록 관련 로직 개선 #599

Open
uwoobeat opened this issue Aug 11, 2024 · 0 comments
Assignees
Labels
♻️ refactor 기능 개선

Comments

@uwoobeat
Copy link
Member

uwoobeat commented Aug 11, 2024

📌 Description

  • 현재 completevalidateComplete 관련 검증 로직과 paymentClient를 통핸 confirm 요청이 결합되어 있어, 정책 예외 (409) 가 발생하는 경우 confirm 요청이 취소되는 경우를 막기 위해 complete 전 validation을 수행하고 있습니다. 이로 인해 도메인 내부에서 예외를 던질 수 없게 되는 문제가 있어, paymentClient#confirm의 경우 AFTER_COMMIT을 통해 DB에 결제 승인 선반영 후 -> 이벤트 핸들링을 통해 컨펌 요청을 보내도록 수정하려고 합니다.
  • 이렇게 하면 트랜잭션이 분리되기는 하지만, 기존 로직이 paymentClient.confirm 이후 예외를 발생시키는 케이스를 막기 위해 order.complete 내부에서 validation 로직을 모두 제거했던 문제를 해결할 수 있습니다. 물론 엣지 케이스에서 무결성이 깨지는 상황이 오긴 하겠지만 어쨌든 이런 케이스는 드물고, 대부분은 정책 위배 케이스이기 때문에 올바르게 로직을 작성할 수 있다는 이점을 챙겨가는게 더 좋아보입니다.
@uwoobeat uwoobeat added the ♻️ refactor 기능 개선 label Aug 11, 2024
@uwoobeat uwoobeat self-assigned this Aug 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
♻️ refactor 기능 개선
Projects
None yet
Development

No branches or pull requests

1 participant