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

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

Open
inbeom opened this issue May 21, 2021 · 2 comments
Open

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

inbeom opened this issue May 21, 2021 · 2 comments

Comments

@inbeom
Copy link
Contributor

inbeom commented May 21, 2021

모바일 웹에서 상품을 구매할 동선을 구축하는 데 가장 중요한 부분이 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

@giwan-dev
Copy link
Contributor

Payment finish 이벤트에 실리는 메시지 형식이 통일되면 좋을 것 같아서 이벤트를 트리거하는 함수도 payment 모듈에서 제공하면 좋을 것 같습니다.

@inbeom
Copy link
Contributor Author

inbeom commented May 21, 2021

Payment finish 이벤트에 실리는 메시지 형식이 통일되면 좋을 것 같아서 이벤트를 트리거하는 함수도 payment 모듈에서 제공하면 좋을 것 같습니다.

네! 현재 앱이 담당하고 있는 부분의 Payload가 눈에 확 들어오지 않아서 어려움이 있더라고요. 앱의 이벤트를 Deprecate하고 모듈이 주고받는 이벤트로만 처리를 통일하는 것도 좋겠군요!

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

No branches or pull requests

2 participants