>
鑰匙要點- Laravel收銀員通過管理訂閱賬單,處理優惠券,交換訂閱,取消寬限期和生成發票PDFS來簡化基本付費會員網站的創建。
- > >要將Laravel收銀員集成到現有的Laravel項目中,通過作曲家安裝包裹,運行遷移以在用戶表中添加必要的列,設置API鍵,然後將計費性狀添加到模型中。 Laravel Abasier可以通過自動重試付款來處理失敗的付款。如果付款繼續失敗,則將取消訂閱。
- > Laravel Abasier目前僅支持Stripe和Braintree,但可以擴展到與其他付款網關合作,並以良好的了解Laravel和付款網關的API。
- 設置工作環境
- 我們需要創建一個佈置項目才能開始,我們可以通過兩種不同的方式來做:
我們可以克隆github repo到我們的項目文件夾。 >
>假設您已經安裝了作曲家(請查看安裝指南以獲取更多詳細信息)。 我們運行作曲家create-project laravel/laravel laravel_membership-首發,這將在我們的laravel_membership文件夾中創建一個laravel樣板項目。
- >現在,我們需要通過將“ Laravel/Cashier”:“ 〜1.0”添加到我們的Composer.json上的“要求”部分和運行作曲家更新以更新我們的依賴項,從而需要Laravel收銀員包。 之後,我們需要告訴我們的應用程序加載收銀員服務提供商類。我們可以通過在config/app.php文件上的提供商數組中添加“ LaravelCashierCashierServiceProvider”來做到這一點。 注意:您必須運行Composer dump-autoload才能更新Classmap軟件包。
-
>使用遷移創建數據庫
我們將使用兩個表:
帖子表:
- int id- 字符串標題
- long_text內容- bool is_premium
>用戶表:
- int id
- varchar(60)密碼
Laravel Artisan命令行工具使創建和管理遷移類都很容易。
>然後我們填充schema ::創建回調函數參數,並帶有看起來像
要讓Laravel Cashier知道我們的可計費表,我們需要為此創建一個特定的遷移。 Laravel Cashier為此目的具有內置命令。
<span>php artisan migrate:make create_posts_table --create="posts" </span><span> </span><span>php artisan migrate:make create_users_table --create="users"</span>
如果打開用戶表,則在執行軟件包遷移時會看到一堆字段。
- Stripe_active如果您有活動訂閱。
- Stripe_ID用戶ID上的Stripe Server上。
- Stripe_plan Stripe訂閱計劃。
- last_four信用卡最後四位數。
- 如果您指定試用期,則存儲結束日期。
- subscription_ends_at subscription結束日期。
>現在,我們將使用一些虛擬數據播種數據庫來開始。檢查github上的最終結果。
>條紋計費過程
處理付款可能會很痛苦,條紋可以幫助您,他們使用令牌代替卡號等。 。
>注意:檢查您所在國家是否支持條紋,但您仍然可以使用它進行測試。
>要開始,我們需要先獲取一個帳戶。 Stripe沒有訂閱的月費,只有在獲得付款時付款。
>現在,在獲得帳戶後,您需要為您的申請創建計劃(每月,每年,銀,金…)。
>
>每個領域都是自我解釋的,因此讓我們創建一個金色會員資格,價格為40美元,基本會員資格為10美元。他們每月都會被收費。
>我們已經在用戶表中添加了必要的列,現在我們需要讓Laravel Cashier知道我們將使用用戶類用作計費類。
<span>Schema::create('posts', function(Blueprint $table) </span><span>{ </span><span> $table->increments('id'); </span><span> $table->string('title'); </span><span> $table->longText('content'); </span><span> $table->boolean("is_premium"); </span><span> $table->timestamps(); </span><span>}); </span><span> </span><span>Schema::create('users', function(Blueprint $table) </span><span>{ </span><span> $table->increments('id'); </span><span> $table->string('email', 100)->unique(); </span><span> $table->string('password', 60); </span><span> $table->timestamps(); </span><span>});</span>注意:我們使用的是Billabretrait,並且特質需要5.4或更高的php。
>現在,我們必須設置Stripe API訪問密鑰,您可以從帳戶>帳戶設置> API鍵中獲取並複制測試秘密密鑰。
>
>通過使用BillabRetrait,我們可以訪問用戶:: setStripekey(鍵)方法,該方法可以在我們的代碼中的任何地方稱為,但是首選的方法是在您的配置目錄下創建一個services.php文件,然後返回像這:
> GetStripeKey嘗試加載鑰匙時,它將尋找一個稱為StripeKey的屬性。如果找不到的話,它將自動加載您的服務文件。
<span>php artisan cashier:table users</span>
創建我們的頁面
為了使事情變得簡單,我們將僅創建幾頁:
- 註冊:用戶可以使用會員計劃(基本,黃金)註冊的地方。
- 登錄:會員登錄頁面。
- 升級:從基本會員升級到黃金會員資格。
- 帖子:顯示一個帖子頁面。
為了加快流程,我們將使用Bootsnipp。您可以從github存儲庫中獲取最終代碼。
登錄頁面:
登錄頁面具有一個基本的電子郵件和密碼字段,帶有登錄控制器頁面,看起來像這樣:
<span>php artisan migrate:make create_posts_table --create="posts" </span><span> </span><span>php artisan migrate:make create_users_table --create="users"</span>
>註冊頁:
>註冊頁面具有用於分配用戶計劃的訂閱計劃字段。
我們還有一個信用卡號,到期日期,CVC。
正如我們之前所說的,我們將永遠不必處理任何付款或驗證過程,我們將這些值傳遞給Stripe Server以照顧充電和驗證過程。
>讓我們看看前端代碼的外觀:
首先,我們包括JavaScript API文件,然後我們設置了我們從Stripe儀表板設置中獲取的公共密鑰。
<span>Schema::create('posts', function(Blueprint $table) </span><span>{ </span><span> $table->increments('id'); </span><span> $table->string('title'); </span><span> $table->longText('content'); </span><span> $table->boolean("is_premium"); </span><span> $table->timestamps(); </span><span>}); </span><span> </span><span>Schema::create('users', function(Blueprint $table) </span><span>{ </span><span> $table->increments('id'); </span><span> $table->string('email', 100)->unique(); </span><span> $table->string('password', 60); </span><span> $table->timestamps(); </span><span>});</span>接下來,我們將回調函數附加到我們的提交表單(請確保您的表單ID匹配事件處理程序上使用的表單),以防止雙重提交我們禁用提交按鈕。
stripe.card.createToken接受兩個參數,第一個是JSON對象,具有一些必需和可選的值。
> exp_month:代表卡的到期月的兩個數字編號。
- >
- exp_year:代表卡的到期年度的兩個或四位數編號。
- >可選值:
>名稱:持卡人名稱。
- adversion_line1:帳單地址行1.
- adversion_line2:計費地址行2。
- adversion_city:帳單地址城市。
- address_state:計費地址狀態。
- advelly_zip:按zip為字符串。
- > adversion_country:帳單地址國家。
- 您可以注意到,我們正在傳遞表單對象而不是JSON對象,您可以選擇手動捕獲值或在輸入上使用數據 - 條紋HTML5屬性,而條紋將使用一些幫助者方法自動為您獲取這些值。例如:
- 第二個參數傳遞給stripe.card.createToken方法是一個回調函數,可以處理響應。
>如果失敗,脫衣舞索Handler將嘗試找到一個帶有一類peays_errors的元素,以向用戶顯示一些描述性錯誤。
<span>php artisan cashier:table users</span>其他選項
>試驗期:正如我們之前說的,當您創建一個新計劃時,您可以選擇指定試用期供用戶測試您的產品,直到指定期限經過。
>優惠券:您可以通過儀表板菜單創建優惠券,您可以在其中指定固定金額或通過百分比,並提供其他一些有用的選項。
現在,讓我們轉到我們的IngeupController,看看我們將如何處理。
<span>php artisan migrate:make create_posts_table --create="posts" </span><span> </span><span>php artisan migrate:make create_users_table --create="users"</span>
我們將跳過驗證過程以保持簡單。
>創建新用戶並保存它後,我們現在可以選擇將用戶訂閱為新的會員計劃。訂閱方法接受已經註冊的計劃作為一個參數,可以是planInterface或字符串並返回條紋egateway。
創建方法接受令牌作為參數;我們通過名稱exteToken的新隱藏輸入值。
>升級頁面:
升級頁面將提交給看起來像這樣的升級器:
><span>Schema::create('posts', function(Blueprint $table) </span><span>{ </span><span> $table->increments('id'); </span><span> $table->string('title'); </span><span> $table->longText('content'); </span><span> $table->boolean("is_premium"); </span><span> $table->timestamps(); </span><span>}); </span><span> </span><span>Schema::create('users', function(Blueprint $table) </span><span>{ </span><span> $table->increments('id'); </span><span> $table->string('email', 100)->unique(); </span><span> $table->string('password', 60); </span><span> $table->timestamps(); </span><span>});</span>
>我們檢查用戶是否首先登錄,然後我們使用新計劃創建一個新訂閱,我們稱之為交換方法,顯然在一個真實的項目中,您將有一些費用調整和降級選項,但它應該有效同樣的方式。
帖子頁面:
> PostController檢查帖子IS_Premium是否,如果是的,我們測試用戶是否是可以看到帖子的黃金成員,否則我們會返回一個簡單的錯誤消息。
當然,在我們的routes.php文件中,我們需要添加一個驗證過濾器,以防止未身份驗證的用戶訪問頁面。<span>php artisan cashier:table users</span>我們的路線文件看起來像這樣:
<span>php artisan migrate</span>
> withCoupon:我們之前說過,我們有可能創建折扣優惠券,在我們的示例中,我們可以這樣做:
<span>use Laravel\Cashier\BillableInterface; </span><span>use Laravel\Cashier\BillableTrait; </span><span> </span><span>class User extends Eloquent implements BillableInterface { </span><span> </span><span> use BillableTrait; </span><span> protected $dates = ['trial_ends_at', 'subscription_ends_at'];</span>取消:您可以使用此方法輕鬆地取消訂閱,但是您必須檢查用戶是否ongraceperiod才能確保不會立即阻止它們:
<span>return [ </span><span> 'stripe' => [ </span><span> 'secret' => 'Your key' </span><span> ] </span><span>];</span>ONPLAN:查看用戶是否在某個計劃中。
- trial:查看用戶是否仍在試用期。
- > 取消:如果用戶已取消其訂閱。
- getlastfourcarddigits:獲取用戶卡的最後四位數。 >
- > getSubscriptionEndDate:獲取訂閱結束日期。 >
- getTrialendDate:獲取試用日期。
- >發票:獲取用戶發票的列表。
- findInvoice:通過ID查找發票。
- > downloadinvoice:通過ID生成可下載的發票
- 結論
- 在本教程中,我們探討了Laravel Abasier如何緩解計費過程並幫助您更輕鬆地管理客戶。 >我們當然沒有在這裡介紹所有內容,但是這是您挖掘源代碼以探索您還能做什麼的開始。如果您想查看此應用程序的一硝基託管演示,請參見此處。
關於Laravel Asasier會員資格的常見問題(常見問題解答) Laravel收銀員如何處理訂閱賬單?
laravel收銀員是一個有力的工具,可以簡化管理訂閱賬單的過程。它為Stripe和Braintree的訂閱計費服務提供了一種表現力,流利的界面。它處理您正在恐懼寫作的幾乎所有樣板訂閱計費代碼。 Laravel收銀員可以處理優惠券,交換訂閱,訂閱“數量”,取消寬限期,甚至生成發票PDFS。 'LL需要創建一個條紋帳戶並通過作曲家安裝收銀員包。您還需要將可計費特徵添加到您的模型定義中 - 此特徵提供了各種方法,以允許您執行常見的計費任務,例如創建訂閱,應用優惠券和更新卡信息。我將Laravel收銀員集成到我現有的Laravel項目中?
>將Laravel Cashier整合到您現有的Laravel項目中很簡單。首先,您需要通過作曲家安裝軟件包。然後,您需要通過運行遷移來準備數據庫,該遷移將幾列添加到您的用戶表中。之後,您需要設置API鍵,並將可計費性狀添加到模型中。最後,您可以使用可計費特徵提供的各種方法來管理您的訂閱。 Laravel Abasier處理失敗的付款方式如何? Laravel Abasier具有內置功能來處理失敗的付款。如果付款失敗,收銀員將自動重試付款。如果付款繼續失敗,則將取消訂閱。但是,您也可以通過聆聽相關事件並採取適當的措施來手動處理這些事件。
>我可以與其他付款網關一起使用Laravel Abasier嗎?
>
>當前,Laravel Cashier僅支持Stripe和Stripe腦溪。但是,如果您願意,您可以將收銀員擴展到與其他付款網關合作。這將需要對Laravel和付款網關的API進行充分的了解。 >我如何使用Laravel Abasier取消訂閱? >您可以使用用戶訂閱上的CANCAL取消訂閱來取消訂閱。當取消訂閱時,收銀員將自動將訂閱的結束日期設置為當前計費周期的結束。 >我可以提供Laravel Abasier的試用期嗎?支持試用期。您可以在創建訂閱時設置試用期。在試用期結束之前,將不會向用戶收費。
>如何使用Laravel收銀員生成發票?您可以通過在發票實例上調用下載方法來訪問發票的可下載PDF版本,它將將PDF寫入磁盤或將其流式傳輸到瀏覽器中。
我可以使用Laravel Cashier將優惠券應用於訂閱中嗎?是的,Laravel Cashier支持將優惠券應用於訂閱。您可以在創建新的訂閱時使用withCoupon方法來執行此操作。
>我如何處理Laravel Abasier的訂閱數量?
Laravel Aravel Cashier允許您處理訂閱數量,這可以有用用於“每個座位”類型訂閱。您可以在訂閱實例上使用updateQuantity方法更新訂閱的數量。>
以上是Laravel收銀員的會員資格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

長URL(通常用關鍵字和跟踪參數都混亂)可以阻止訪問者。 URL縮短腳本提供了解決方案,創建了簡潔的鏈接,非常適合社交媒體和其他平台。 這些腳本對於單個網站很有價值

在Facebook在2012年通過Facebook備受矚目的收購之後,Instagram採用了兩套API供第三方使用。這些是Instagram Graph API和Instagram Basic Display API。作為開發人員建立一個需要信息的應用程序

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

這是有關用Laravel後端構建React應用程序的系列的第二個也是最後一部分。在該系列的第一部分中,我們使用Laravel為基本的產品上市應用程序創建了一個RESTFUL API。在本教程中,我們將成為開發人員

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

2025年的PHP景觀調查調查了當前的PHP發展趨勢。 它探討了框架用法,部署方法和挑戰,旨在為開發人員和企業提供見解。 該調查預計現代PHP Versio的增長


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具