おにちゃん塾の商品一覧

【初級編】Laravelにstripe決済システムを導入する方法

【初級編】Laravelにstripe決済システムを導入する方法
URLをコピーする
URLをコピーしました!
想定読者

Laravelにstripe決済システムを導入したいな、、、、

上記の方に向けて、記事を執筆しています。

おにちゃん

執筆者:LaravelでWebアプリ開発を行なっている僕が詳しく解説します。

Laravelにstripe決済システムを導入すると単発決済・サブスクリプション決済を簡単に導入することができます。

本記事の目的

Laravel×stripeに慣れることを目的としています。

最初から、サブスク機能などを実装しようとすると必ず挫折します。

そこで、本記事はLaravel×stripeの基礎を学ぶことを軸としております。

おにちゃん塾で人気の記事

目次

そもそもstripeとは何なのか

stripeとは、簡単に言えば、決済システム代理サービスを提供する米国の会社です。

おにちゃん

自分自身で決済システムを導入しようとすると、
セキュリティ対策を強固なものにしなければいけません。

正直、難しいです。

なぜなら、ハッカー達の進化は恐ろしいほど早いからです。

そのため、決済システムを導入する際は、安心できるシステムを使うのが一般化されてきています。

大手決済システム

おにちゃん

paypalも良いけど、月100万円以上取引する方向けなので、個人やスモールビジネスの場合は、stripeやsquareがおすすめです。


Laravelにstripeの決済システムを導入する

Laravelにstripe決済システムを導入する際は下記の手順が必要です。

Laravelにstripeの決済システムを導入する
  1. Laravelをインストールする
  2. Laravel Cashierを導入する
  3. stripeのアカウントを作成する
  4. .envファイルにstripeで取得したキーを貼り付ける
  5. フロント側に決済を導入する
  6. ルーティングを行う
  7. コントローラーを設定する
おにちゃん

たったこれだけで、Laravel×stripeについて学ぶことができます。


手順1:Laravelをインストールする

まずは、Laravelの作業フォルダを作成していきましょう。

今回はフォルダ名を「stripe」とします。

composer create-project –prefer-dist laravel/laravel stripe “8.*”
cd stripe
code .

Laravelver 8.0以上でないとstripeを導入できないみたいです。
僕みたいにver6.0を使う方はバージョンアップの必要性がありそうです。

インストールを終えた方は、データベース接続を行なっていきましょう。

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=Stripe
DB_USERNAME=root
DB_PASSWORD=root

php artisan migrateして、データベース接続できた方は次へと移りましょう。

Laravelのインストールで躓いている方は「【Mac編】PHP/Laravelの開発環境構築【ローカル環境を整える】」を参考にインストールしてみてください。


手順2:Laravel Cashierを導入する

Laravelにstripeを導入する手順2はLaravel Cashierを導入することです。

composer require laravel/cashier

上記のコマンドを入力すると、composer.jsonに下記が追加されているはずです。

“laravel/cashier”: “^13.5”,


手順3:stripeのアカウントを作成する

stripeのアカウント開設は長くなるので、読者に任せます。

stripeを開設していくと、公開可能キーとシークレットキーが表示されるので、保存しておきましょう。

stripeのキー

今回は、テストモードでの実装になるので、必ず上記の画面のようにテストモードにしましょう。その後、開発者ボタンをクリックし、APIキーを取得しましょう。


手順4:.envファイルにstiripeで取得したキーを貼り付ける

Laravelにstripeを導入する手順4は.envファイルにstiripeで取得したキーを貼り付けることです。

STRIPE_KEY=公開可能キー
STRIPE_SECRET=シークレットキー


Laravel8のauth機能を導入する

auth機能は今回のstripeとは関係ないのですが、目標画面のように構築するために準備しましょう。

composer require laravel/ui
php artisan ui bootstrap
npm install && npm run dev

その後、app.blade.phpにBootstrapコードを追加します。

<link rel=”stylesheet” href=”https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css” integrity=”sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO” crossorigin=”anonymous”>

Laravel8ではbootstrapがデフォルトではないので、bootstrapを使いたい方はこのコードをheadタグ内に入れましょう。


手順5:Laravelのbladeにstripe決済画面を準備する

home.blade.phpに下記のコードを追加しましょう。

<form action="{{ url('charge') }}" method="POST">
 {{ csrf_field() }}
 <script src="https://checkout.stripe.com/checkout.js" 
 class="stripe-button" 
 data-key="{{ env('STRIPE_KEY') }}" 
 data-amount="500" 
 data-name="Stripe決済デモサイト" 
 data-label="決済" 
 data-description="デモ決済練習" 
 data-image="https://stripe.com/img/documentation/checkout/marketplace.png" 
 data-locale="auto" 
 data-currency="JPY">
 </script>
 </form>
Laravel×stripeの画面
おにちゃん

ちょっとださいボタンですが、簡単にstripeボタンを追加できたはずです。

カスタマイズするときに、ボタンのデザインなどは変更できるので、ここでは気にせず先に進みましょう。


手順6:stripeのデータをルーティングでコントローラーに受け渡す

home.blade.phpでpost送信を行いましたので、web.phpで処理しましょう。

Route::post('/charge', 'App\Http\Controllers\StripeController@charge');

簡単な解説:/chargeというPOST送信があったときに、StripeControlleのchargeメソッドを行ってください。


手順7:Laravelの標準機能:コントローラーを構築する

最後に、Stirpe機能の軸となるコントローラーを作成していきましょう。

php artisan make:controller StripeController

use Stripe\Stripe;
use Stripe\Charge;
//追記忘れがないように↑

public function charge(Request $request)
    {
        Stripe::setApiKey(env('STRIPE_SECRET'));//シークレットキー
 
        $charge = Charge::create(array(
             'amount' => 500,
             'currency' => 'jpy',
             'source'=> request()->stripeToken,
         ));
       return back();
    }
おにちゃん

たったこれだけの処理で、bladeからの処理を行うことができます。


Laravelでstripe決済が機能するのか確認テスト

ここまでLaravelにstripeを実装する方法を実践してきた方は、一度処理テストを行ってみてください。

  1. メールアドレス:好きなもの
  2. カード番号:4242 4242 4242 4242
  3. MM/YY:今より後の年月
  4. CVC:好きな数字
おにちゃん

入力できた方は、500円を支払うをクリックしましょう。

支払いの確認は、stripeの管理画面から確認することができます。


まとめ:Laravelにはstripeがおすすめ

ここまでで「【初級編】Laravelにstripe決済システムを導入する方法」の解説は以上です。

もっと、詳しくLaravelについて学びたい方は「PHP/Laravelコース」で学んでみてください。

おにちゃん

本記事は以上です。
最後までご覧下さりありがとうございました。


【初級編】Laravelにstripe決済システムを導入する方法

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる