LaravelとSTRIPE決済の連携手順を16個の記事で詳しく解説

Laravel上の決済機能

LaravelのプロジェクトをStripeと連携させると、最新のオンライン決済機能を利用できます。

「Laravelにサブスクリプション申込機能をつけたい」

「キャンセルや払い戻しなどが手軽にできる決済機能を使いたい」

「サブスク申込かどうかでユーザーへの表示を変えたい」

こんなことをご希望の方にぴったりです。

ただ正直、LaravelとStripeの連携設定は、メンドウな部分もあります・・・

じゅんこ
じゅんこ

トラップに泣かされました。

このブログでは、私自身の経験をもとに、連携の方法を解説しています。

内容を紹介していくので、あなたの悩みや関心に合うものをご一読ください。

(記事は随時更新・追加中です。)

LaravelとSTRIPE決済システムの連携方法

難易度別に★をつけています。

一番難しいものは、★を3個つけています。

じゅんこ
じゅんこ

難しい、というより、時間がかかるといったほうが良いかも。

お時間があるときにお試しください。

Laravelにサブスクリプション申込機能をつける ★★★

まずはいちから連携する方法を解説します。

こちらの記事では、10個のステップでLaravelとStripeを連携させ、サブスクリプション申込機能を付ける方法を解説しています。

「10ステップって多すぎ」と思われるかもですが^^;

基本の連携ができれば色々なワザが使えるので、最初の手間も取り返せます。

30分でLaravelとSTRIPE連携を試す方法 ★☆☆

「10ステップなんてメンドウ」

「とりあえずStripeがどんなものか知りたい」

という場合は、こちらの記事の手順で簡単にStripeとの連携を見れます。

こみいったことはできませんが、雰囲気を見たい方は、まずはこちらをお試しください。

Webhookを設定してイベントごとに自動処理を設定 ★★☆

Webhookを設定すれば、任意のタイミングで、設定したイベントを実行できます。

たとえばユーザーが支払い方法やプランを変更したときに、管理者に自動で通知がいくように設定することも可能。

Webhookを実行するにはHTTPS通信が必要になるため、テスト用にローカル環境で使うには、前準備が必要です。

Windows環境で、ローカル上でWebhookを使えるようになる手順を、下記の記事で解説しています。

サブスクキャンセル処理を入れる方法★★★

サブスクのキャンセル処理を入れる方法はこちら。

Stripeのカスタマーポータルを使う方法、Laravel上に埋め込む方法、Webhookを利用する方法の3つがあります。

キャンセル処理を入れる際にお役立てください。

手順は面倒なのですが他の処理でも応用が利く方法なので、知っておくと便利です!

おまけ① Stripe CliをWindowsに設定する方法

上記では、NGLOKを使ってWebhookのテストを行う方法を解説しています。

ただStripeのWebhookをテストする際に、Stripe Cliを使う方法があります。

Windows環境で、Stripe Cliをインストールする方法はこちらにまとめました。

じゅんこ
じゅんこ

わたしはNGLOKを使っており、このほうが便利だと感じていますが。

おまけ② Webhookのエンドポイント5選

なおStripeのWebhookは100個以上あります。

こんなにいっぱいの中から、どれを選べばよいのか、判断に悩みますよね。

契約時に使われるエンドポイントの意味と、おすすめのエンドポイント5点を表にしました。

エンドポイント設定に悩んだら、参考にしてください。

サブスク加入の有無で表示や動作を変更する ★★☆

既存のお客様と、まだ未加入のお客様で、サイトの表示や動作を変えたい時もあります。

Laravelのミドルウェアを使えば、サブスクに加入しているかどうかで、表示や動作を変更できます。

詳しい設定方法はこちらをどうぞ。

Stripeクーポンを設定して割引をする ★★☆

Stripeはパーセンテージごとや、初回時のみ適用可能、期限付きのものなど、様々なな条件のクーポンを手軽に作成できます。

