UsageMetering — 소비자 사용량 과금
외부 API(음성 합성, 문자 발송, LLM 등) 사용료를 회원 크레딧에서 차감하고, 회원이 자기가 지불한 단가를 직접 확인할 수 있게 하는 플러그인입니다. (ADR-119)
무엇을 해결하나
API를 대신 호출해 주는 서비스는 과금이 두 층입니다.
API 공급자 ─── 우리에게 원가 청구 → 우리가 지불 (도매)
▲
우리 서비스 ─── 회원에게 청구 → 회원이 지불 (소매)
아랫층이 없으면 "이 기능은 100크레딧" 같은 값을 코드에 박아 넣게 되고, 공급자 단가가 바뀌면 조용히 틀린 금액을 청구하게 됩니다.
이 플러그인은 그 값을 계산합니다.
회원 단가 = 공급자 도매단가 × (1 + 마진율 / 100)
운영자가 관리하는 것은 마진율 숫자 하나입니다. 0이면 도매가가 그대로 회원 가격이 됩니다.
운영자 가이드
1. 활성화
플러그인 관리 화면에서 사이트별로 켭니다. 켜지 않으면 아무 것도 동작하지 않습니다.
php artisan migrate # plg_metering_rates / plg_metering_usages
2. 요금표 등록 — 회원 관리 › 사용 요금표
| 항목 | 설명 |
|---|---|
| 상품 코드 | 과금 단위 식별자. 공급자 연동 시 apis.{서비스}.{공급자코드} 규약을 쓰면 매핑이 자동입니다 |
| 출처 | 업스트림(도매단가 × 마진) / 고정(자체 기능 — 단가 직접 입력) |
| 마진율(%) | 여기가 핵심입니다. 0 = 도매가 그대로, 50 = 50% 추가 |
| 단위 | characters / messages / tokens … 회원 화면에 그대로 표시됩니다 |
| 최소 과금 | 아주 짧은 호출도 최소 금액은 받고 싶을 때 |
요금표를 바꿔도 과거 사용 내역의 단가는 바뀌지 않습니다. 각 내역은 그 시점 단가를 스냅샷으로 갖고 있어, 회원이 나중에 봐도 당시 계산이 그대로 맞습니다.