Laravel開發:如何使用Laravel Cashier實現Stripe訂閱付款?
Stripe是一家全球領先的在線支付處理公司,它提供了在全球范圍內可靠的支付基礎設施,讓開發者和業務人員能夠方便地實現在線付款功能。使用Stripe,開發者可以輕松地實現用戶的支付流程,并且可以支持多種付款方式,包括信用卡、支付寶、微信等。
Laravel是一種非常流行的PHP框架,它具有簡單、優雅、高效等特點,并提供了許多強大的功能。Laravel Cashier是Laravel的一個擴展包,它提供了一個簡單而強大的方式來管理Stripe訂閱付款,使得在Laravel應用中實現訂閱和付款變得更加容易。
下面將會介紹如何在Laravel應用中使用Laravel Cashier擴展包來管理Stripe訂閱付款。
第一步:安裝Laravel Cashier擴展包
在Laravel應用中,安裝Laravel Cashier擴展包非常簡單。首先,通過Composer安裝:
composer require laravel/cashier
登錄后復制
然后,運行數據庫遷移:
php artisan migrate
登錄后復制
第二步:配置Stripe API密鑰
在使用Laravel Cashier之前,需要在.env文件中配置Stripe API密鑰。可以在Stripe Dashboard上找到你的密鑰,并將其添加到.env文件中:
STRIPE_KEY=your-stripe-key STRIPE_SECRET=your-stripe-secret
登錄后復制
第三步:創建Stripe訂閱計劃
在使用Laravel Cashier之前,需要在Stripe Dashboard上創建訂閱計劃。可以在Stripe Dashboard上選擇“Billing-Subscriptions-Plans”來創建訂閱計劃。
創建訂閱計劃需要指定計劃的名稱、價格、付款周期等信息。在創建完訂閱計劃后,需要記下訂閱計劃的ID,后面會用到。
第四步:創建自定義用戶模型
Laravel Cashier在使用中需要使用自定義用戶模型,因此需要在Laravel應用中創建一個自定義用戶模型。可以通過運行以下命令來創建該模型:
php artisan make:model User
登錄后復制
然后,在User模型中添加以下代碼以使用Laravel Cashier:
use LaravelCashierBillable; class User extends Authenticatable { use Billable; }
登錄后復制
通過在User模型中使用Laravel Cashier的Billable trait,可以使該模型具有訂閱計劃和付款相關的功能。
第五步:創建訂閱控制器
在Laravel應用中,需要創建一個控制器來處理訂閱相關的操作,包括創建訂閱、更新訂閱、取消訂閱等。
可以使用以下命令來創建訂閱控制器:
php artisan make:controller SubscriptionController
登錄后復制
然后,在SubscriptionController中添加以下代碼以實現訂閱功能:
use IlluminateHttpRequest; class SubscriptionController extends Controller { public function create(Request $request) { $user = $request->user(); $plan = $request->input('plan'); $user->newSubscription('main', $plan)->create($request->stripeToken); return redirect('/home')->with('success', 'Subscription created successfully.'); } public function edit(Request $request) { $user = $request->user(); $subscription = $user->subscription('main'); $subscription->swap($request->input('plan')); return redirect('/home')->with('success', 'Subscription updated successfully.'); } public function destroy(Request $request) { $user = $request->user(); $subscription = $user->subscription('main'); $subscription->cancel(); return redirect('/home')->with('success', 'Subscription cancelled successfully.'); } }
登錄后復制
在上述代碼中,create()方法用于創建新的訂閱,edit()方法用于更新訂閱計劃,destroy()方法用于取消訂閱。
第六步:創建訂閱視圖
最后,在Laravel應用中創建一個訂閱視圖,并在該視圖中包含訂閱表單。可以使用以下命令來創建訂閱視圖:
php artisan make:view subscribe
登錄后復制
然后,在創建的subscribe.blade.php視圖中添加以下表單:
<form action="{{ route('subscription.create') }}" method="post"> @csrf <label for="plan">Subscription Plan</label> <select name="plan"> <option value="basic">Basic ($10/month)</option> <option value="pro">Pro ($20/month)</option> </select> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="{{ env('STRIPE_KEY') }}" data-amount="1000" data-name="My Site" data-description="Monthly Subscription" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto" data-currency="usd" > </script> </form>
登錄后復制
通過在上述表單中使用Stripe Checkout,可以使用戶直接從應用中進行支付。
然后,在Laravel應用中添加訂閱路由,以便在視圖中使用該路由:
Route::post('/subscription', [SubscriptionController::class, 'create'])->name('subscription.create'); Route::put('/subscription', [SubscriptionController::class, 'edit'])->name('subscription.edit'); Route::delete('/subscription', [SubscriptionController::class, 'destroy'])->name('subscription.destroy');
登錄后復制
最后,在應用中添加相關的頁面來顯示訂閱和取消訂閱的狀態,以及其他相關信息。
總結
使用Laravel Cashier和Stripe,可以讓開發者輕松地實現訂閱和付款功能。在本文中,介紹了如何在Laravel應用中使用Laravel Cashier來管理Stripe訂閱付款,包括安裝Laravel Cashier、配置Stripe API密鑰、創建Stripe訂閱計劃、創建自定義用戶模型、創建訂閱控制器和訂閱視圖等。
當然,在實現訂閱和付款功能時,還需要遵守相關的法律、規定和標準,確保用戶的隱私和支付安全。希望這篇文章對Laravel開發者有所幫助,讓他們更加輕松地實現Stripe支付功能。
以上就是Laravel開發:如何使用Laravel Cashier實現Stripe訂閱付款?的詳細內容,更多請關注www.xfxf.net其它相關文章!