Heim > Backend-Entwicklung > PHP-Tutorial > Die Kerneigenschaften von Laravel Cashier verstehen: Ein tiefer Einblick

Die Kerneigenschaften von Laravel Cashier verstehen: Ein tiefer Einblick

DDD
Freigeben: 2024-11-30 00:24:15
Original
529 Leute haben es durchsucht

Understanding Laravel Cashier

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 = [])
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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 = [])
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Überprüft den Teststatus auf Modellebene
  • Gibt „true“ zurück, wenn „trial_ends_at“ existiert und in der Zukunft liegt
  • Keine Parameter erforderlich
onGenericTrial()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Möglichkeit zum Filtern von Kunden nach generischen Testversionen
  • Wird im Abfrage-Builder verwendet
  • Erfordert eine Abfrage-Builder-Instanz
scopeOnGenericTrial($query)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ü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()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Möglichkeit zum Filtern von Kunden mit abgelaufenen generischen Testversionen
  • Wird im Abfrage-Builder verwendet
  • Erfordert eine Abfrage-Builder-Instanz
scopeHasExpiredGenericTrial($query)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält Abonnements nach Typ
  • Gibt das Abonnementmodell oder null zurück
subscription($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält alle Abonnements
  • Gibt die HasMany-Beziehung zurück
  • Keine Parameter erforderlich
subscriptions()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Überprüft, ob die Zahlung für das Abonnement unvollständig ist
  • Gibt einen booleschen Wert zurück
hasIncompletePayment($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • $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')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • $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')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ü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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Überprüft, ob ein gültiges Abonnement mit einem bestimmten Preis vorliegt
  • Gibt einen booleschen Wert zurück
  • Spezifischer als subscribedToPrice
onPrice($price)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält Steuersätze für Abonnements
  • Gibt ein Array zurück
  • Standardmäßig leer, soll überschrieben werden
taxRates()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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 = [])
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Gibt die Stripe-Kunden-ID oder null zurück
  • Keine Parameter erforderlich
  • Gibt string|null zurück
onTrial($type = 'default', $price = null)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ü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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Aktualisiert bestehenden Stripe-Kunden
  • Optionen bestimmen, was aktualisiert wird
  • Gibt das aktualisierte Stripe-Kundenobjekt zurück
  • Erfordert bestehenden Kunden
scopeOnGenericTrial($query)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Synchronisiert lokale Details mit Stripe
  • Gibt das Stripe-Kundenobjekt zurück
  • Verwendet Modellattribute für die Synchronisierung
