ホームページ PHPフレームワーク Laravel Laravel 開発: Laravel Cashier を使用してサブスクリプション支払いを実装する方法は?

Laravel 開発: Laravel Cashier を使用してサブスクリプション支払いを実装する方法は?

Jun 13, 2023 pm 02:39 PM
laravel cashier 定期購入のお支払い

Laravel は、Web アプリケーションの開発プロセスを大幅に簡素化する人気のある PHP フレームワークです。 Laravel Cashier は、サブスクリプションの支払いを処理する機能を提供する支払い処理ライブラリです。 Stripe と統合して、ユーザーがサブスクリプション機能を備えたアプリケーションを実行できるようにすることができます。この記事では、Laravel Cashierを使用してサブスクリプション支払いを実装する方法を紹介します。

  1. Stripe アカウントを作成する

Laravel Cashier を使用する前に、Stripe アカウントを作成する必要があります。 Stripe はオンライン支払いを処理するためのクラウド プラットフォームであり、その API は Laravel Cashier と簡単に統合できます。 Stripe Web サイトにアクセスし、アカウントを作成して、コンソールにログインします。コンソールでは、Stripe を Laravel Cashier に統合するために必要な重要な情報である API キーを見つけることができます。

  1. Laravel Cashier のインストール

Composer を使用して、Laravel プロジェクトに Laravel Cashier をインストールします。ターミナルで、Laravel プロジェクトのルート ディレクトリに移動し、次のコマンドを実行します。

composer require laravel/cashier
ログイン後にコピー

上記のコマンドを実行すると、Composer は必要な依存関係を自動的にインストールし、Laravel Cashier をプロジェクトに追加します。

  1. Laravel Cashier の構成

Laravel Cashier をインストールした後、Stripe API を適切に使用するように構成する必要があります。まず、プロジェクトで config/services.php ファイルを開き、次のコードをファイルに追加します。

'stripe' => [
    'model' => AppModelsUser::class,
    'key' => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
],
ログイン後にコピー

上記のコードは、Stripe を使用するために必要な API キーを含む必要な設定情報を Laravel Cashier に提供し、ユーザーモデル。

次に、.env ファイルで Stripe API キーと Stripe Connect クライアント ID を構成します。

STRIPE_KEY=your-stripe-key
STRIPE_SECRET=your-stripe-secret
STRIPE_CLIENT_ID=your-stripe-client-id
ログイン後にコピー
  1. サブスクリプション プランを作成します

後で Stripe を統合しますAPI を使用するには、アプリケーションで使用するサブスクリプション プランを作成する必要があります。 Stripe コンソールで、「製品」タブに移動し、「新規製品」をクリックして製品を作成します。製品を作成した後、[請求] タブを開き、[新しいプラン] をクリックしてプランを作成します。必要に応じてプラン名、価格、期間を入力し、「プランを作成」をクリックします。

  1. ユーザーモデルの更新

Laravel Cashier はユーザーモデルを使用してサブスクリプションを管理します。したがって、続行する前に、ユーザー モデルにいくつかのメソッドを含める必要があります。ユーザーモデルを開き、次のコードをファイルの最後に追加します。

use LaravelCashierBillable;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword, Billable; 
}
ログイン後にコピー

上記のコードは、ユーザーモデルで Laravel Cashier の Billable トレイトを使用しています。これにより、ユーザーモデルで Laravel Cashier 関連のメソッドを使用できるようになります。

  1. サブスクリプション関数の実装

Laravel Cashier を使用してサブスクリプション関数を実装するのは非常に簡単です。ビューに次のフォームを追加するだけです:

<form method="POST" action="{{ route('subscribe') }}">
    {{ csrf_field() }}
    <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="{{ config('services.stripe.key') }}"
        data-amount="999"
        data-name="My Awesome Website"
        data-description="Monthly Subscription"
        data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
        data-locale="auto">
    </script>
</form>
ログイン後にコピー

上記のコードは、Stripe 購読ボタンを Web サイトに追加します。ユーザーがボタンをクリックすると、Stripe ページにジャンプして購読プロセスを完了します。

コントローラーに次のコードを追加して、サブスクリプション情報をユーザー モデルに関連付けます。

