Rechercher

Rechercher dans Kavel...

Menu de documentation

Paiements

Abonnements Stripe sur l'edge, paiement, portail de facturation et webhooks à signature vérifiée.

Remarque

Les paiements nécessitent le module auth, les abonnements sont liés à un utilisateur. La CLI le sélectionne automatiquement pour vous.

Ce que vous obtenez

  • Des procédures oRPC typées (createCheckoutSession, createPortalSession et getSubscription) toutes derrière requireAuth
  • Un webhook sur /api/stripe/webhook qui vérifie les signatures et met à jour la ligne d'abonnement de chaque utilisateur
  • Une page /billing qui lance le paiement et renvoie vers le portail client Stripe

Stripe edge-native

Il n'y a pas de runtime Node sur Workers, donc le module utilise le client HTTP basé sur fetch de Stripe et le fournisseur Web Crypto SubtleCrypto pour vérifier les signatures de webhook de façon asynchrone, sans node_compat.

ts
const event = await stripe.webhooks.constructEventAsync(
  payload,
  signature,
  env.STRIPE_WEBHOOK_SECRET,
  undefined,
  Stripe.createSubtleCryptoProvider(),
);

Installation

  1. Créez un prix récurrent dans Stripe et copiez son id dans STRIPE_PRICE_ID.
  2. Ajoutez STRIPE_SECRET_KEY (utilisez une clé sk_test_… en développement).
  3. Redirigez les webhooks en local et copiez le secret de signature dans STRIPE_WEBHOOK_SECRET.
bash
stripe listen --forward-to localhost:8787/api/stripe/webhook

Astuce

Sans clé Stripe, les endpoints de paiement restent inactifs : le reste de l'application se construit et tourne quand même. Voir Déploiement pour la configuration du webhook en production.