triple-frontend
triple-frontend copied to clipboard
[RFC] Payment 연동 모듈의 패키지화
모바일 웹에서 상품을 구매할 동선을 구축하는 데 가장 중요한 부분이 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