피드로 돌아가기
Dev.toBackend
원문 읽기
Telegram Stars 도입을 통한 미성년자 결제 제약 극복 및 Idempotency 설계
I'm 15 and I built a todo app with Telegram Stars payments — only legal way for me to monetize before turning 18
AI 요약
Context
전통적인 PG사 가입 시 요구되는 연령 제한 및 신원 인증 절차로 인한 수익화 불가 상황 발생. 뱅킹 시스템의 엄격한 KYC(Know Your Customer) 제약으로 인해 대안적인 결제 인프라 확보가 필수적인 상태.
Technical Solution
- BotFather 기반 Telegram Stars(XTR) 결제 시스템 도입을 통한 금융 기관 의존성 제거 및 결제 경로 단축
- HMAC-signed invoice payload 설계를 통한 결제 요청 위변조 방지 및 Product Code 스와핑 공격 차단
- star_payments 테이블의 charge_id UNIQUE 제약 조건 설정을 통한 결제 처리 Idempotency 보장 및 중복 과금 방지
- pro_until 타임스탬프 기반 Lazy Evaluation 방식을 적용하여 별도의 Cron Job 없이 실시간 권한 상태 검증
- sentinel 값(2099년)을 활용한 Lifetime 플랜 처리 및 기존 잔여 기간을 유지하는 누적 갱신 로직 구현
- PreCheckoutQueryHandler를 통한 10초 이내 서명 검증 및 결제 금액 유효성 확인 프로세스 구축
실천 포인트
- 결제 요청 시 Payload에 HMAC 서명을 포함하여 클라이언트 사이드 데이터 조작 가능성 차단 - DB 유니크 제약 조건과 Exception Handling을 결합하여 분산 환경 내 결제 중복 처리 방지 - 구독 만료 체크 시 배치 작업 대신 요청 시점의 Lazy Evaluation을 검토하여 인프라 복잡도 감소 - 서비스 특성에 맞는 Sentinel Value 설계를 통해 영구 라이선스 등 특수 케이스 처리 간소화