review-with-ai / backend

0 stars 0 forks source link

카카오페이 결제 연동 및 구독 기능 구현 #26

Closed i960107 closed 2 months ago

i960107 commented 2 months ago

🔍 해결하고자 하는 이슈

  1. 카카오페이를 사용한 결제 구현. 회차별 결제가능하도록(구독 1회차, 구독 2회차 등)
  2. 결제 완료시 유저 구독 상태 업데이트 및 슬랙 알림 메시지 발송 : 이벤트 핸들러 사용해서 결제 비지니스 로직과 분리 image

이 PR은 이슈 #14에서 요청된 기능을 구현합니다. Fixes #14

💡 주요 변경사항

1.Spring OpenFeign을 http client로 사용해서 카카오 결제 구현

결제 승인

  1. 결제 요청 정보를 복원한다.
  2. 결제 요청 정보를 사용해서 카카오 페이에 결제 승인 요청을 보낸다. 만약 결제 승인에 실패하면 PaymentApprovalException을 발생시킨다.
  3. 구독 정보를 가져온다. 첫 결제의 경우 구독 정보가 없기 때문에 새로 생성한다. 첫 결제의 경우 endDate를 100년 후로 지정해서 매 결제시마다 endDate를 업데이트해줄 필요가 없도록 한다. 구독 취소 혹은 결제 실패시에 endDate를 수정하도록 한다.
  4. 결제 정보를 생성한다.
  5. 결제 성공 이벤트를 발행한다. -> 유저의 구독 상태를 업데이트한다. 슬랙 메시지를 보낸다.

2.결제 완료시 유저의 구독 상태 업데이트

3.결제 완료시 슬랙 알림 메시지 발송

✚ 추가 변경사항

1. Subscription(구독) 테이블 변경 및 Payment(결제) 테이블 생성

구독 테이블 변경 내역

2. redis 설정 도메인 모듈로 이동

3. 설정 파일 합치기

✅ 리뷰가 필요한 사항

추가해야할 사항

hoho-green commented 2 months ago

앗 그리고 feign 관련해서 timeout이나 retry 같은 설정도 부탁드려용

hoho-green commented 2 months ago

https://azderica.github.io/01-architecture-msa/

hoho-green commented 2 months ago

sonarqube 라는 정적 분석기가 있는데 이런것도 한번 돌려보시면 좋을거같아요

https://brunch.co.kr/@joypinkgom/207

i960107 commented 2 months ago

sonarqube 라는 정적 분석기가 있는데 이런것도 한번 돌려보시면 좋을거같아요

https://brunch.co.kr/@joypinkgom/207

현재 sonarlint를 사용해서 개발중에 코드 분석을 하고 있는데 ci시에 sonarqube에서 체크하는 방법도 있네요! 살펴보겠습니다