trialEndsAt($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft Stripe-Kundenobjekt ab
  • Expand-Parameter bestimmt zugehörige Daten
  • Gibt das Stripe-Kundenobjekt zurück
  • Erfordert bestehenden Kunden

Kundenattribute

subscription($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft den Namen für die Stripe-Synchronisierung ab
  • Gibt die Zeichenfolge|null
  • zurück
  • Standardmäßig wird $this->name zurückgegeben
subscriptions()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält Telefon für Stripe-Synchronisierung
  • Gibt die Zeichenfolge|null
  • zurück
  • Standardmäßig wird $this->phone zurückgegeben
subscribedToProduct($products, $type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft die Adresse für die Stripe-Synchronisierung ab
  • Gibt das Array|null
  • zurück
  • Standardmäßig leer
subscribedToPrice($prices, $type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft bevorzugte Gebietsschemas für Stripe ab
  • Gibt ein Array zurück
  • Standardmäßig leer
onProduct($product)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft Metadaten für Stripe ab
  • Gibt ein Array zurück
  • Standardmäßig leer

Rabattmanagement

onPrice($price)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält aktiven Kundenrabatt
  • Gibt das Rabattobjekt oder null zurück
  • Keine Parameter erforderlich
taxRates()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Gutschein auf den Kunden anwenden
  • Rückgabe ungültig
  • Erfordert Coupon-ID
priceTaxRates()
Nach dem Login kopieren
Nach dem Login kopieren
  • Wendet den Aktionscode an den Kunden an
  • Rückgabe ungültig
  • Aktionscode-ID erforderlich
newSubscription($type, $prices = [])
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Aktionscode finden
  • Gibt das PromotionCode-Objekt oder null zurück
  • Optionen wirken sich auf die Suche aus
onTrial($type = 'default', $price = null)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält formatierten Kundensaldo
  • Gibt eine Zeichenfolge zurück
  • Keine Parameter erforderlich
onGenericTrial()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält den rohen Kundensaldo
  • Gibt eine Ganzzahl zurück
  • Keine Parameter erforderlich
scopeOnGenericTrial($query)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält Kundensaldotransaktionen
  • Rückgabeabholung
  • Limit wirkt sich auf die zurückgegebene Anzahl aus
hasExpiredGenericTrial()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Gutschrift des Kundenguthabens
  • Returns CustomerBalanceTransaction
  • Betrag ist erforderlich
scopeHasExpiredGenericTrial($query)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Belastet den Kundensaldo
  • Returns CustomerBalanceTransaction
  • Betrag ist erforderlich
trialEndsAt($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Gleichgewichtsanpassung anwenden
  • Returns CustomerBalanceTransaction
  • Betrag ist erforderlich

Steuermanagement

subscribed($type = 'default', $price = null)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält Kundensteuer-IDs
  • Rückgabeabholung
  • Optionen wirken sich auf den Abruf aus
subscription($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erstellt eine neue Steuer-ID
  • Returns Stripe TaxId
  • Beide Parameter erforderlich
subscriptions()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Löscht die Steuer-ID
  • Rückgabe ungültig
  • Erfordert eine Steuernummer
hasIncompletePayment($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Überprüft, ob der Kunde nicht steuerbefreit ist
  • Gibt einen booleschen Wert zurück
  • Keine Parameter erforderlich
subscribedToPrice($prices, $type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Überprüft, ob der Kunde steuerbefreit ist
  • Gibt einen booleschen Wert zurück
  • Keine Parameter erforderlich
onProduct($product)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Überprüft, ob Reverse Charge gilt
  • Gibt einen booleschen Wert zurück
  • Keine Parameter erforderlich

Abrechnungsportal

onPrice($price)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft die URL des Stripe-Abrechnungsportals ab
  • Gibt eine Zeichenfolge zurück
  • ReturnUrl optional
taxRates()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Weiterleitung zum Stripe-Abrechnungsportal
  • Gibt RedirectResponse zurück
  • ReturnUrl optional

ManagesInvoices-Merkmal

Rechnungspositionen

priceTaxRates()
Nach dem Login kopieren
Nach dem Login kopieren
  • Rechnungsposition hinzufügen
  • Retouren Stripe InvoiceItem
  • Beschreibung und Menge erforderlich
stripeId()
Nach dem Login kopieren
  • Fügt preisbasierten Artikel hinzu
  • Retouren Stripe InvoiceItem
  • Preis-ID erforderlich

Rechnungserstellung

hasStripeId()
Nach dem Login kopieren
  • Erstellt sofort eine Rechnung
  • Retouren-Rechnungsobjekt
  • Beschreibung und Menge erforderlich
createAsStripeCustomer(array $options = [])
Nach dem Login kopieren
  • Erstellt eine preisbasierte Rechnung
  • Retouren-Rechnungsobjekt
  • Preis-ID erforderlich
newSubscription($type, $prices = [])
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erstellt eine Rechnung
  • Retouren-Rechnungsobjekt
  • Optionen wirken sich auf die Erstellung aus
onTrial($type = 'default', $price = null)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erstellt eine Stripe-Rechnung
  • Retouren-Rechnungsobjekt
  • Optionen wirken sich auf die Erstellung aus

Rechnungsabruf

hasExpiredTrial($type = 'default', $price = null)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält die bevorstehende Rechnung
  • Gibt ein Rechnungsobjekt oder null zurück
  • Optionen wirken sich auf die Vorschau aus
onGenericTrial()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Sucht nach einer bestimmten Rechnung
  • Gibt ein Rechnungsobjekt oder null zurück
  • Rechnungs-ID erforderlich
scopeOnGenericTrial($query)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Findet die Rechnung oder löst eine Ausnahme aus
  • Retouren-Rechnungsobjekt
  • Rechnungs-ID erforderlich
  • Wirft eine NotFoundHttpException oder AccessDeniedHttpException aus
hasExpiredGenericTrial()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält Rechnungs-PDF
  • Rücksendeantwort
  • ID erforderlich, Dateiname optional
scopeHasExpiredGenericTrial($query)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft alle Rechnungen ab
  • Rückgabeabholung
  • Parameter wirken sich auf die Filterung aus
trialEndsAt($type = 'default')
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Ruft alle Rechnungen ab, auch ausstehende
  • Rückgabeabholung
  • Kurzschrift für Rechnungen (true)
subscribed($type = 'default', $price = null)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Erhält paginierte Rechnungen
  • Gibt CursorPaginator zurück
  • Mehrere Parameter beeinflussen die Paginierung

Wichtige Beobachtungen

  1. Parameterempfindlichkeit: Methoden weisen häufig unterschiedliche Verhaltensweisen auf, basierend auf dem Vorhandensein von Parametern.
  2. Rückgabetypen: Methoden geben konsistent bestimmte Typen zurück (boolean, Objekte, Sammlungen).
  3. Standardwerte: Viele Parameter haben vernünftige Standardwerte, können aber überschrieben werden.
  4. Trait-Interdependenz: Methoden basieren oft auf anderen Trait-Methoden.
  5. Stripe-Integration: Die meisten Methoden interagieren entweder direkt oder indirekt mit der Stripe-API.

Best Practices

  1. Überprüfen Sie immer die Parameteranforderungen für das gewünschte Verhalten.
  2. Behandeln Sie potenzielle Ausnahmen, insbesondere für *OrFail-Methoden.
  3. Verwenden Sie beim Erweitern dieser Merkmale die richtige Typangabe.
  4. Testen Sie verschiedene Parameterkombinationen gründlich.
  5. 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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage