Laravel開發(fā):如何使用Laravel Cashier實(shí)現(xiàn)Stripe訂閱付款?
Stripe是一家全球領(lǐng)先的在線支付處理公司,它提供了在全球范圍內(nèi)可靠的支付基礎(chǔ)設(shè)施,讓開發(fā)者和業(yè)務(wù)人員能夠方便地實(shí)現(xiàn)在線付款功能。使用Stripe,開發(fā)者可以輕松地實(shí)現(xiàn)用戶的支付流程,并且可以支持多種付款方式,包括信用卡、支付寶、微信等。
Laravel是一種非常流行的PHP框架,它具有簡(jiǎn)單、優(yōu)雅、高效等特點(diǎn),并提供了許多強(qiáng)大的功能。Laravel Cashier是Laravel的一個(gè)擴(kuò)展包,它提供了一個(gè)簡(jiǎn)單而強(qiáng)大的方式來管理Stripe訂閱付款,使得在Laravel應(yīng)用中實(shí)現(xiàn)訂閱和付款變得更加容易。
下面將會(huì)介紹如何在Laravel應(yīng)用中使用Laravel Cashier擴(kuò)展包來管理Stripe訂閱付款。
第一步:安裝Laravel Cashier擴(kuò)展包
在Laravel應(yīng)用中,安裝Laravel Cashier擴(kuò)展包非常簡(jiǎn)單。首先,通過Composer安裝:
composer require laravel/cashier
登錄后復(fù)制
然后,運(yùn)行數(shù)據(jù)庫遷移:
php artisan migrate
登錄后復(fù)制
第二步:配置Stripe API密鑰
在使用Laravel Cashier之前,需要在.env文件中配置Stripe API密鑰。可以在Stripe Dashboard上找到你的密鑰,并將其添加到.env文件中:
STRIPE_KEY=your-stripe-key STRIPE_SECRET=your-stripe-secret
登錄后復(fù)制
第三步:創(chuàng)建Stripe訂閱計(jì)劃
在使用Laravel Cashier之前,需要在Stripe Dashboard上創(chuàng)建訂閱計(jì)劃。可以在Stripe Dashboard上選擇“Billing-Subscriptions-Plans”來創(chuàng)建訂閱計(jì)劃。
創(chuàng)建訂閱計(jì)劃需要指定計(jì)劃的名稱、價(jià)格、付款周期等信息。在創(chuàng)建完訂閱計(jì)劃后,需要記下訂閱計(jì)劃的ID,后面會(huì)用到。
第四步:創(chuàng)建自定義用戶模型
Laravel Cashier在使用中需要使用自定義用戶模型,因此需要在Laravel應(yīng)用中創(chuàng)建一個(gè)自定義用戶模型。可以通過運(yùn)行以下命令來創(chuàng)建該模型:
php artisan make:model User
登錄后復(fù)制
然后,在User模型中添加以下代碼以使用Laravel Cashier:
use LaravelCashierBillable; class User extends Authenticatable { use Billable; }
登錄后復(fù)制
通過在User模型中使用Laravel Cashier的Billable trait,可以使該模型具有訂閱計(jì)劃和付款相關(guān)的功能。
第五步:創(chuàng)建訂閱控制器
在Laravel應(yīng)用中,需要?jiǎng)?chuàng)建一個(gè)控制器來處理訂閱相關(guān)的操作,包括創(chuàng)建訂閱、更新訂閱、取消訂閱等。
可以使用以下命令來創(chuàng)建訂閱控制器:
php artisan make:controller SubscriptionController
登錄后復(fù)制
然后,在SubscriptionController中添加以下代碼以實(shí)現(xiàn)訂閱功能:
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.'); } }
登錄后復(fù)制
在上述代碼中,create()方法用于創(chuàng)建新的訂閱,edit()方法用于更新訂閱計(jì)劃,destroy()方法用于取消訂閱。
第六步:創(chuàng)建訂閱視圖
最后,在Laravel應(yīng)用中創(chuàng)建一個(gè)訂閱視圖,并在該視圖中包含訂閱表單。可以使用以下命令來創(chuàng)建訂閱視圖:
php artisan make:view subscribe
登錄后復(fù)制
然后,在創(chuàng)建的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>
登錄后復(fù)制
通過在上述表單中使用Stripe Checkout,可以使用戶直接從應(yīng)用中進(jìn)行支付。
然后,在Laravel應(yīng)用中添加訂閱路由,以便在視圖中使用該路由:
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');
登錄后復(fù)制
最后,在應(yīng)用中添加相關(guān)的頁面來顯示訂閱和取消訂閱的狀態(tài),以及其他相關(guān)信息。
總結(jié)
使用Laravel Cashier和Stripe,可以讓開發(fā)者輕松地實(shí)現(xiàn)訂閱和付款功能。在本文中,介紹了如何在Laravel應(yīng)用中使用Laravel Cashier來管理Stripe訂閱付款,包括安裝Laravel Cashier、配置Stripe API密鑰、創(chuàng)建Stripe訂閱計(jì)劃、創(chuàng)建自定義用戶模型、創(chuàng)建訂閱控制器和訂閱視圖等。
當(dāng)然,在實(shí)現(xiàn)訂閱和付款功能時(shí),還需要遵守相關(guān)的法律、規(guī)定和標(biāo)準(zhǔn),確保用戶的隱私和支付安全。希望這篇文章對(duì)Laravel開發(fā)者有所幫助,讓他們更加輕松地實(shí)現(xiàn)Stripe支付功能。
以上就是Laravel開發(fā):如何使用Laravel Cashier實(shí)現(xiàn)Stripe訂閱付款?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.xfxf.net其它相關(guān)文章!