Aller au contenu

Paiements (payments)

Abonnements RevenueCat : paywall, statut Pro, restauration (paywall souple ou bloquant).

Paquet @daroms/module-payments
Activer bun daroms module add payments
Requiert aucun module
Dépendances natives react-native-purchases
Routes ajoutées app/paywall.tsx (PaywallScreen)
Onglets aucun
Migrations aucune
Edge functions aucune
Variables d’environnement EXPO_PUBLIC_REVENUECAT_IOS_KEY, EXPO_PUBLIC_REVENUECAT_ANDROID_KEY
Gate de navigation oui (décide de la redirection au démarrage)
Section de réglages oui (ajoutée au module settings)
Modales paywall

Abonnements et achats avec RevenueCat (react-native-purchases).

  • Activer : bun daroms module add payments (route modale app/paywall.tsx).
  • .env : EXPO_PUBLIC_REVENUECAT_IOS_KEY, EXPO_PUBLIC_REVENUECAT_ANDROID_KEY (clés publiques du SDK).
  • RevenueCat : créer l’entitlement (pro par défaut), les produits et l’offering courante.
  • Config : entitlement, mode (soft : paywall à la demande ; hard : obligatoire), offering, features (clés i18n).
  • Code : usePro() (statut), <ProGate> (contenu réservé), router.push('/paywall').
  • Expo Go : RevenueCat fonctionne en mode aperçu ; achats réels uniquement en build de dev ou de prod.

Dans app.manifest.ts > modules['payments'], validée par modules/payments/config.ts au démarrage.

Clé Schéma zod Rôle
entitlement z.string().default('pro') Identifiant d’entitlement RevenueCat qui débloque la version Pro.
mode z.enum(['soft', 'hard']).default('soft') soft : paywall à la demande ; hard : paywall obligatoire après connexion.
offering z.string().optional() Offering RevenueCat (défaut : l’offering courante).
features z.array(z.string()).default(['paywall.feature1', 'paywall.feature2', 'paywall.feature3']) Clés i18n (namespace app) des avantages listés sur le paywall.

Valeurs écrites par module add :

{
"entitlement": "pro",
"mode": "soft",
"features": [
"paywall.feature1",
"paywall.feature2",
"paywall.feature3"
]
}
import { usePro, PaywallScreen, ProGate } from '@daroms/module-payments'
  • Valeurs : usePro, PaywallScreen, ProGate