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

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

王林
王林オリジナル
2023-06-13 13:35:06848ブラウズ

Laravel は、Web 開発の分野で広く使用されている非常に人気のある PHP フレームワークです。 Laravel Cashier は、サブスクリプションの支払い機能を提供する拡張パッケージです。これにより、開発者はサブスクリプションおよび支払い関連のロジックを簡単に処理できるようになり、開発効率が大幅に向上します。

この記事では、Laravel Cashierを使ってサブスクリプション決済機能を実装する方法を紹介します。

  1. Laravel Cashier のインストール

まず、Laravel Cashier をインストールする必要があります。 Composer を通じてインストールするには、ターミナルで次のコマンドを入力するだけです:

composer require laravel/cashier

インストールが完了したら、Cashier 構成ファイルとデータベース移行ファイルを公開する必要があります:

php artisan vendor:publish --provider="LaravelCashierCashierServiceProvider" --tag="cashier-migrations"
php artisan migrate
  1. Stripe の設定

Laravel Cashier はデフォルトで決済プラットフォームとして Stripe を使用するため、Stripe にアカウントを登録し、API キー (秘密キー) と公開キー (公開キー) を取得する必要があります。 。

関連する Stripe アカウント情報を .env ファイルに設定します:

STRIPE_KEY=your-stripe-publishable-key
STRIPE_SECRET=your-stripe-secret-key
  1. サブスクリプション プランの作成

Stripe のコントロールパネルでは、複数のサブスクリプション プランを作成できます。たとえば、月次サブスクリプション、四半期サブスクリプション、年間サブスクリプションなどを作成できます。

Laravel では、次のコードを使用してサブスクリプション プランを作成できます:

use IlluminateDatabaseEloquentModel;
use LaravelCashierSubscriptionBuilder;

class Plan extends Model
{
    public function createStripePlan()
    {
        $builder = new SubscriptionBuilder();
        $builder->nickname('Monthly')->interval(SubscriptionBuilder::INTERVAL_MONTH);
        $builder->name('Monthly Plan')->amount(1000);
        $builder->create();
    }
}

上記のコードは、価格が $10 の月次サブスクリプション プランを作成します。

  1. サブスクリプションの作成

Laravel では、次のコードを使用してサブスクリプションを作成できます:

$user = User::find(1);

$user->newSubscription('monthly', 'monthly-plan')->create($paymentMethod);

上記のコードは、「monthly」という名前のサブスクリプションを作成します。 " 、以前に作成したサブスクリプション プランに関連付けられています。

ここでは、ユーザーの支払い方法を示す $paymentMethod パラメータを渡す必要があります。 Laravel Cashier は、クレジット カード、銀行カード、Alipay などのさまざまな支払い方法をサポートしています。

    #サブスクリプションのキャンセル
サブスクリプションのキャンセルも非常に簡単です。

cancel() メソッドを呼び出すだけです:

$user->subscription('monthly')->cancel();

    支払い失敗の処理
ユーザーの支払いが失敗した場合、Laravel Cashier はユーザーに通知する電子メールを自動的に送信し、支払い情報を更新するよう求めます。開発者はシステムに電子メール テンプレートを設定し、電子メールのコンテンツを簡単にカスタマイズできます。

namespace AppProviders;

use IlluminateSupportServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        IlluminateNotificationsNotification::observe(function ($notification) {
            $notification->setChannels(['mail']);
        });
    }
}

上記のコードは、Laravel Cashier に電子メール通知のみを使用するように指示します。

    結論
Laravel Cashier は、Laravel 開発者に効率的かつ安定したサブスクリプション決済機能を提供し、決済機能を自社で開発する重複作業を回避します。サブスクリプション サービスなどのビジネス シナリオに役立ちます。

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

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