한국어
결제·구독 구현 참고
이 문서는 Billing Authority를 채택하는 제품과 해당 구현의 유지보수자를 위한 참고입니다. leysys-control-plane은 호환 저장소 이름이며, 실제 책임은 결제·구독·환불·provider 처리와 entitlement 발급입니다. 범용 회사 플랫폼이나 모든 제품의 필수 결제 서버를 뜻하지 않습니다.
제품별 결제 실행 주체는 아키텍처 경계에서 구분하고, 실제 제공 여부는 현재 제공 상태에서 확인합니다. 회사 전체의 가격 계산 규칙은 가격 규칙이 별도로 소유합니다.
도메인 모델
| 모델 | 역할 |
|---|---|
| seller | 결제 판매 주체와 정산·세금 정책 |
| product / price | 제품별 판매 항목, 금액, 통화, 주기, provider account 선택 |
| customer/account link | Leysys account와 provider customer의 연결 |
| checkout | 고객에게 제시한 구매 세션 |
| payment attempt / payment | 승인 시도와 확정된 결제 사실 |
| subscription / subscription item | 반복 결제 계약과 포함 상품 |
| refund / cancellation | 전액·부분 환불과 구독 취소 상태 |
| entitlement | 제품이 신뢰하는 제품별 권한 |
| provider event | webhook 원문, 멱등 claim, 처리 결과 |
| audit event | 누가 어떤 상태 전이를 수행했는지에 대한 기록 |
결제와 권한은 별도 상태입니다
PG의 결제 성공은 외부 결제 사실입니다. 서비스 권한 활성화는 로컬 catalog와 정책을 적용한 별도 상태 전이입니다.
text
provider payment verified
│
▼
local payment transition committed
│
▼
catalog grants resolved
│
▼
entitlement transition committed각 단계는 독립적으로 멱등성을 보장하고 감사 기록을 남깁니다. provider webhook receiver가 scope를 직접 만들면 안 됩니다.
제품의 진입점
- 구매 시작: Hosted checkout
- 기능 허용 여부: Entitlement
- 플랫폼 구현·운영: Webhook과 상태 전이
- 요금·할인·할증의 계산 규칙: 가격 규칙
- 계약 기간·청구 기준일·일할 계산의 구분: 청구 기간 정책
- 계약 연결·청구번호·회차: 계약 참조와 청구번호
실행 책임
Billing Authority를 채택한 제품은 해당 API를 통해 결제를 요청하며 PG adapter·webhook·비밀키는 Billing Authority가 소유합니다. 제품 소유 결제 서버를 채택한 제품은 그 승인된 서버가 이를 소유합니다. 비밀키를 소스나 브라우저에 넣지 않고 secret store에서 주입하는 원칙은 동일합니다.