Overzicht
Laravel Cashier (Stripe) is het officiële package om de betaalfunctionaliteit van Stripe vanuit Laravel te gebruiken. Je kunt met een uniforme API subscriptions aanmaken, de status controleren en opzeggen, eenmalige betalingen uitvoeren, facturen downloaden en webhooks verwerken.Installatie en configuratie
Installeer eerst Cashier en maak de benodigde tabellen aan.Billable-trait toe aan het model waarvoor gefactureerd wordt, zoals App\Models\User.
.env.
Klantbeheer
Als er mogelijk nog geen Stripe Customer is aangemaakt, gebruik jecreateOrGetStripeCustomer().
createAsStripeCustomer().
Subscriptions
Nieuwe subscription aanmaken
Start een subscription metnewSubscription() en create().
Aan $paymentMethodId geef je een Payment Method ID door die je bijvoorbeeld via Stripe.js hebt opgehaald.
price_monthly is een voorbeeld. Geef bij de implementatie het daadwerkelijke Price ID op dat je in het Stripe-dashboard hebt aangemaakt.
Status controleren
Metsubscribed() controleer je of er een actieve subscription is.
Opzeggen en hervatten
Eenmalige betaling (Charge)
Metcharge() breng je eenmalig een bedrag in rekening. Geef het bedrag door in de kleinste eenheid van de valuta (bijvoorbeeld: bij USD is 100 gelijk aan $1.00).
Ook hier gebruik je voor $paymentMethodId een Payment Method ID dat in Stripe is aangemaakt.
charge() een exception.
Payment Element
Met Stripe’s Payment Element kun je meerdere betaalmethoden zoals kaarten, Apple Pay, Google Pay en iDEAL op een uniforme manier afhandelen.Gebruik met subscriptions
Maak een Setup Intent aan en geef die door aan de view.client_secret van de Setup Intent door.
setup_intent-parameter toegevoegd. Hiermee haal je het Payment Method ID op en maak je de subscription aan.
Gebruik bij eenmalige betalingen
Bij een eenmalige betaling maak je metpay() een Payment Intent aan. Het Order-model heeft de kolommen user_id, amount, status en stripe_payment_intent_id nodig.
payment_intent-parameter, controleer je dat de Payment Intent van de geauthenticeerde gebruiker is en de status succeeded heeft, en bevestig je daarna de bestelling.
Facturen
Een lijst van facturen haal je op metinvoices().
dompdf/dompdf en gebruik je downloadInvoice(). Geef aan $invoiceId een factuur-ID door dat je met invoices() hebt opgehaald.
Webhooks instellen
Cashier registreert automatisch een route voor Stripe-webhooks en gebruikt standaard/stripe/webhook. Stel deze URL in in het Stripe-dashboard.
Je kunt de webhook aanmaken met cashier:webhook.
stripe/* uit van de CSRF-beveiliging.
STRIPE_WEBHOOK_SECRET in .env instelt, kan de handtekeningverificatie-middleware van Cashier de webhook-requests verifiëren.