単発決済〜サブスクリプション決済、プラットフォーム作成までを全8回に分けて書いていきたいと思います!
今回は1回目の「【準備編】LaravelでのStripeの環境を作成する」になります。
全8回
1,【準備編】LaravelでのStripeの環境を作成する
2,【初級編】LaravelでStripeを使って単発決済を実装する
3,【中級編】LaravelでStripeを使ったSubscription決済をする
4,【準備編】プラットフォーム作成の為にコネクトを使おう
5,【上級編】LaravelでStripeを使ってプラットフォーム型の単発決済をする①
6,【上級編】LaravelでStripeを使ってプラットフォーム型の単発決済をする②※direct charge
7,【上級編】LaravelでStripeを使ってプラットフォーム型のSubscription決済をする
8,【番外編】Laravelでメール確認付きの安全な会員登録に変更しよう
今回は「1,【準備編】Stripeの環境を作成する」になります。
Stripeを利用する前段階のLaravel、必要なパッケージのインストールから設定までを行います!
Laravelをインストールしよう
Laravelのインストールを行います。
下記インストール先の環境になります。
作成環境
言語:PHP7.1.3以上
フレームワーク:Laravel5.6
データベース:MySql
ssl設定済みの環境
Stripe組み込みを簡単にしてくれるなパッケージが充実しているLaravelフレームワークを使用します!
Laravel5.6の動作バージョンの関係でPHP7.1.3以上を使用します。
また、Stripeの動作環境の為にssl設定済(https化)の環境で作成します。
Laravelの初期設定を行おう
ますLaravelをcomposerを使ってインストールします。
コマンドラインを使ってlaravelインストール環境に入ります。
composerはパッケージインストールを簡易にしてくれるものになります。
他のパッケージインストールでも使用しますので必ず入れておきましょう。
brewコマンドが使える場合は下記でcomposerがインストールできます。
brew install homebrew/php/composer
composerが使用できるようになったら下記コマンドを実行してください。
プロジェクト名のディレクトリが作成され、その中にLaravelファイル郡がインストールされます。
composer create-project "laravel/laravel=5.6.*” プロジェクト名
インストールには少し時間がかかります。
その間にデータベースを作成しておきましょう!
インストール完了後にこんな表示が出る場合があります。
cd プロジェクト名
でプロジェクトディレクトリに移動し、
下記のコマンドを行ってください。
php artisan package:discover
次に.envファイルの設定を行います。
.envファイルは不可視ファイルになっているので不可視ファイルを表示する設定にしておいてください。
「.env.example」という不可視ファイルがあります。
ファイル名の「.example」を削除し.envファイルにした後、ファイルを開いてください。
下記、部分の「作成したデータベース名」、「データベースのユーザー名」、「データベースのパスワード」を
お使いの環境で作成したものに書き換えてください。
下記変えが終わりましたらコマンドラインに戻り下記コマンドを実行してください。
php artisan key:generate
次にLaravelの設定を行っていきます。
インストールが完了したLaravelのファイル郡から
「config/app.php」を開いてください。
・68行目あたりのtimezoneを
'timezone' => 'UTC',
から
'timezone' => ‘Asia/tokyo’,
・81行目のlocaleを
'locale' => 'en',
から
'locale' => ‘ja’,
次に「config/database.php」を開いてください。
53行目辺りのstrictを
'strict' => true,
から
'strict' => false,
に変更してください。
下記へアクセスして表示を確認しましょう。
インストールしたドメイン/インストールディレクトリ名/public
この画面が表示されたら成功です。
このままでも問題ありませんが「public」がドメインに入ってしまっているので変更しましょう。
publicディレクトリに入っている下記ファイルをインストールしたディレクトリ直下に移動します。
.htaccess
favicon.ico
index.php
robots.txt
web.config
次に移動させてファイルの中のindex.phpを開きます。
下記部分を書き換えます。
require __DIR__.'/../vendor/autoload.php';
を
require __DIR__.'/./vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
を
$app = require_once __DIR__.'/./bootstrap/app.php';
インストールしたドメイン/インストールディレクトリ名
以上でpublicを外したURLがトップディレクトリになります。
管理画面を作ろう
Laravelには簡単にログイン画面が作れるパッケージが用意されています。
Stripeのsubscription型の決済設定をする場合に必要になりますので予めインストールしておきましょう!
コマンドラインで下記を行ってください。
php artisan make:auth
Laravelにログインに必要がファイルが一式設置されます。
次にデータベースの設定です。
コマンドラインより下記コマンドを実行してください。
php artisan migrate
こちらのコマンドで下記3つのテーブルが作成されます。
migration、users、password_resets
トップページをブラウザで確認すると右上に
「Login」、「register」というリンクが作成されています。
リンク先を確認するとレイアウトが崩れてしまっています。
これは、トップディレクトリからpublicを外した事によりcssの読み込みが行えなくなっているのが原因です。
resourses/views/layouts/app.blade.php
を開き14行目辺りの
asset('css/app.css')
を
asset(‘public/css/app.css')
に
77行目辺りの
asset('js/app.js')
を
asset(‘public/js/app.js')
に書き換えてください。
再度画面を確認するとレイアウト崩れが直っているはずです。
「register」からは会員登録「Login」からが会員登録した方専用のページに遷移可能です。
簡単にログインシステムが構築できるのがLaravelのメリットの一つではありますが今のままではいささかログインセキュリティに不安があります。
「8,【番外編】メール確認付きの安全な会員登録に変更しよう」にてログインセキリュティの強化についてご説明いたしますが一旦、このままメインのStripeの設定に進みたいと思います。
パッケージ Larevel cashieをインストールしよう
Stripeを簡易に扱う為のLaravel専用のパッケージをインストールします。
コマンドラインより下記を実行してください。
composer require "laravel/cashier"
少し時間がかかりますがパッケージのインストールが開始します。
次に
database/migrations/create_users_tableがついたファイルを開き
下記部分を書き換えます。
public function up()
{
Schema::table('users', function ($table) {
$table->string('stripe_id')->nullable();
$table->string('card_brand')->nullable();
$table->string('card_last_four')->nullable();
$table->timestamp('trial_ends_at')->nullable();
});
Schema::create('subscriptions', function ($table) {
$table->increments('id');
$table->unsignedInteger('user_id');
$table->string('name');
$table->string('stripe_id');
$table->string('stripe_plan');
$table->integer('quantity');
$table->timestamp('trial_ends_at')->nullable();
$table->timestamp('ends_at')->nullable();
$table->timestamps();
});
}
書き換えたら再度下記コマンドを実行してください。
php artisan migrate
これでデータベースに書き換えが完了です。
次に
app/User.phpを開きます。
内容を下記に変更します。
Stripeのキーを取得、設定しよう
いよいよStripeの設定を行います。
あらかじめStripeへのユーザー登録は済ませておいてください。
https://stripe.com/jp
ダッシュボードに入ります。
今回、仮のカード情報でテストの決済が行えるテストモードで行いますので「テストデータの表示」をチェックしてください。
テストモードのStripeユーザー固有の情報を取得します。
開発者→APIキー
をクリックしてください。
頭にpkがついた「公開可能」とskがついた「シークレットキー」が記載されています。
ソースの「.env」ファイルを開きます。
一番下に下記を追加します。
公開可能とシークレットキーは先程、Stripeより取得したものになります。
STRIPE_KEY=公開可能
STRIPE_SECRET=シークレットキー
以上で準備は完了になります。
次回より、実践的な決済のシステム構築に入ります。