Überblick
Laravel Cashier (Stripe) ist das offizielle Paket zur Nutzung der Abrechnungsfunktionen von Stripe aus Laravel. Damit können Sie Abonnements anlegen, deren Status prüfen und kündigen, Einmalzahlungen abwickeln, Rechnungen herunterladen und Webhooks verarbeiten – alles über eine einheitliche API.Installation und Konfiguration
Installieren Sie zunächst Cashier und legen Sie die erforderlichen Tabellen an.Billable zum Modell hinzu, das Zahlungen empfängt – üblicherweise App\Models\User.
.env.
Kundenverwaltung
Wenn möglicherweise noch kein Stripe-Kunde angelegt wurde, verwenden SiecreateOrGetStripeCustomer().
createAsStripeCustomer().
Abonnements
Neu anlegen
Ein Abonnement wird mitnewSubscription() und create() gestartet.
An $paymentMethodId übergeben Sie die Payment-Method-ID, die Sie etwa über Stripe.js ermittelt haben.
price_monthly dient nur als Beispiel. Bei der Umsetzung verwenden Sie die tatsächliche Price-ID aus Ihrem Stripe-Dashboard.
Status prüfen
Mitsubscribed() prüfen Sie, ob ein gültiges Abonnement besteht.
Kündigen und fortsetzen
Einmalzahlung (Charge)
Mitcharge() können Sie einen einmaligen Betrag abbuchen. Der Betrag wird in der kleinsten Währungseinheit angegeben (bei USD entspricht 100 zum Beispiel $1.00).
Auch hier ist $paymentMethodId die in Stripe erzeugte Payment-Method-ID.
charge() eine Ausnahme.
Payment Element
Mit dem Payment Element von Stripe können Sie mehrere Zahlungsarten wie Kreditkarte, Apple Pay, Google Pay oder iDEAL einheitlich verarbeiten.Nutzung mit Abonnements
Erzeugen Sie ein Setup Intent und übergeben Sie es an die View.client_secret des Setup Intents.
setup_intent angehängt. Damit ermitteln Sie die Payment-Method-ID und erstellen das Abonnement.
Nutzung für Einmalzahlungen
Bei Einmalzahlungen erzeugen Sie mitpay() ein Payment Intent. Das Modell Order benötigt die Spalten user_id, amount, status und stripe_payment_intent_id.
payment_intent. Stellen Sie sicher, dass das Payment Intent zur authentifizierten Person gehört und den Status succeeded hat, bevor Sie die Bestellung finalisieren.
Rechnungen
Die Rechnungsliste erhalten Sie überinvoices().
dompdf/dompdf und verwenden downloadInvoice(). In $invoiceId übergeben Sie die Rechnungs-ID aus invoices().
Webhooks einrichten
Cashier registriert automatisch eine Route für Stripe-Webhooks; standardmäßig wird/stripe/webhook verwendet. Tragen Sie diese URL im Stripe-Dashboard ein.
Einen Webhook erstellen Sie mit cashier:webhook.
stripe/* von der CSRF-Prüfung aus.
STRIPE_WEBHOOK_SECRET in der .env setzen, kann die Signaturprüfungs-Middleware von Cashier eingehende Webhook-Anfragen verifizieren.