いざ作成したクーポンを、ユーザーにどのように使ってもらうか。

Laravelで申込フォームを作成する際のクーポンの組み入れ方は、下記記事で解説しています。

LaravelからStripeのカスタマーポータルへ誘導 ★☆☆

Stripeは、ユーザーごとのカスタマーポータルサイトが利用できます。

ポータルサイトを通じて、ユーザーは過去の支払い履歴も確認できますし、支払いに利用するクレジットカードの変更も可能。

設定によってユーザー自身でプラン変更もできるので、管理者側の手間を減らせます。

LaravelのサイトからStripeカスタマーポータルへのリンクの貼り方は、こちらの記事をご覧ください。

LaravelとStripeの連携をテスト時に使えるデータ ★☆☆

LaravelとStripeの連携をテストする際に使えるテスト用クレジットカード番号をまとめました。

認証エラーが起こる番号などもあるので、テストにご活用ください。

エラー時のHTTPステータスコードの意味もまとめてあります。

エラーの原因がカード側にあるのか、サーバーのコードにあるのかも、HTTPステータスコードの番号から判断できます。

エラー対策編

LaravelとStripe連携時のエラー対策はこちら。

payment methodがないと言われる場合 ★★★

LaravelがStripeと連携する際、Cashierパッケージを使います。

このパッケージはバージョン10の時から、連携方法が変わったようです。

以前の方法をそのまま用いると「payment methodがない」と言われちゃいます。

どのように解決するか、こちらをご覧ください。

LaravelでStripeのAPIキーが読み込めない時の対策 ★★☆

LaravelとStripeを連携させるには、StripeのAPIキーをLaravelの.envファイルに入れる必要があります。

そのあと、configで.envの情報を読み込みます。

コントローラーやビューでは、configヘルパ関数を使って、APIキーを呼び出します。

ただ、この連携がうまくいかず「APIキーが無効」となってしまうことも。

下記にAPIキーが読めない場合の3つの対策をまとめたので、エラー時には、症例に合った対策をお読みください。

 Stripe PaymentMethod instanceエラー ★☆☆

なお、Stripeは既存のJavascriptファイルと競合してエラーになることもあります。

Could not determine which URL to request: Stripe PaymentMethod instance has invalid ID

こんなエラーがでたら、app.js ファイルへのリンクタグの場所を変えてみてください。

詳細はこちらで解説しています。

Stripeの一般的な知識について

Laravelとの連携はおいておいて、そもそもStripeってどんなものか?

Stripeそのものに関する記事をこちらにまとめました。

オンライン認証の厳格化とStripeの対応

現在、オンライン決済が増えるにつれて、詐欺事件も増えています。

そのため、ヨーロッパではSCAという規制によって、認証方法が厳格化されています。

日本でも3Dセキュアへの対応が求められています。

Stripeのシステムは、こういった規制や変化にどう対応しているのか、こちらの記事で解説しています。

じゅんこ
じゅんこ

個人的には、このあたりは知っておくべき重要ポイントかと思います。

PaypalとStripeの比較

そもそも論ですが、決済システムとしてStripeは最適なのか。

オンライン決済の王者、Paypalと何が違うのか。

両者の比較を、手数料・シェア・参考資料という3つの点でまとめてみました。

Stripeの本番アカウント作成時の質問への回答方法

Stripeは本番用アカウントを作成する際、「改正割販法に関連する質問」に答えねばなりません。

普通は「なにそれ?」って思いますよね^^;

質問の意味と答え方を、こちらに紹介しました。

さいごに

以上、ざっと16個の記事をご紹介しました。

記事は、また更新したり増やしていきます。

ぜひ、あなたのLaravelサイトに最適な決済システムを搭載するのにお役立てください。

 

★2021年5月9日追記

「no attached payment エラー対策」と、「決済エラーのハンドリング方法」を追加したので、記事の数が18個になりました。

あわせて参考にしてください。

コメント

タイトルとURLをコピーしました