Laravel開發:如何使用Laravel Cashier實現訂閱付款?

laravel是一個非常流行的php框架,被廣泛應用于web開發領域。 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密鑰(Secret key)和公鑰(Publishable key)。

在.env文件中設置相關的Stripe賬戶信息:

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支持多種支付方式,包括信用卡、銀行卡和支付寶等。

  1. 取消訂閱

取消訂閱同樣非常簡單,只需要調用cancel()方法即可:

$user->subscription('monthly')->cancel();
  1. 處理付款失敗

如果用戶的付款失敗,Laravel Cashier會自動發送郵件提醒用戶,要求用戶更新支付信息。開發人員可以在系統中設置郵件模板,并且可以輕松地自定義郵件內容。

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

以上代碼告訴Laravel Cashier只使用郵件通知方式。

  1. 結語

Laravel Cashier為Laravel開發人員提供了一個高效、穩定的訂閱付款功能,避免了自行開發付款功能的重復勞動,對于在線商城、訂閱服務等業務場景非常有用。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享