Laravel Cashier は、Stripe 統合を処理するいくつかの強力な特性を提供します。今日は、ManagesSubscriptions、ManagesCustomer、および ManagesInvoices の 3 つのコア特性とそのパブリック メソッドについて説明します。 Laravel アプリケーションにサブスクリプションベースの課金を実装するには、これらの特性を理解することが重要です。
サブスクリプション特性の管理
サブスクリプションの作成と管理
newSubscription($type, $prices = [])
新しいサブスクリプション ビルダー インスタンスを作成します。タイプはサブスクリプション名 (「デフォルト」など) を定義し、価格は単一の ID または配列にすることができます。
治験管理
newSubscription($type, $prices = [])
- パラメーターなし: 一般的な (モデルレベル) トライアルのみをチェックします
- $type の場合: サブスクリプション固有の試用版をチェックします
- 両方の場合: 特定の価格がトライアル中かどうかを確認します
- ブール値を返します
onTrial($type = 'default', $price = null)
- パラメータなし: 一般的なトライアルの有効期限をチェックします
- $type を使用: 特定のサブスクリプション試用期限を確認します
- 両方の場合: 特定の価格のトライアル有効期限を確認します
- ブール値を返します
hasExpiredTrial($type = 'default', $price = null)
- モデルレベルのトライアルステータスを確認します
- trial_ends_at が存在し、将来の場合は true を返します
- パラメータは必要ありません
onGenericTrial()
- ジェネリックトライアルの顧客をフィルタリングする範囲
- クエリビルダーで使用されます
- クエリビルダーインスタンスが必要です
scopeOnGenericTrial($query)
- モデルレベルの試用期間が期限切れかどうかを確認します
- trial_ends_at が存在し、過去の場合は true を返します
- パラメータは必要ありません
hasExpiredGenericTrial()
- 期限切れのジェネリック試用版を持つ顧客をフィルタリングする範囲
- クエリビルダーで使用されます
- クエリビルダーインスタンスが必要です
scopeHasExpiredGenericTrial($query)
- パラメータなし: 一般トライアルの場合は一般トライアル終了日を返します
- $type の場合: サブスクリプション固有のトライアル終了日を返します
- Carbon インスタンスまたは null を返します
購読ステータスの確認
trialEndsAt($type = 'default')
- $type だけ: 有効なサブスクリプションの存在を確認します
- $price を使用: 特定の価格のサブスクリプションを確認します
- ブール値を返します
subscribed($type = 'default', $price = null)
- タイプごとにサブスクリプションを取得します
- サブスクリプション モデルまたは null を返します
subscription($type = 'default')
- すべてのサブスクリプションを取得します
- HasMany 関係を返します
- パラメータは必要ありません
subscriptions()
- サブスクリプションの支払いが完了していないことを確認します
- ブール値を返します
hasIncompletePayment($type = 'default')
- $products: 単一の製品 ID または配列
- $type: 確認するサブスクリプションのタイプ
- ブール値を返します
- 指定された製品のいずれかを購読しているかどうかを確認します
subscribedToProduct($products, $type = 'default')
- $prices: 単一の価格 ID または配列
- $type: 確認するサブスクリプションのタイプ
- ブール値を返します
- 指定された価格のいずれかに加入しているかどうかを確認します
subscribedToPrice($prices, $type = 'default')
- 特定の製品の有効なサブスクリプションを確認します
- ブール値を返します
- subscribedToProduct よりも具体的
onProduct($product)
- 特定の価格で有効なサブスクリプションを確認します
- ブール値を返します
- subscribedToPrice よりも具体的
onPrice($price)
- サブスクリプションの税率を取得します
- 配列を返します
- デフォルトでは空で、オーバーライドされることを意図しています
taxRates()
- 個々のサブスクリプション項目の税率を取得します
- 配列を返します
- デフォルトでは空ですが、オーバーライドされる予定です
顧客特性を管理する
顧客の識別
newSubscription($type, $prices = [])
- Stripe 顧客 ID または null を返します
- パラメータは必要ありません
- 文字列|nullを返します
onTrial($type = 'default', $price = null)
- 顧客が Stripe ID を持っているかどうかを確認します
- ブール値を返します
- パラメータは必要ありません
顧客の作成と管理
hasExpiredTrial($type = 'default', $price = null)
- 新しい Stripe 顧客を作成します
- オプションは顧客のメタデータ、電子メール、名前などに影響します。
- 顧客がすでに存在する場合は例外をスローします
- Stripe Customer オブジェクトを返します
onGenericTrial()
- 既存の Stripe 顧客を更新します
- 何が更新されるかを決定するオプション
- 更新された Stripe Customer オブジェクトを返します
- 既存の顧客が必要です
scopeOnGenericTrial($query)
- 既存の顧客を取得するか、新しい顧客を作成します
- 必要に応じて、オプションは作成に影響します
- Stripe Customer オブジェクトを返します
- createAsStripeCustomer よりも寛容
hasExpiredGenericTrial()
- 既存の顧客を更新するか、新しい顧客を作成します
- オプションは更新と作成の両方に影響します
- Stripe Customer オブジェクトを返します
- 更新機能と作成機能を組み合わせます
scopeHasExpiredGenericTrial($query)
- ローカルの詳細を Stripe に同期します
- Stripe Customer オブジェクトを返します
- 同期にモデル属性を使用します
trialEndsAt($type = 'default')
- 存在する場合は同期するか、新しい顧客を作成します
- 必要に応じて、オプションは作成に影響します
- Stripe Customer オブジェクトを返します
subscribed($type = 'default', $price = null)
- Stripe 顧客オブジェクトを取得します
- 展開パラメータにより関連データが決定されます
- Stripe Customer オブジェクトを返します
- 既存の顧客が必要です
顧客の属性
subscription($type = 'default')
- Stripe 同期の名前を取得します
- 文字列|nullを返します
- デフォルトは $this->name を返します
subscriptions()
- Stripe 同期用のメールを取得します
- 文字列|nullを返します
- デフォルトでは $this-> メールが返されます
hasIncompletePayment($type = 'default')
- Stripe 同期用に電話を取得します
- 文字列|nullを返します
- デフォルトは $this->phone を返します
subscribedToProduct($products, $type = 'default')
- Stripe 同期用のアドレスを取得します
- 配列|null を返します
- デフォルトでは空です
subscribedToPrice($prices, $type = 'default')
- Stripe の優先ロケールを取得します
- 配列を返します
- デフォルトでは空です
onProduct($product)
- Stripe のメタデータを取得します
- 配列を返します
- デフォルトでは空です
割引管理
onPrice($price)
- アクティブな顧客の割引を受けられます
- 割引オブジェクトまたは null を返します
- パラメータは必要ありません
taxRates()
- 顧客にクーポンを適用します
- 返品無効
- クーポンIDが必要です
priceTaxRates()
- プロモーション コードを顧客に適用します
- 返品無効
- プロモーション コード ID が必要です
newSubscription($type, $prices = [])
- プロモーション コードを見つける
- PromotionCode オブジェクトまたは null を返します
- オプションは検索に影響します
onTrial($type = 'default', $price = null)
- 有効なプロモーション コードを検索します
- PromotionCode オブジェクトまたは null を返します
- オプションは検索に影響します
残高管理
hasExpiredTrial($type = 'default', $price = null)
- フォーマットされた顧客残高を取得します
- 文字列を返します
- パラメータは必要ありません
onGenericTrial()
- 生の顧客残高を取得
- 整数を返します
- パラメータは必要ありません
scopeOnGenericTrial($query)
- 顧客残高トランザクションを取得します
- 返品コレクション
- 制限は返される数に影響します
hasExpiredGenericTrial()
- クレジット顧客残高
- CustomerBalanceTransaction を返します
- 金額は必須です
scopeHasExpiredGenericTrial($query)
- 顧客残高の借方
- CustomerBalanceTransaction を返します
- 金額は必須です
trialEndsAt($type = 'default')
- バランス調整を適用します
- CustomerBalanceTransaction を返します
- 金額は必須です
税務管理
subscribed($type = 'default', $price = null)
- 顧客納税者番号を取得します
- 返品コレクション
- オプションは取得に影響します
subscription($type = 'default')
- 新しい納税者番号を作成します
- Stripe TaxId を返します
- 両方のパラメータが必要です
subscriptions()
- 納税者番号を削除します
- 返品無効
- 納税者番号が必要です
hasIncompletePayment($type = 'default')
- 特定の納税者番号を検索します
- Stripe TaxId または null を返します
- 納税者番号が必要です
納税状況の確認
subscribedToProduct($products, $type = 'default')
- 顧客が免税対象者でないかどうかを確認します
- ブール値を返します
- パラメータは必要ありません
subscribedToPrice($prices, $type = 'default')
- 顧客が非課税かどうかを確認します
- ブール値を返します
- パラメータは必要ありません
onProduct($product)
- リバースチャージが適用されるかどうかを確認します
- ブール値を返します
- パラメータは必要ありません
請求ポータル
onPrice($price)
- Stripe 請求ポータル URL を取得します
- 文字列を返します
- ReturnUrl オプション
taxRates()
- Stripe 請求ポータルにリダイレクトします
- RedirectResponse を返します
- ReturnUrl オプション
ManagesInvoices 特性
請求書項目
priceTaxRates()
- 請求書項目を追加します
- Stripe InvoiceItem を返します
- 説明と必要な量
stripeId()
- 価格ベースの項目を追加します
- Stripe InvoiceItem を返します
- 価格 ID が必要です
請求書の作成
hasStripeId()
- 即時請求書を作成します
- 請求書オブジェクトを返します
- 説明と必要な量
createAsStripeCustomer(array $options = [])
- 価格ベースの請求書を作成します
- 請求書オブジェクトを返します
- 価格 ID が必要です
newSubscription($type, $prices = [])
- 請求書を生成します
- 請求書オブジェクトを返します
- オプションは作成に影響します
onTrial($type = 'default', $price = null)
- Stripe 請求書を作成します
- 請求書オブジェクトを返します
- オプションは作成に影響します
請求書の取得
hasExpiredTrial($type = 'default', $price = null)
- 今後の請求書を取得します
- Invoice オブジェクトまたは null を返します
- オプションはプレビューに影響します
onGenericTrial()
- 特定の請求書を検索します
- Invoice オブジェクトまたは null を返します
- 請求書IDが必要です
scopeOnGenericTrial($query)
- 請求書を見つけるか、例外をスローします
- 請求書オブジェクトを返します
- 請求書 ID が必要です
- NotFoundHttpException または AccessDeniedHttpException をスローする
hasExpiredGenericTrial()
- 請求書の PDF を取得します
- 応答を返します
- ID は必須、ファイル名はオプション
scopeHasExpiredGenericTrial($query)
- すべての請求書を取得します
- 返品コレクション
- パラメータはフィルタリングに影響します
trialEndsAt($type = 'default')
- 保留中の請求書を含むすべての請求書を取得します
- 返品コレクション
- 請求書の短縮形(true)
subscribed($type = 'default', $price = null)
- ページ分割された請求書を取得します
- CursorPaginator を返します
- 複数のパラメータがページネーションに影響します
主な所見
- パラメータの敏感度: 多くの場合、メソッドはパラメータの存在に基づいて異なる動作をします。
- 戻り値の型: メソッドは一貫して特定の型 (ブール値、オブジェクト、コレクション) を返します。
- デフォルト値: 多くのパラメーターには妥当なデフォルト値がありますが、オーバーライドできます。
- 特性の相互依存性: メソッドは多くの場合、他の特性メソッドに依存します。
- Stripe 統合: ほとんどのメソッドは、Stripe の API と直接または間接的に対話します。
ベストプラクティス
- 望ましい動作のためのパラメータ要件を常に確認してください。
- 特に *OrFail メソッドの潜在的な例外を処理します。
- これらの特性を拡張するときは、適切なタイプヒントを使用してください。
- さまざまなパラメータの組み合わせを徹底的にテストします。
- API リクエストを減らすために、頻繁な呼び出しをキャッシュすることを検討してください。
結論
これらの特性は、Laravel Cashier の機能のバックボーンを形成します。適切な実装には、使用可能なメソッドとそのパラメータの動作の全範囲を理解することが重要です。最新情報については、このリファレンスと並行して公式ドキュメントを必ず参照してください。
以上がLaravel Cashier のコア特性を理解する: ディープダイブの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
