首頁 >後端開發 >php教程 >Laravel收銀員的會員資格

Laravel收銀員的會員資格

William Shakespeare
William Shakespeare原創
2025-02-21 11:34:11303瀏覽

Laravel收銀員的會員資格

在本教程中,我們將看到使用Laravel Araver套餐創建基本付費會員網站的容易。您可以在此處查看該應用程序的演示,然後在此處下載源代碼。

>

鑰匙要點

    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軟件包。

  • >使用遷移創建數據庫
如果您不熟悉Laravel遷移,請務必檢查文檔。

我們將使用兩個表:

帖子表:

- int id

- 字符串標題

- long_text內容

- bool is_premium

>用戶表:
- int id

- Varchar(60)電子郵件

- 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沒有訂閱的月費,只有在獲得付款時付款。

>

現在,在獲得帳戶後,您需要為您的申請創建計劃(每月,每年,銀,金…)。

>

Laravel收銀員的會員資格

>每個領域都是自我解釋的,因此讓我們創建一個金色會員資格,價格為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鍵中獲取並複制測試秘密密鑰。

>

Laravel收銀員的會員資格>通過使用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>

>註冊頁:

Laravel收銀員的會員資格

>註冊頁面具有用於分配用戶計劃的訂閱計劃字段。
我們還有一個信用卡號,到期日期,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:代表卡的到期年度的兩個或四位數編號。
  • >可選值:
> CVC:卡安全碼作為字符串,CVC編號是可選的,但建議有助於防止欺詐。 >

>名稱:持卡人名稱。

    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的新隱藏輸入值。

>升級頁面:

Laravel收銀員的會員資格

升級頁面將提交給看起來像這樣的升級器:

>
<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>

>我們檢查用戶是否首先登錄,然後我們使用新計劃創建一個新訂閱,我們稱之為交換方法,顯然在一個真實的項目中,您將有一些費用調整和降級選項,但它應該有效同樣的方式。

帖子頁面:

Laravel收銀員的會員資格

> 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn