>
鑰匙要點我們運行作曲家create-project laravel/laravel laravel_membership-首發,這將在我們的laravel_membership文件夾中創建一個laravel樣板項目。
我們將使用兩個表:
帖子表:
- int id- 字符串標題
- long_text內容>用戶表:
- 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:代表卡的到期月的兩個數字編號。
>名稱:持卡人名稱。
<span>php artisan cashier:table users</span>其他選項
>試驗期:正如我們之前說的,當您創建一個新計劃時,您可以選擇指定試用期供用戶測試您的產品,直到指定期限經過。
>優惠券:您可以通過儀表板菜單創建優惠券,您可以在其中指定固定金額或通過百分比,並提供其他一些有用的選項。
<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>
<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:查看用戶是否在某個計劃中。
>我可以與其他付款網關一起使用Laravel Abasier嗎?
我可以使用Laravel Cashier將優惠券應用於訂閱中嗎?是的,Laravel Cashier支持將優惠券應用於訂閱。您可以在創建新的訂閱時使用withCoupon方法來執行此操作。
以上是Laravel收銀員的會員資格的詳細內容。更多資訊請關注PHP中文網其他相關文章!