refactor(billing): remove Stripe; payments are Payple (web) and Google Play (mobile)
Some checks failed
ci / 정본·보안·린트·타입·테스트 (push) Failing after 1m13s
ci / 워크스페이스 빌드 검증 (push) Has been skipped
ci / 모바일 린트·타입·Jest (push) Failing after 1m4s
ci / Supabase Edge Functions + Cloudflare Worker (push) Successful in 37s
ci / .NET API 서버 테스트 (push) Successful in 27s
deploy-site / deploy (push) Failing after 20s

Stripe is not used. Keeping its checkout, portal and webhook paths meant a
second payment provider, a second return-URL format and dead UI.

- Delete the stripe-checkout, stripe-portal and stripe-webhook functions and
  their config; billing-catalog serves Payple prices only, and the web parser
  rejects a catalog that still mixes in Stripe prices.
- Web: drop the Stripe checkout/portal buttons, provider toggle and return
  notices; billing shows Payple only. Past rows with provider='stripe' are
  still displayed ("Stripe (종료)") with a support contact instead of a portal.
- Desktop: delete the Stripe checkout modal, payment IPC channels, preload
  namespace and their types; "Remove ads with Pro" opens the web billing page
  via license.openBilling. Support/refund copy names Payple.
- billingUrl() loses the Stripe-only success/canceled result option; the
  Deno contract is regenerated.
- Migrations and the DB's accepted provider values are untouched (history).
- Docs and the backlog record the removal (MON-04, EXT-STRIPE-01, GAP-BILL-03).

Verified: typecheck (desktop/web/admin/api-client/mobile), contract:check,
deno check all functions, deno test 80/80, desktop 1478/1480 on the Electron
runtime (2 known environment failures), web and admin builds, release
metadata and mobile boundary self-tests, eslint on changed files.
This commit is contained in:
Yun Chan 2026-09-26 20:56:18 +09:00
parent 7224e43bfb
commit eedd127ea7
50 changed files with 97 additions and 2600 deletions

View file

@ -11,7 +11,7 @@
| AdMob 배너/리워드 광고 | production 앱/배너/리워드 단위 발급 완료. 현재 TEST-DEMO 앱 산출물은 계속 Google test ID 사용 |
| SSV 리워드 검증 (엣지함수) | **AdMob URL 확인·저장, Edge v13, DB receipt replay barrier 운영 배포 완료** |
| 리워드→쿼터 지급 체인 | 리워드 시청 = 전사/대화 쿼터 충전 (무료 티어 수익화 핵심) |
| PRO 구독 (Stripe/Payple) | 결제 인프라 존재 (admin 구독 관리 페이지) |
| PRO 구독 (웹 Payple · 모바일 Google Play) | 결제 인프라 존재 (admin 구독 관리 페이지) |
| 관리자 콘솔 | 광고/릴리스/구독/정산 페이지 통합 배포 완료 |
| 광고 정산 원장 | eCPM/원천세/KRW 지급 계약 구현 (계열 F) |
@ -40,7 +40,7 @@ AdMob 지급 프로필은 아직 미완료다. 스토어 등록정보 연결과
```
무료 사용자 ─ 배너 노출 ──────────────→ AdMob 수입 (eCPM 집계: 계열 F)
└ 리워드 시청 → SSV 검증(리플레이 방어) → 쿼터 지급
유료 전환 ─ PRO 구독 (Stripe/Payple) → 광고 제거 + 무제한
유료 전환 ─ PRO 구독 (웹 Payple / 모바일 Google Play) → 광고 제거 + 무제한
```
- 지급: `AdSettlementRecord` 원장 (원천세 3.3% 가정, KRW 환산, 계좌이체 기본)