피드로 돌아가기
I'm 15 and I built a todo app with Telegram Stars payments — only legal way for me to monetize before turning 18
Dev.toDev.to
Backend

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

Doday2026년 5월 24일8intermediate

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 설계를 통해 영구 라이선스 등 특수 케이스 처리 간소화

원문 읽기