프로젝트 / 사주AI_화조당

결제 시스템 수술

2026.04.20 3분 읽기

토스 심사 신청 + LS 거절 + Gumroad 전환

어제까지 "돈이 실제로 움직이는 영역"은 다음 세션으로 미뤄뒀으나, 오늘 드디어 그 핵심 영역에 진입했습니다. 계획은 단순했지만 결과는 예측 불허였습니다. 6시간의 치열한 세션 끝에 결제 시스템의 거대한 전환점을 맞이했습니다.

오늘의 주요 성과

💳 1부: 토스페이먼츠 실연동 심사 신청

포트원 콘솔 → 전자결제 신청

한국 결제는 토스페이먼츠를 포트원 V2 SDK로 테스트해왔습니다. 실연동 전환을 위해 비즈니스 인증부터 서비스 정보 입력까지 모든 플로우를 통과했습니다. 이 과정에서 대표자 정보 오류(상호 중복)판매 품목 설정(SaaS 단독 체크) 등 세밀한 데이터 교정 작업을 진행했습니다.

사전 점검 및 코드 작업

심사 제출 전 포트원 봇의 자동 검증에서 발견된 이슈들을 즉시 코드로 해결했습니다.

🍋 2부: Lemon Squeezy 거절 — 예상치 못한 난관

"We cannot approve your store application"

해외 결제를 위해 준비했던 Lemon Squeezy로부터 거절 통보를 받았습니다. 원인은 명확히 공개되지 않았으나, 카드 네트워크 정책상 사주·점술 서비스가 고위험(High-risk) 카테고리로 분류된 것이 결정적이었을 것으로 분석됩니다.

회복 전략: Gumroad로의 빠른 피벗

Paddle, Stripe 직접 가입 등 여러 대안을 검토했으나, 소규모 크리에이터 친화적이고 점성술 카테고리가 정식 존재하는 Gumroad를 최종 선택했습니다.

🎯 3부: Gumroad 전환 — 전광석화 같은 실행

상품 구조의 효율화

여러 상품을 개별 생성하는 대신, 1개 상품 내 3개의 Versions(Starter, Popular, Deep Dive)를 구성하는 전략을 취했습니다. 이는 고객의 티어 비교를 용이하게 하고 유지관리 효율을 극대화합니다.

Tier Price (USD) Credits Readings
Starter $4 40 2
Popular ★ $8 120 6
Deep Dive $20 400 20

⚙️ 4부: 코드 완전 자동화 및 예외 처리

Pending Credits 시스템 구축

Gumroad 링크로 직접 접근한 미가입자가 결제할 경우를 대비하여 pending_credits 테이블을 신설했습니다. 이를 통해 이메일 기반으로 크레딧을 임시 저장한 후, 유저가 가입하는 시점에 자동으로 지급되는 Lazy-matching 구조를 완성했습니다.

// Webhook 핵심 로직 예시
if (!user) {
await db.insert(pendingCredits).values({
email,
amount: credits,
provider: 'gumroad'
});
}

🔜 다음 할 일

현재 한국과 해외 결제 인프라 모두 기술적으로 작동 가능한 상태입니다. 이제 프로덕트는 진짜 "돈을 버는 단계"로 진입했습니다.

사주AI_화조당 글 목록

← 프로젝트로 이동
결제 시스템 수술 2026.04.20 고객센터 완료 2026.04.19 듀얼 결제 시스템 2026.04.13 이미지생성 2026.04.13 UI개선 및 한/영 패치 2026.04.12 버그 수정과 관리자 모드 2026.04.11 사주AI 프로젝트 2026.04.05