先日Stripe勉強会に参加しクレジットカードによる決済処理を容易に実装出来ることを知り、
実際にLaravelプロジェクトに決済処理を実装していきます。
決済には、テストモードと本番モードが存在しますが、今回はテストモードのみとなります。
事前準備
決済処理にはAPIキーが必要となります。
Stripeの公式でアカウントを作成するだけでテスト用のAPIキーが取得できます。
本番用APIキーの取得には、「本番環境利用の申請」を行う必要があります。
本番モードへの切り替えはAPIキーを入れ替えるだけで簡単に切り替えが可能となります。
Stripeをインストール
まずはインストールから行います。
公式のドキュメントに沿ってやっていきます。
公式ドキュメント:https://stripe.com/docs/development#php
今回はComposerを使用します。
[実行コマンド]
$composer require stripe/stripe-php
決済のテストを実施
テスト用の処理を実行して決済が実行されるかを確認します。
確認用コード(公式より抜粋)
<?php \Stripe\Stripe::setApiKey("[シークレットキー]"); $charge = \Stripe\Charge::create([ 'amount' => 999, 'currency' => 'usd', 'source' => 'tok_visa', 'receipt_email' => 'jenny.rosen@example.com', ]); ?>
※[シークレットキー]はStripe画面の「シークレットキー」の内容をコピーして貼り付けます。
実際に処理を実行してみましょう。
処理が実行されるとStripeの画面に決済の結果が追加されます。
[支払い確認画面]
amountで999を指定していたので$9.99の決済が追加されています。
currencyが「usd」となっているので$になっています。
日本円にする場合は「jpy」を指定します。
決済用ボタンを画面に表示してみよう
公式のドキュメントに沿ってボタンを追加してきます。
公式ドキュメント: https://stripe.com/docs/quickstart
<form action="/stripetest" method="POST"> @csrf <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="[テスト用APIキー]" {{-- テスト用APIキー --}} data-amount="1000" {{-- 金額 --}} data-name="WEBエンジニアによるキンスレと技術系ブログ" {{-- 実際に画面に表示されるタイトル --}} data-description="決済処理" {{-- サブタイトル --}} data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="ja" {{-- 言語設定:日本(ja) --}} data-currency="jpy" {{-- 日本円 --}} data-label="購入手続き" {{-- ボタンの表示名 --}} ></script> </form>
今回はFormのactionに「/stripetest」を設定しています。
画面で決済ボタンが押下されるとaction(*決済処理)が実行されます。
web.phpにrouteの設定を追加します。
*決済処理については公式ドキュメントを参照します。
https://stripe.com/docs/charges
<?php Route::post('/stripetest', function () { /** * 以下の処理は公式ドキュメント(動的な明細書表記)より抜粋 */ \Stripe\Stripe::setApiKey("[シークレットキー]"); $token = $_POST['stripeToken']; $charge = \Stripe\Charge::create([ 'amount' => 1000, 'currency' => 'jpy', 'description' => '決済処理', 'source' => $token, 'statement_descriptor' => 'Custom descriptor', ]); // 完了後画面遷移... dd("決済完了"); }); ?>
上記コードを追加すると、下記のボタンが表示されます。
ボタンを押下することでクレジットカード情報の入力画面が表示されます。
Stripeにはテスト用のクレジットカードがあるので、動作確認用に内容を入力していきます。
テスト用カード一覧は公式ドキュメントをチェック: https://stripe.com/docs/testing
今回は下記内容を入力します。
カード番号以外はエラーが出ない程度の自由入力で大丈夫みたいです。
- メールアドレス
aaaaa000@test.com - カード番号
4242424242424242 - 利用期限
01 / 20 - セキュリティコード
000
入力したら決済ボタンを押下してみましょう。
決済が完了したらStripeの画面でチェックしましょう。
1000円の明細が登録されていますね。
これで決済処理が実装完了です!!
まとめ
初めてStripeの決済を実装しましたが、30分ほどで実装できました・・・!
皆さんもこの記事を読んで実装ができましたでしょうか。。。?
実装の方法で質問などがあった場合はこの記事のコメントで受け付けています。
ありがとうございました。