Vue d’ensemble
Laravel Cashier (Stripe) est le package officiel qui interface Stripe avec Laravel. Il fournit une API unifiée pour créer des Subscriptions, vérifier leur état, les annuler, effectuer des paiements uniques, télécharger des factures et traiter les webhooks.Installation et configuration
Installez Cashier et créez les tables nécessaires.Billable au modèle facturable (par ex. App\Models\User).
.env.
Gestion des clients
Si un Customer Stripe peut ne pas exister encore :createOrGetStripeCustomer().
createAsStripeCustomer().
Subscriptions
Création
newSubscription() + create().
$paymentMethodId : ID de méthode de paiement obtenu via Stripe.js, etc.
price_monthly est un exemple : utilisez le vrai Price ID créé dans Stripe.
État
subscribed() indique si un abonnement est actif.
Annulation et reprise
Paiement unique (Charge)
charge() facture une fois. Le montant est en plus petite unité (ex : 100 = 1,00 USD).
Utilisez à nouveau $paymentMethodId.
charge() lance une exception.
Payment Element
Le Payment Element Stripe unifie carte, Apple Pay, Google Pay, iDEAL, etc.Pour un abonnement
Créez un Setup Intent et passez-le à la vue.client_secret.
setup_intent. Récupérez la méthode de paiement et créez l’abonnement.
Pour un paiement unique
Utilisezpay() pour créer un Payment Intent. Votre modèle Order doit avoir user_id, amount, status, stripe_payment_intent_id.
payment_intent, vérifiez qu’elle appartient à l’utilisateur et est en statut succeeded.
Factures
Liste des factures :invoices().
dompdf/dompdf puis utilisez downloadInvoice().
Configuration des webhooks
Cashier enregistre une route webhook sur/stripe/webhook par défaut. Configurez cette URL dans Stripe.
Créer le webhook :
stripe/* de la protection CSRF.
STRIPE_WEBHOOK_SECRET dans .env pour que le middleware de vérification de signature Cashier valide les requêtes.