docs: record RevenueCat mobile SDK integration

This commit is contained in:
AyrisAI
2026-08-20 13:21:22 +03:00
parent b25c742eea
commit 5a0c1ddc82
+7 -3
View File
@@ -19,10 +19,14 @@ Faz tanımları için [ROADMAP.md](./ROADMAP.md). Bu dosya ne yapıldığını,
**Backend:** `POST /subscription/webhook` gerçek mantıkla yazıldı — Authorization header'ı (shared secret) doğruluyor, RevenueCat event tipini `subscriptions.status`'a çeviriyor (`INITIAL_PURCHASE`/`RENEWAL`/`PRODUCT_CHANGE`/`UNCANCELLATION` → active, `BILLING_ISSUE` → grace_period, `EXPIRATION` → suspended; `CANCELLATION` tek başına suspend etmiyor, sadece auto-renew kapanıyor). Gerçek Supabase'e karşı uçtan uca test edildi.
**Tamamlandı (devamı, 2026-08-20):**
- `REVENUECAT_WEBHOOK_SECRET` env değişkeni API servisine eklendi, RevenueCat Dashboard'da webhook (URL + Authorization header) kullanıcı tarafından yapılandırıldı.
- Mobile: `react-native-purchases` SDK'sı kuruldu (`apps/mobile/src/lib/purchases.ts`). `Purchases.configure({ appUserID: restaurantId })` restaurantId'nin bilindiği her noktada (login sonrası, cold-start rehydration, onboarding restoran oluşturma) çağrılıyor — webhook'un `app_user_id`'yi doğru eşleştirmesi için bu şart.
- `apps/mobile/src/app/account/subscription.tsx` — paywall ekranı: mevcut entitlement durumu, offering paketleri (gerçek mağaza fiyatlarıyla), satın alma, restore. Hesap ekranından linklendi.
**Kalan (henüz yapılmadı):**
- Mobile'da `react-native-purchases` SDK'sı hiç kurulu değil — paywall ekranı, `Purchases.configure({ appUserID: restaurantId })` çağrısı, satın alma akışı yazılmadı. Webhook'un `app_user_id`'yi restoran ID'si olarak eşleştirebilmesi için bu SDK entegrasyonu **zorunlu**.
- RevenueCat Dashboard'da webhook URL'i (`https://api.menul.io/subscription/webhook`) ve Authorization header değeri (`Bearer test_MoTphXMYyNDmzeBCbvYVhfrcCjl`) henüz elle girilmedi.
- API servisine `REVENUECAT_WEBHOOK_SECRET` env değişkeni henüz prod'a eklenmedi (local `.env`'de var, Coolify'a taşınmadı).
- Gerçek cihazda satın alma akışı hiç test edilmedi — native modül olduğu için Expo Go'da çalışmaz, EAS/dev-client build gerekiyor (TestFlight build'leri zaten bunu kullanıyor).
- Trial süresi / onboarding'de "7 gün ücretsiz dene" akışı henüz kurulmadı — şu an paywall sadece hesap ekranından manuel erişilebiliyor, hiçbir özellik Pro'ya kilitli değil.
## Faz 0 — Altyapı ✅ (2026-08-19)