首頁 >php框架 >Laravel >Laravel開發:如何使用Laravel Cashier實現訂閱付款?

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

WBOY
WBOY原創
2023-06-13 14:39:371419瀏覽

Laravel是一款受歡迎的PHP框架,能夠大幅簡化Web應用程式的開發流程。 Laravel Cashier是一個付款處理庫,它提供了處理訂閱付款的功能。它可以與Stripe集成,使用戶能夠運行具有訂閱功能的應用程式。本文將介紹如何使用Laravel Cashier實現訂閱付款。

  1. 建立Stripe帳號

在使用Laravel Cashier前,需要先建立一個Stripe帳號。 Stripe是一個處理線上支付的雲端平台,它的API可以輕鬆與Laravel Cashier整合。造訪Stripe網站,建立帳戶,然後登入控制台。在控制台中,可以找到API金鑰,這是在Laravel Cashier中整合Stripe所需的關鍵資訊。

  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'),
],

以上程式碼為Laravel Cashier提供了必要的設定信息,包括使用Stripe所需的API金鑰和使用者模型。

然後,在.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控制台中,導覽至「Products」選項卡,然後按一下「New Product」以建立一個產品。在建立產品後,開啟「Billing」選項卡,然後按一下「New Plan」以建立計畫。根據需要填寫計劃名稱、價格和週期,然後按一下「Create Plan」。

  1. 更新使用者模型

Laravel Cashier使用使用者模型來管理訂閱。因此,在繼續之前,需要在使用者模型中包含一些方法。開啟使用者模型並將以下程式碼加入檔案結尾:

use LaravelCashierBillable;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword, Billable; 
}

以上程式碼在使用者模型中使用了Laravel Cashier的Billable trait。這允許在使用者模型中使用與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訂閱按鈕。當使用者點擊該按鈕時,將跳到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中文網其他相關文章!

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