public function subscribe(Request $request)
{
    $user = $request->user();
    $user->newSubscription('main', 'plan_id')->create($request->stripeToken);
    return redirect()->back();
}
ログイン後にコピー

上記のコードは、新しいサブスクリプションを作成し、それをユーザー モデルに関連付け、保存します。 Stripe のサブスクリプション支払い情報。次に、ユーザーをページにリダイレクトして戻し、アプリケーションの実行を続けます。

  1. 購読解除

Laravel Cashier では、購読解除は非常に簡単です。特定のサブスクリプションをキャンセルするには、コントローラーに次のコードを追加するだけです。

public function cancel(Request $request)
{
    $user = $request->user();
    $user->subscription('main')->cancel();
    return redirect()->back();
}
ログイン後にコピー

上記のコードは、特定のサブスクリプションをキャンセルし、ユーザーをページにリダイレクトします。

結論

Laravel Cashier は、サブスクリプションの支払いプロセスを大幅に簡素化できる強力な支払い処理ライブラリです。 Stripe API を使用することで、Laravel Cashier はサブスクリプションプロセスを Laravel アプリケーションに簡単に統合できます。この記事のガイダンスに従って、Laravel Cashier を使用してサブスクリプション支払い機能を簡単に実装できます。

以上がLaravel 開発: Laravel Cashier を使用してサブスクリプション支払いを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Apr 01, 2025 pm 02:45 PM

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Mar 31, 2025 pm 11:48 PM

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Mar 31, 2025 pm 11:24 PM

LaravelスケジュールタスクRAN RANSPONSIVEトラブルシューティングRALAVELのスケジュールタスクスケジューリングを使用すると、多くの開発者がこの問題に遭遇します。スケジュール:実行...

DCAT管理者にデータを追加するためにクリックのカスタムテーブル関数を実装する方法は? DCAT管理者にデータを追加するためにクリックのカスタムテーブル関数を実装する方法は? Apr 01, 2025 am 07:09 AM

DCATを使用するときにDCATADMIN(Laravel-Admin)にデータを追加するためにカスタムクリックのテーブル関数を実装する方法...

Laravel Redis接続共有:選択方法が他の接続に影響するのはなぜですか? Laravel Redis接続共有:選択方法が他の接続に影響するのはなぜですか? Apr 01, 2025 am 07:45 AM

Laravel FrameworkでRedis接続の共有の影響とLaravelフレームワークとRedisを使用する際のメソッドを選択すると、開発者は問題に遭遇する可能性があります。

Laravel Multi-Tenant Extension Stancl/Tenancy:テナントデータベース接続のホストアドレスをカスタマイズする方法は? Laravel Multi-Tenant Extension Stancl/Tenancy:テナントデータベース接続のホストアドレスをカスタマイズする方法は? Apr 01, 2025 am 09:09 AM

Laravel Multi-Tenant拡張機能パッケージStancl/Tenancyのカスタムテナントデータベース接続Laravel Multi-Tenant ExtensionパッケージStancl/Tenancyを使用したマルチテナントアプリケーションを構築する際の...

バングラ部分モデル検索のlaravelEloquent orm) バングラ部分モデル検索のlaravelEloquent orm) Apr 08, 2025 pm 02:06 PM

LaravelEloquentモデルの検索:データベースデータを簡単に取得するEloquentormは、データベースを操作するための簡潔で理解しやすい方法を提供します。この記事では、さまざまな雄弁なモデル検索手法を詳細に紹介して、データベースからのデータを効率的に取得するのに役立ちます。 1.すべてのレコードを取得します。 ALL()メソッドを使用して、データベーステーブルですべてのレコードを取得します:useapp \ models \ post; $ post = post :: all();これにより、コレクションが返されます。 Foreach Loopまたはその他の収集方法を使用してデータにアクセスできます。

Laravel6プロジェクトでRedis接続の有効性を効果的に確認する方法は? Laravel6プロジェクトでRedis接続の有効性を効果的に確認する方法は? Apr 01, 2025 pm 02:00 PM

Laravel6プロジェクトでRedis接続の有効性を確認する方法は、特にプロジェクトがビジネス処理にRedisに依存している場合によく見られます。以下は...

See all articles