首頁  >  文章  >  php框架  >  Laravel開發:如何使用Laravel Cashier處理訂閱付款?

Laravel開發:如何使用Laravel Cashier處理訂閱付款?

王林
王林原創
2023-06-14 09:38:431312瀏覽

在網路時代,訂閱模式已成為一種主要的商業模式之一。很多公司都可以透過訂閱模式來獲得更穩定的收入流。而Laravel Cashier則提供了一種方便的方式來處理訂閱付款。

Laravel Cashier是由Taylor Otwell創建的Laravel元件,它可以協助開發者處理基於Stripe的訂閱付款。 Stripe是一種受歡迎的線上支付服務,它提供安全、靈活和強大的支付處理功能。在這篇文章中,我們將介紹如何使用Laravel Cashier在Laravel專案中處理訂閱付款。

  1. 安裝Laravel Cashier

首先,我們需要使用composer安裝Laravel Cashier。在終端機中執行以下命令即可完成安裝:

composer require laravel/cashier
  1. 配置Stripe API金鑰

接下來,我們需要在Laravel專案中設定Stripe API金鑰。在Stripe網站上建立帳號後,可以在「API」選單下找到Stripe API金鑰。開啟config/services.php文件,加入以下程式碼:

'stripe' => [
    'key' => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
],

這個設定檔將Stripe API金鑰儲存在.env檔中,確保.env檔中含有以下內容:

STRIPE_KEY=your_stripe_key
STRIPE_SECRET=your_stripe_secret
  1. 建立訂閱計畫

在Stripe網站上建立訂閱計畫後,我們需要將這些計畫新增至Laravel應用程式以便可以使用它們作為付款選項。打開app/Providers/AppServiceProvider.php文件,新增以下程式碼:

use LaravelCashierCashier;

public function boot()
{
    Cashier::useSubscriptionModel(YourSubscriptionModel::class);
    Cashier::useCurrency('usd', '$');
    Cashier::usePlans([
        'monthly' => [
            'name' => 'Monthly Subscription',
            'description' => 'Monthly subscription',
            'price' => 10,
        ],
        'yearly' => [
            'name' => 'Yearly Subscription',
            'description' => 'Yearly subscription',
            'price' => 50,
        ],
    ]);
}

這個程式碼區塊包含兩個關鍵元素:第一個元素使用訂閱模型定義您的訂閱,您需要建立該模型作為應用的一部分;第二個元素定義了您的訂閱計劃,用於建立和顯示所有可用的訂閱選項。

  1. 訂閱和付款

現在,我們可以為網路應用程式中的使用者建立訂閱。 Laravel Cashier提供了幾個方便的方法,使我們能夠輕鬆地管理用戶訂閱:

// 为用户创建订阅
$user->newSubscription('main', 'monthly')->create($token);

// 获取用户当前订阅
$user->subscription('main');

// 取消用户订阅
$user->subscription('main')->cancel();

// 恢复用户订阅
$user->subscription('main')->resume();

// 对用户订阅进行切换
$user->subscription('main')->swap('yearly');

在上面的程式碼範例中,我們首先使用newSubscription()方法為用戶創建了一個新的訂閱,該方法的第一個參數指定訂閱名稱,第二個參數指定計畫名稱。然後,我們使用create()方法來處理付款,傳遞一個Stripe令牌作為參數。我們也可以使用subscription()方法執行其他操作,例如取得、取消、復原和切換使用者訂閱。

  1. 顯示訂閱資訊

最後,我們可以在使用者的個人資料頁面上顯示他們目前的訂閱資訊。以下是一個簡單的程式碼範例:

@if ($user->subscribed('main'))
    <p><b>Plan:</b> {{ $user->subscription('main')->stripe_plan }}</p>
    <p><b>Renewal Date:</b> {{ $user->subscription('main')->ends_at->toFormattedDateString() }}</p>
@endif

這個程式碼區塊包含了一個簡單的條件語句,用於檢查使用者是否已訂閱應用程式。如果用戶已經訂閱,我們可以顯示用戶的方案名稱和續訂日期。

總結

在本文中,我們介紹如何使用Laravel Cashier處理訂閱付款。首先,我們安裝了Laravel Cashier並配置了Stripe API金鑰。然後,我們創建了幾個訂閱方案並用它們取代了Laravel Cashier內建的方案。接下來,我們使用一些方法讓使用者建立、取消和恢復訂閱。最後,我們在用戶個人資料頁面上顯示他們目前的訂閱資訊。希望這篇文章對你有幫助,如果你有任何問題或建議,請在下面的評論區留言。

以上是Laravel開發:如何使用Laravel Cashier處理訂閱付款?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn