Skip to content

결제·구독 구현 참고 ​

이 문서는 Billing Authority를 채택하는 제품과 해당 구현의 유지보수자를 위한 참고입니다. leysys-control-plane은 호환 저장소 이름이며, 실제 책임은 결제·구독·환불·provider 처리와 entitlement 발급입니다. 범용 회사 플랫폼이나 모든 제품의 필수 결제 서버를 뜻하지 않습니다.

제품별 결제 실행 주체는 아키텍처 경계에서 구분하고, 실제 제공 여부는 현재 제공 상태에서 확인합니다. 회사 전체의 가격 계산 규칙은 가격 규칙이 별도로 소유합니다.

도메인 모델 ​

모델역할
seller결제 판매 주체와 정산·세금 정책
product / price제품별 판매 항목, 금액, 통화, 주기, provider account 선택
customer/account linkLeysys account와 provider customer의 연결
checkout고객에게 제시한 구매 세션
payment attempt / payment승인 시도와 확정된 결제 사실
subscription / subscription item반복 결제 계약과 포함 상품
refund / cancellation전액·부분 환불과 구독 취소 상태
entitlement제품이 신뢰하는 제품별 권한
provider eventwebhook 원문, 멱등 claim, 처리 결과
audit event누가 어떤 상태 전이를 수행했는지에 대한 기록

결제와 권한은 별도 상태입니다 ​

PG의 결제 성공은 외부 결제 사실입니다. 서비스 권한 활성화는 로컬 catalog와 정책을 적용한 별도 상태 전이입니다.

text
provider payment verified
          │
          ▼
local payment transition committed
          │
          ▼
catalog grants resolved
          │
          ▼
entitlement transition committed

각 단계는 독립적으로 멱등성을 보장하고 감사 기록을 남깁니다. provider webhook receiver가 scope를 직접 만들면 안 됩니다.

제품의 진입점 ​

실행 책임

Billing Authority를 채택한 제품은 해당 API를 통해 결제를 요청하며 PG adapter·webhook·비밀키는 Billing Authority가 소유합니다. 제품 소유 결제 서버를 채택한 제품은 그 승인된 서버가 이를 소유합니다. 비밀키를 소스나 브라우저에 넣지 않고 secret store에서 주입하는 원칙은 동일합니다.