Laravel收銀員的會員資格
>
鑰匙要點- 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>
>現在,我們必須設置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>
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>
<span>return [ </span><span> 'stripe' => [ </span><span> 'secret' => 'Your key' </span><span> ] </span><span>];</span>
- 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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。
