キーテイクアウト
注:クラスマップパッケージを更新するには、Composer Dump-Autoloadを実行する必要があります。 移行を使用してデータベースを作成する
Laravelの移行が初めての場合は、必ずドキュメントを確認してください。ユーザーテーブル:
- int id
- varchar(60)電子メール- varchar(60)パスワード
そして、スキーマ::このように見える必要なコードでコールバック関数引数を作成します
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サーバー上のStripe_IDユーザーID。
- stripe_planストライプサブスクリプションプラン。
- last_fourクレジットカード最後の4桁。
- 試用期間を指定した場合、trial_ends_at終了日は保存されます。
- subscription_ends_atサブスクリプションの終了日。
ここで、データベースをいくつかのダミーデータでシードして開始します。 githubの最終結果を確認してください。
支払いに対処することは首の痛みになる可能性があり、ストライプはそれに役立ち、カード番号などではなくトークンを使用します。 。
注:あなたの国でストライプがサポートされているかどうかを確認してください。しかし、そうでない場合でもテストに使用できます。
開始するには、最初にアカウントを取得する必要があります。 Stripeにはサブスクリプションの月額料金はありません。支払いを受けたときにのみ支払います。
今、アカウントを取得した後、アプリケーションの計画を作成する必要があります(毎月、毎年、銀、金…)。
すべてのフィールドは自明であるため、40ドルの費用がかかるゴールドメンバーシップと10ドルの基本メンバーシップを作成しましょう。彼らは毎月請求されます。
ユーザーテーブルに必要な列をすでに追加しましたが、Laravel Cashierにユーザークラスを請求クラスとして使用することを知らせる必要があります。
注:Billabletraitを使用しており、特性にはPHP 5.4以降が必要です。
<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>
billabletraitを使用することにより、ユーザーにアクセスできます:: setStripeKey(key)メソッドはコードのどこでも呼び出すことができますが、希望する方法はconfigディレクトリの下にservices.phpファイルを作成し、次のような配列を返すことです。これ:
GetStripekeyがキーをロードしようとすると、Stripekeyというプロパティが探しられます。見つからない場合は、サービスファイルを自動的にロードします。
ページを作成します
物事をシンプルに保つために、数ページしか作成しません:
- サインアップ:ユーザーがメンバーシッププラン(ベーシック、ゴールド)でサインアップできる場所。<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>
サインアップページには、計画するユーザーを割り当てるために使用されるサブスクリプション計画フィールドがあります。
また、クレジットカード番号、有効期限、CVCもあります。
返品値は成功した場合のトークンです。そうしないと、ユーザーに表示できるエラーメッセージが表示されます。
フロントエンドコードがどのように見えるかを見てみましょう:
最初にJavaScript APIファイルを含め、次に、ストライプダッシュボードの設定からつかんだ公開キーを設定しました。 次に、コールバック関数を送信フォームに添付します(フォームIDがイベントハンドラーで使用されているものと一致していることを確認してください)。
<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>
必須値:
番号:セパレーターのない文字列としてのカード番号。
exp_month:カードの有効期限を表す2桁の数字。
address_line1:請求アドレスライン1.
<span>php artisan cashier:table users</span>
ここで、SignupControllerに移動して、これをどのように処理するかを確認しましょう。
<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または文字列であり、Strapegatewayを返すことができます。
作成メソッドは、トークンをパラメーターとして受け入れます。 StripeTokenという名前で新しい非表示の入力値を渡します。
アップグレードページ:
アップグレードページは、次のようなアップグレードコントローラーに送信されます:
ユーザーが最初にログインしているかどうかを確認し、次に新しいプランで新しいサブスクリプションを作成し、スワップ方法を呼び出します。同じように。
<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は、Post IS_PREMIUMのかどうかを確認します。もしそうなら、ユーザーが投稿を見ることができるゴールドメンバーであるかどうかをテストします。
ルートファイルは次のようになります:
<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>
<span>return [ </span><span> 'stripe' => [ </span><span> 'secret' => 'Your key' </span><span> ] </span><span>];</span>
laravelキャッシャーは、請求書PDFを自動的に生成できます。請求書インスタンスのダウンロードメソッドを呼び出すことにより、ダウンロード可能なPDFバージョンの請求書にアクセスできます。これにより、PDFをディスクに書き込むか、ブラウザにストリーミングします。
Laravel Cashierでサブスクリプション量を処理するにはどうすればよいですか? 「シートごと」タイプのサブスクリプション用。サブスクリプションインスタンスのUpdateQuantityメソッドを使用して、サブスクリプションの数量を更新できます。
以上がLaravel Cashierとのメンバーシップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。