우리의 iOS 인앱 결제 불법 환불을 막기 위한 시도
두줄요약
iOS 인앱 결제 환불 악용을 조기에 인지하기 위한 서버 대응 방식을 공유했습니다. 알림 재검증과 소비 정보 전달로 환불 이후 손실을 줄이고자 했습니다.
문제 상황
- Apple 주도 환불 처리 이후에도 서비스가 상태 변경을 즉시 인지하지 못하는 인앱 결제 악용 위험
- 환불 후에도 아이템 사용이나 구독 권한 유지로 이어지는 서비스 손실
원인 분석
- 결제 승인·환불 결정권이 Apple에 있고 서비스의 직접 제어 불가
- Apple 상태 머신 기준 알림의 지연·일시 상태 변화 가능성
해결 방법
- App Store Server Notifications 수신용 서버 엔드포인트 구성과 안정적 수신 우선 설계
- 알림 수신 후 트랜잭션 재검증, 환불 최종 확정 시에만 아이템 회수 또는 사용자 플래그 처리
- Send Consumption Information으로 상품 소비 내역을 Apple 환불 심사 참고 자료로 전달
주의할 점
- Notification을 최종 결론이 아닌 검증이 필요한 신호로 취급
- 이미 소비된 리소스의 소급 회수 대신 환불 이후 상태 정리에 집중
- 환불 완전 차단보다 조기 인지와 손실 완화 중심의 운영



