Skip to Content
Wagoo SaaS 1.0.25 is released 🎉
03 FeaturesPaiements StripePaiements Stripe

Paiements Stripe

Overview

Wagoo s’intègre avec Stripe pour les paiements en ligne sécurisés.

Configuration Stripe

1. Créer un compte Stripe

  1. Allez sur Stripe.com 
  2. Cliquez Sign up
  3. Remplissez vos informations
  4. Acceptez les conditions
  5. Validez votre email

2. Récupérer vos clés API

  1. Allez au Stripe Dashboard 
  2. Cliquez Developers → API keys
  3. Copiez :
    • Publishable key : pk_test_... (public)
    • Secret key : sk_test_... (privĂ©!)
  4. Ajoutez Ă  .env.local :
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_test_..." STRIPE_SECRET_KEY="sk_test_..."

3. Configurer les webhooks

  1. Allez à Developers → Webhooks
  2. Cliquez Add endpoint
  3. URL : http://localhost:3000/api/webhooks/stripe (ou votre domaine)
  4. Événements à écouter :
    • payment_intent.succeeded
    • charge.refunded
    • customer.subscription.updated
  5. Cliquez Add endpoint
  6. Copiez le Signing secret (commence par whsec_)
  7. Ajoutez Ă  .env.local :
STRIPE_WEBHOOK_SECRET="whsec_..."

Créer des produits

Via le Dashboard Stripe

  1. Allez à Products → Add product
  2. Remplissez :
    • Nom : “Accès Premium”
    • Description : Optionnel
    • Pricing :
      • Model : Standard pricing
      • Price : En cents (ex: 2999 = 29.99€)
  3. Cliquez Save

Via l’API Wagoo

curl -X POST http://localhost:3000/api/stripe/products \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{ "name": "Accès Premium", "description": "Déverrouille toutes les fonctionnalités", "price": 2999, "currency": "eur" }'

Paiements uniques

Créer un Checkout

curl -X POST http://localhost:3000/api/stripe/checkout \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{ "lineItems": [ { "price": "price_1234567890", "quantity": 1 } ], "successUrl": "http://localhost:3000/success", "cancelUrl": "http://localhost:3000/cancel" }'

Réponse :

{ "sessionId": "cs_test_...", "checkoutUrl": "https://checkout.stripe.com/pay/cs_test_..." }

Redirigez l’utilisateur vers checkoutUrl.

Paiements récurrents (Abonnements)

Créer un plan d’abonnement

  1. Allez à Products → [Product]
  2. Dans la section “Pricing” :
    • Recurring : ActivĂ©
    • Interval : Monthly / Yearly
    • Price : Montant
  3. Cliquez Save

Créer une souscription

curl -X POST http://localhost:3000/api/stripe/subscriptions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{ "priceId": "price_1234567890", "successUrl": "http://localhost:3000/dashboard/billing", "cancelUrl": "http://localhost:3000/upgrade" }'

Gérer les paiements

Voir les factures

  1. Allez à Dashboard → Billing
  2. Affiche :
    • Transactions passĂ©es
    • Date et montant
    • Statut

Télécharger une facture

  1. Cliquez sur une transaction
  2. Cliquez Download Invoice

Gérer l’abonnement

  1. Allez à Dashboard → Subscription
  2. Options :
    • Change plan : Changer d’abonnement
    • Update payment method : Changer la carte
    • Cancel : ArrĂŞter l’abonnement

Webhook Stripe

Wagoo traite automatiquement les events Stripe :

payment_intent.succeeded

Paiement réussi. L’utilisateur accède au produit.

charge.refunded

Remboursement. L’accès est révoqué.

customer.subscription.updated

Abonnement modifié (changement de plan, renouvellement).

Vérifier la signature

// app/api/webhooks/stripe/route.ts import { stripe } from "@/lib/stripe"; export async function POST(request: Request) { const body = await request.text(); const sig = request.headers.get("stripe-signature"); try { const event = stripe.webhooks.constructEvent( body, sig, process.env.STRIPE_WEBHOOK_SECRET ); // Traiter l'event switch (event.type) { case "payment_intent.succeeded": console.log("Paiement réussi!"); break; } return Response.json({ received: true }); } catch (err) { return Response.json( { error: "Invalid signature" }, { status: 400 } ); } }

Mode Test vs Production

Développement (Test Mode)

  • ClĂ©s : pk_test_* et sk_test_*
  • Cartes de test : Voir docs Stripe 
  • Aucun argent rĂ©el n’est dĂ©bitĂ©

Production (Live Mode)

  • ClĂ©s : pk_live_* et sk_live_*
  • Vrais paiements
  • ⚠️ JAMAIS commiter les clĂ©s live!

Pour passer en production :

  1. Complétez la vérification Stripe
  2. Activez le mode Live
  3. Remplacez les clés .env.local (ou via variables d’env)
  4. Testez avec une vraie carte

Cartes de test

Utilisez ces cartes en mode test :

NuméroCVCDateRésultat
4242 4242 4242 424242412/26Succès
4000 0000 0000 000242412/26Rejeté
4000 0000 0000 999542412/26Rejeté

Sécurité

✅ JAMAIS stocker les numéros de carte ✅ Utiliser stripe.js pour capturer les paiements ✅ Vérifier les webhooks avec signatures ✅ Utiliser HTTPS en production ✅ Quotas de taux de paiement limités

Cas d’usage

SaaS

Vendez des abonnements mensuels/annuels.

Marketplace

Paiements de transactions individuelles.

Adhésions

Abonnements pour accès premium.

Cours en ligne

Vente de cours et contenu payant.

Fonctionnalités futures

  • 📊 Rapports de chiffre d’affaires
  • đź’¶ Support de plusieurs devises
  • 🏦 Virements bancaires (Connect)
  • 🎟️ Billets numĂ©riques avec Stripe
  • đź“§ Factures automatiques
Last updated on