Laravel Cashier bietet mehrere leistungsstarke Funktionen, die Stripe-Integrationen verarbeiten. Heute werden wir drei Kernmerkmale und ihre öffentlichen Methoden untersuchen: ManagesSubscriptions, ManagesCustomer und ManagesInvoices. Das Verständnis dieser Merkmale ist entscheidend für die Implementierung einer abonnementbasierten Abrechnung in Ihren Laravel-Anwendungen.
ManagesSubscriptions-Eigenschaft
Abonnementerstellung und -verwaltung
newSubscription($type, $prices = [])
Erstellt eine neue Abonnement-Builder-Instanz. Der Typ definiert den Abonnementnamen (z. B. „Standard“) und die Preise können eine einzelne ID oder ein Array sein.
Studienmanagement
newSubscription($type, $prices = [])
- Keine Parameter: Überprüft NUR generische Testversionen (auf Modellebene)
- Mit $type: Prüft die abonnementspezifische Testversion
- Bei beiden: Prüft, ob ein bestimmter Preis getestet wird
- Gibt einen booleschen Wert zurück
onTrial($type = 'default', $price = null)
- Keine Parameter: Überprüft den Ablauf der generischen Testversion
- Mit $type: Überprüft den Ablauf einer bestimmten Abonnement-Testversion
- Mit beiden: Überprüft den Ablauf des spezifischen Preistests
- Gibt einen booleschen Wert zurück
hasExpiredTrial($type = 'default', $price = null)
- Überprüft den Teststatus auf Modellebene
- Gibt „true“ zurück, wenn „trial_ends_at“ existiert und in der Zukunft liegt
- Keine Parameter erforderlich
onGenericTrial()
- Möglichkeit zum Filtern von Kunden nach generischen Testversionen
- Wird im Abfrage-Builder verwendet
- Erfordert eine Abfrage-Builder-Instanz
scopeOnGenericTrial($query)
- Überprüft, ob die Testversion auf Modellebene abgelaufen ist
- Gibt „true“ zurück, wenn „trial_ends_at“ existiert und vergangen ist
- Keine Parameter erforderlich
hasExpiredGenericTrial()
- Möglichkeit zum Filtern von Kunden mit abgelaufenen generischen Testversionen
- Wird im Abfrage-Builder verwendet
- Erfordert eine Abfrage-Builder-Instanz
scopeHasExpiredGenericTrial($query)
- Keine Parameter: Gibt das Enddatum der generischen Testversion zurück, wenn es sich um eine generische Testversion handelt
- Mit $type: Gibt das abonnementspezifische Enddatum der Testversion zurück
- Gibt eine Carbon-Instanz oder null zurück
Überprüfung des Abonnementstatus
trialEndsAt($type = 'default')
- Nur $type: Überprüft die Existenz eines gültigen Abonnements
- Mit $price: Überprüft den spezifischen Preis des Abonnements
- Gibt einen booleschen Wert zurück
subscribed($type = 'default', $price = null)
- Erhält Abonnements nach Typ
- Gibt das Abonnementmodell oder null zurück
subscription($type = 'default')
- Erhält alle Abonnements
- Gibt die HasMany-Beziehung zurück
- Keine Parameter erforderlich
subscriptions()
- Überprüft, ob die Zahlung für das Abonnement unvollständig ist
- Gibt einen booleschen Wert zurück
hasIncompletePayment($type = 'default')
-
$products: Einzelne Produkt-ID oder Array
-
$type: Zu prüfender Abonnementtyp
- Gibt einen booleschen Wert zurück
- Überprüft, ob Sie eines der angegebenen Produkte abonniert haben
subscribedToProduct($products, $type = 'default')
-
$prices: Einzelne Preis-ID oder Array
-
$type: Zu prüfender Abonnementtyp
- Gibt einen booleschen Wert zurück
- Überprüft, ob Sie einen der angegebenen Preise abonniert haben
subscribedToPrice($prices, $type = 'default')
- Überprüft, ob ein gültiges Abonnement für ein bestimmtes Produkt gültig ist
- Gibt einen booleschen Wert zurück
- Spezifischer als subscribedToProduct
onProduct($product)
- Überprüft, ob ein gültiges Abonnement mit einem bestimmten Preis vorliegt
- Gibt einen booleschen Wert zurück
- Spezifischer als subscribedToPrice
onPrice($price)
- Erhält Steuersätze für Abonnements
- Gibt ein Array zurück
- Standardmäßig leer, soll überschrieben werden
taxRates()
- Erhält Steuersätze für einzelne Abonnementartikel
- Gibt ein Array zurück
- Standardmäßig leer, soll überschrieben werden
Verwaltet Kundenmerkmale
Kundenidentifikation
newSubscription($type, $prices = [])
- Gibt die Stripe-Kunden-ID oder null zurück
- Keine Parameter erforderlich
- Gibt string|null zurück
onTrial($type = 'default', $price = null)
- Überprüft, ob der Kunde über eine Stripe-ID verfügt
- Gibt einen booleschen Wert zurück
- Keine Parameter erforderlich
Kundenerstellung und -verwaltung
hasExpiredTrial($type = 'default', $price = null)
- Erstellt neuen Stripe-Kunden
- Optionen betreffen Kundenmetadaten, E-Mail, Name usw.
- Wirft eine Ausnahme aus, wenn der Kunde bereits existiert
- Gibt das Stripe-Kundenobjekt zurück
onGenericTrial()
- Aktualisiert bestehenden Stripe-Kunden
- Optionen bestimmen, was aktualisiert wird
- Gibt das aktualisierte Stripe-Kundenobjekt zurück
- Erfordert bestehenden Kunden
scopeOnGenericTrial($query)
- Bestehenden Kunden abrufen oder neuen erstellen
- Optionen wirken sich bei Bedarf auf die Erstellung aus
- Gibt das Stripe-Kundenobjekt zurück
- Nachsichtiger als createAsStripeCustomer
hasExpiredGenericTrial()
- Aktualisiert bestehende oder erstellt neue Kunden
- Optionen wirken sich sowohl auf die Aktualisierung als auch auf die Erstellung aus
- Gibt das Stripe-Kundenobjekt zurück
- Kombiniert Aktualisierungs- und Erstellungsfunktionen
scopeHasExpiredGenericTrial($query)
- Synchronisiert lokale Details mit Stripe
- Gibt das Stripe-Kundenobjekt zurück
- Verwendet Modellattribute für die Synchronisierung
trialEndsAt($type = 'default')
- Synchronisiert, falls vorhanden, oder erstellt einen neuen Kunden
- Optionen wirken sich bei Bedarf auf die Erstellung aus
- Gibt das Stripe-Kundenobjekt zurück
subscribed($type = 'default', $price = null)
- Ruft Stripe-Kundenobjekt ab
- Expand-Parameter bestimmt zugehörige Daten
- Gibt das Stripe-Kundenobjekt zurück
- Erfordert bestehenden Kunden
Kundenattribute
subscription($type = 'default')
- Ruft den Namen für die Stripe-Synchronisierung ab
- Gibt die Zeichenfolge|null
zurück
- Standardmäßig wird $this->name zurückgegeben
subscriptions()
- Erhält E-Mail für die Stripe-Synchronisierung
- Gibt die Zeichenfolge|null
zurück
- Standardmäßig wird $this->email zurückgegeben
hasIncompletePayment($type = 'default')
- Erhält Telefon für Stripe-Synchronisierung
- Gibt die Zeichenfolge|null
zurück
- Standardmäßig wird $this->phone zurückgegeben
subscribedToProduct($products, $type = 'default')
- Ruft die Adresse für die Stripe-Synchronisierung ab
- Gibt das Array|null
zurück
- Standardmäßig leer
subscribedToPrice($prices, $type = 'default')
- Ruft bevorzugte Gebietsschemas für Stripe ab
- Gibt ein Array zurück
- Standardmäßig leer
onProduct($product)
- Ruft Metadaten für Stripe ab
- Gibt ein Array zurück
- Standardmäßig leer
Rabattmanagement
onPrice($price)
- Erhält aktiven Kundenrabatt
- Gibt das Rabattobjekt oder null zurück
- Keine Parameter erforderlich
taxRates()
- Gutschein auf den Kunden anwenden
- Rückgabe ungültig
- Erfordert Coupon-ID
priceTaxRates()
- Wendet den Aktionscode an den Kunden an
- Rückgabe ungültig
- Aktionscode-ID erforderlich
newSubscription($type, $prices = [])
- Aktionscode finden
- Gibt das PromotionCode-Objekt oder null zurück
- Optionen wirken sich auf die Suche aus
onTrial($type = 'default', $price = null)
- Findet aktiven Aktionscode
- Gibt das PromotionCode-Objekt oder null zurück
- Optionen wirken sich auf die Suche aus
Balance-Management
hasExpiredTrial($type = 'default', $price = null)
- Erhält formatierten Kundensaldo
- Gibt eine Zeichenfolge zurück
- Keine Parameter erforderlich
onGenericTrial()
- Erhält den rohen Kundensaldo
- Gibt eine Ganzzahl zurück
- Keine Parameter erforderlich
scopeOnGenericTrial($query)
- Erhält Kundensaldotransaktionen
- Rückgabeabholung
- Limit wirkt sich auf die zurückgegebene Anzahl aus
hasExpiredGenericTrial()
- Gutschrift des Kundenguthabens
- Returns CustomerBalanceTransaction
- Betrag ist erforderlich
scopeHasExpiredGenericTrial($query)
- Belastet den Kundensaldo
- Returns CustomerBalanceTransaction
- Betrag ist erforderlich
trialEndsAt($type = 'default')
- Gleichgewichtsanpassung anwenden
- Returns CustomerBalanceTransaction
- Betrag ist erforderlich
Steuermanagement
subscribed($type = 'default', $price = null)
- Erhält Kundensteuer-IDs
- Rückgabeabholung
- Optionen wirken sich auf den Abruf aus
subscription($type = 'default')
- Erstellt eine neue Steuer-ID
- Returns Stripe TaxId
- Beide Parameter erforderlich
subscriptions()
- Löscht die Steuer-ID
- Rückgabe ungültig
- Erfordert eine Steuernummer
hasIncompletePayment($type = 'default')
- Sucht nach einer bestimmten Steuer-ID
- Gibt die Stripe-TaxId oder null zurück
- Erfordert Steuer-ID
Prüfung des Steuerstatus
subscribedToProduct($products, $type = 'default')
- Überprüft, ob der Kunde nicht steuerbefreit ist
- Gibt einen booleschen Wert zurück
- Keine Parameter erforderlich
subscribedToPrice($prices, $type = 'default')
- Überprüft, ob der Kunde steuerbefreit ist
- Gibt einen booleschen Wert zurück
- Keine Parameter erforderlich
onProduct($product)
- Überprüft, ob Reverse Charge gilt
- Gibt einen booleschen Wert zurück
- Keine Parameter erforderlich
Abrechnungsportal
onPrice($price)
- Ruft die URL des Stripe-Abrechnungsportals ab
- Gibt eine Zeichenfolge zurück
- ReturnUrl optional
taxRates()
- Weiterleitung zum Stripe-Abrechnungsportal
- Gibt RedirectResponse zurück
- ReturnUrl optional
ManagesInvoices-Merkmal
Rechnungspositionen
priceTaxRates()
- Rechnungsposition hinzufügen
- Retouren Stripe InvoiceItem
- Beschreibung und Menge erforderlich
stripeId()
- Fügt preisbasierten Artikel hinzu
- Retouren Stripe InvoiceItem
- Preis-ID erforderlich
Rechnungserstellung
hasStripeId()
- Erstellt sofort eine Rechnung
- Retouren-Rechnungsobjekt
- Beschreibung und Menge erforderlich
createAsStripeCustomer(array $options = [])
- Erstellt eine preisbasierte Rechnung
- Retouren-Rechnungsobjekt
- Preis-ID erforderlich
newSubscription($type, $prices = [])
- Erstellt eine Rechnung
- Retouren-Rechnungsobjekt
- Optionen wirken sich auf die Erstellung aus
onTrial($type = 'default', $price = null)
- Erstellt eine Stripe-Rechnung
- Retouren-Rechnungsobjekt
- Optionen wirken sich auf die Erstellung aus
Rechnungsabruf
hasExpiredTrial($type = 'default', $price = null)
- Erhält die bevorstehende Rechnung
- Gibt ein Rechnungsobjekt oder null zurück
- Optionen wirken sich auf die Vorschau aus
onGenericTrial()
- Sucht nach einer bestimmten Rechnung
- Gibt ein Rechnungsobjekt oder null zurück
- Rechnungs-ID erforderlich
scopeOnGenericTrial($query)
- Findet die Rechnung oder löst eine Ausnahme aus
- Retouren-Rechnungsobjekt
- Rechnungs-ID erforderlich
- Wirft eine NotFoundHttpException oder AccessDeniedHttpException aus
hasExpiredGenericTrial()
- Erhält Rechnungs-PDF
- Rücksendeantwort
- ID erforderlich, Dateiname optional
scopeHasExpiredGenericTrial($query)
- Ruft alle Rechnungen ab
- Rückgabeabholung
- Parameter wirken sich auf die Filterung aus
trialEndsAt($type = 'default')
- Ruft alle Rechnungen ab, auch ausstehende
- Rückgabeabholung
- Kurzschrift für Rechnungen (true)
subscribed($type = 'default', $price = null)
- Erhält paginierte Rechnungen
- Gibt CursorPaginator zurück
- Mehrere Parameter beeinflussen die Paginierung
Wichtige Beobachtungen
-
Parameterempfindlichkeit: Methoden weisen häufig unterschiedliche Verhaltensweisen auf, basierend auf dem Vorhandensein von Parametern.
-
Rückgabetypen: Methoden geben konsistent bestimmte Typen zurück (boolean, Objekte, Sammlungen).
-
Standardwerte: Viele Parameter haben vernünftige Standardwerte, können aber überschrieben werden.
-
Trait-Interdependenz: Methoden basieren oft auf anderen Trait-Methoden.
-
Stripe-Integration: Die meisten Methoden interagieren entweder direkt oder indirekt mit der Stripe-API.
Best Practices
- Überprüfen Sie immer die Parameteranforderungen für das gewünschte Verhalten.
- Behandeln Sie potenzielle Ausnahmen, insbesondere für *OrFail-Methoden.
- Verwenden Sie beim Erweitern dieser Merkmale die richtige Typangabe.
- Testen Sie verschiedene Parameterkombinationen gründlich.
- Erwägen Sie, häufige Aufrufe zwischenzuspeichern, um API-Anfragen zu reduzieren.
Abschluss
Diese Eigenschaften bilden das Rückgrat der Funktionalität von Laravel Cashier. Für eine ordnungsgemäße Implementierung ist es von entscheidender Bedeutung, den gesamten Umfang der verfügbaren Methoden und ihres Parameterverhaltens zu verstehen. Die aktuellsten Informationen finden Sie immer in der offiziellen Dokumentation neben dieser Referenz.
Das obige ist der detaillierte Inhalt vonDie Kerneigenschaften von Laravel Cashier verstehen: Ein tiefer Einblick. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!