시나리 오 1: 신규 인앱결제 구매
조건
| 항목 | 값 |
|---|---|
| 현재 상태 | 캐시 잔액 있음 또는 없음 (관계 없음) |
| 목표 | App Store 또는 Google Play를 통해 캐시 충전 |
| 블랙리스트 여부 | 아님 |
플로우
상태 변화
| 항목 | Before | After |
|---|---|---|
| 캐시 잔액 | 기존 잔액 | 기존 잔액 + 구매 캐시량 |
| 구매 이력 | - | 결제 완료 기록 생성 |
| 캐시 아이템 | 기존 아이템 | 신규 캐시 아이템 추가 (만료일: 충전일 + 60개월) |
캐시 소비 순서 (FIFO)
신규로 추가된 캐시 아이템의 만료일이 기존 보유 캐시보다 나중이라면, 기존 캐시를 먼저 소비한 후에 이번에 충전한 캐시가 차감됩니다.
| 상황 | 소비 순서 |
|---|---|
| 기존 캐시 있음 | 기존 캐시 먼저 → 이번 인앱결제 캐시 나중 |
| 기존 캐시 없음 | 이번 인앱결제 캐시부터 소비 |
FIFO의 환불 보호 효과
기존 캐시가 먼저 소비되므로, 인앱결제 캐시는 상대적으로 오래 남아있게 됩니다. 이는 나중에 환불이 발생했을 때 인앱결제 캐시 원본을 전액 회수할 수 있는 가능성을 높여줍니다.
중복 결제 방지
네트워크 오류 등으로 동일한 결제 알림이 두 번 이상 수신되더라도, 서버는 한 번만 처리합니다.
| 항목 | 처리 결과 |
|---|---|
| 첫 번째 수신 | 정상 처리 (캐시 지급) |
| 동일 결제 재수신 | 무시 (캐시 중복 지급 없음) |
주의사항
블랙리스트 사용자의 결제
블랙리스트에 등록된 사용자는 App Store/Google Play에서 결제가 성공하더라도 서버에서 캐시를 지급하지 않습니다. 스토어 결제 금액은 차감되었으나 캐시가 지급되지 않은 경우, 스토어를 통해 환불 처리해야 합니다.
관련 문서
- 시나리오 가이드 — 전체 시나리오 목록
- 인앱결제 시스템 개요 — 결제 흐름 전반
- 시나리오 2: 정상 환불 — 구매 후 환불 흐름