triple-frontend icon indicating copy to clipboard operation
triple-frontend copied to clipboard

[RFC] Payment 연동 모듈의 패키지화

Open inbeom opened this issue 3 years ago • 2 comments

모바일 웹에서 상품을 구매할 동선을 구축하는 데 가장 중요한 부분이 payment-web 페이지와의 연동 부분입니다. 네이티브 앱에서만 구매가 가능한 현재 상태에 모바일 웹 지원을 추가할 때 결제 연동에 필요한 것들을 나열하고, 어떤 부분까지 공통 모듈로 포함시킬지 논의해보면 좋겠습니다. 의견 부탁드립니다!

AS-IS:

  • 도메인 서비스: 개별 서비스의 Checkout API 호출 --> 거래 ID 생성
  • 도메인 서비스: Payment finish 이벤트 Listen 시작
  • 도메인 서비스: 거래 ID를 앱으로 전달 ${APP_URL_SCHEME}:///billing?reserveId=${reserveId}
  • 네이티브 앱: 거래 ID를 이용해 payment-web 페이지 띄움
  • 네이티브 앱: 거래 완료 후 payment-web 페이지가 닫히면 Payment finish 이벤트 전달
  • 도메인 서비스: 완료 이벤트 Trigger 이후 로직 수행

간략히 생각해본 Payment 모듈의 역할은 아래 정도였어요.

TO-BE:

  • 도메인 서비스?: 개별 서비스의 Checkout API 호출 --> 거래 ID 생성
  • Payment 모듈: Payment finish 이벤트 Listen 시작
  • Payment 모듈: 거래 ID를 앱으로 전달 ${APP_URL_SCHEME}:///billing?reserveId=${reserveId} 혹은 window.open 수행
  • 브라우저 혹은 네이티브 앱: 거래 ID를 이용해 payment-web 페이지 띄움
  • 브라우저 혹은 네이티브 앱: 거래 완료 후 payment-web 페이지가 닫히면(혹은 닫히기 직전) Payment finish 이벤트 전달
  • Payment 모듈: 완료 이벤트 Trigger 이후 로직 수행

참고 PR

triple-hotels-web: https://github.com/titicacadev/triple-hotels-web/pull/2242 triple-payment-web: https://github.com/titicacadev/triple-payment-web/pull/92

inbeom avatar May 21 '21 00:05 inbeom