Laravel是一款受歡迎的PHP框架,能夠大幅簡化Web應用程式的開發流程。 Laravel Cashier是一個付款處理庫,它提供了處理訂閱付款的功能。它可以與Stripe集成,使用戶能夠運行具有訂閱功能的應用程式。本文將介紹如何使用Laravel Cashier實現訂閱付款。
在使用Laravel Cashier前,需要先建立一個Stripe帳號。 Stripe是一個處理線上支付的雲端平台,它的API可以輕鬆與Laravel Cashier整合。造訪Stripe網站,建立帳戶,然後登入控制台。在控制台中,可以找到API金鑰,這是在Laravel Cashier中整合Stripe所需的關鍵資訊。
使用Composer在Laravel專案中安裝Laravel Cashier。在終端中,進入Laravel專案的根目錄並執行以下命令:
composer require laravel/cashier
執行上述命令後,Composer將自動安裝所需的依賴項,並將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
在整合Stripe API之後,需要建立訂閱計劃以在應用程式中使用。在Stripe控制台中,導覽至「Products」選項卡,然後按一下「New Product」以建立一個產品。在建立產品後,開啟「Billing」選項卡,然後按一下「New Plan」以建立計畫。根據需要填寫計劃名稱、價格和週期,然後按一下「Create Plan」。
Laravel Cashier使用使用者模型來管理訂閱。因此,在繼續之前,需要在使用者模型中包含一些方法。開啟使用者模型並將以下程式碼加入檔案結尾:
use LaravelCashierBillable; class User extends Model implements AuthenticatableContract, CanResetPasswordContract { use Authenticatable, CanResetPassword, Billable; }
以上程式碼在使用者模型中使用了Laravel Cashier的Billable trait。這允許在使用者模型中使用與Laravel Cashier相關的方法。
使用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中。然後,將使用者重新導向回頁面,並繼續運行應用程式。
在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中文網其他相關文章!