빌링 서비스 및 오픈소스 도구 분석 설계서 - SeungpilPark/uEngine-bill GitHub Wiki

각 기능별 설명 및 계획

Feature 설계 계획
- 통합 인증 토큰 기반 Authorize IAM 을 통하여 토큰 발급 및 밸리데이션을 수행한다.
- 멀티 테넌시 빌링 서비스의 Organization 당 하나의 독립된 영역을 보장한다.Organization 에 접속 가능한 사용자 리스트는 IAM 의 통합인증 유저이다.통합인증 유저가 ADMIN,MEMBER 인지에 따라 ROLE 수행
- 플랜 관리 플랜 관리 UI 를 제공하고, database 에 정형화 한다.
- 일회성 구매 one-time-payment 플랜을 통해 구매할 수 있도록 한다.
- 월 구독, 년 구독 설정 플랜에 billing period 를 지정할 수 있도록 한다.
- 구매자 관리 구매자 관리 API 를 제공한다.
- 구독 관리 Subscription 관리 API 를 제공한다.
- 개별 구독건마다 청구일 지정 Subscription 마다 billing cycle day 를 지정할 수 있도록 한다.
- 구매자 일할 청구일 지정 구매자 마다 billing cylce day 를 지정하고, 구매자들의 subscription 들이 합산 처리될 수 있도록 한다.
- 가상화폐를 통한 환불 처리 Subscription 취소 또는 변경으로 인해 환불 금액이 발생하였을 떄, Credit 를 구매자에게 부여하도록 한다.관리자는 생성된 Credit 에 대해 환불을 완료시킬 수 있다.
- 사용량 기반(Usage) 과금 Tier,Volume,Unit 타입의 Usage 기반 과금을 설정할 수 있다.Usage 과금은 현재 구독건에 합산 처리된다.
- 사용량 Log Bulk loading 지정된 형식의 Log Event 파일을 읽어들여 Usage 과금을 처리할 수 있다.
- 기간제 쿠폰 적용(discount,promotion) 지정된 날짜동안 적용되는 discount 쿠폰을 생성하고, 현존하는 Subscription 에 적용시킬 수 있다.
- 온라인,오프라인 과금 청구 구분 온라인: 구매자와 PG 를 통해 청약을 맺고, 매 결제 텀시 구매자의 의사결정 없이 청약토큰으로 PG 사에 결제요청을 한다. 오프라인: 매 결제 텀시 구매자에게 결제를 요청하고, 구매자는 원하는 결제방식으로 결제를 진행한다.
- 과금 기한 초과 대응 정책 및 독촉 미결제 횟수에 따라 Subscription 의 정지, 또는 삭제 규칙을 정할 수 있다. 미결제에 대한 연제율을 발생시킬 수 있다. 미결제 건에 대한 독촉 메일을 발송한다.
- 인보이스 템플릿 인보이스 템플릿을 등록할 수 있따.
- 독촉 템플릿 톡촉 템플릿을 등록할 수 있다.
- 국가별 통화 국가별 통화 코드, 통화 심볼을 등록하고, Organization 의 기본 통화를 등록시킬 수 있다. 또한 구매자에게 기본 통화로 등록시킬 수 있다.
- 국가별 환율 지정 Organization 의 기본 통화를 기준으로 한 국가별 환율을 지정할 수 있다. 구매자의 기본 통화와 제품의 통화가 틀릴경우, 지정해 놓은 환율대로 과금을 집행한다.
- Tax Tax 관리 API 를 제공한다. Subscription 마다 Tax 를 적용시킬 수 있다.
- PG 인티그레이션 Hosted base pament flow 와 Api base payment flow 두가지 타입에 대비해 개발하도록 한다.
- 국가법령에 따른 Payment flow 제한 카드 정보 수집 금지, 오프라인 결제만 허용 등의 옵션을 제공하여, 국가법령에 따른 Payment flow 를 제한할 수 있도록 한다.
- 서비스 프로바이더 관리 프로덕트 별로 서비스 프로바이더를 지정할 수 있다.
- 서비스 프로바이더 수익배분률 프로덕트에 과금이 발생할 경우 서비스 프로바이더와의 수익분배율을 설정 할 수 있다.
- Analytics 프로덕트별, 플랜별, 서비스 프로바이더 별 판매현황 API 를 제공한다.
- API 클라이언트 Java,Javascript Api Client 를 제공한다.
- UI 제공 React.js 를 활용한다.