SCAや3Dセキュアとは?LaravelへSTRIPE導入時に知っておきたい金融知識

LaravelとStripe API連携

SCAとは、Strong Customer Authentication のことで、強力な顧客認証と翻訳できます。

PSD2というEU圏でのオンライン決済認証を厳格化する法令の中で、義務付けられたもの。

3Dセキュアとは、SCAに対応するための具体的な方法となります。

SCAと3Dセキュアについて、またSTRIPEは、これらにどう対応しているのか。

LaravelにStripeを入れる際に知っておいたほうが良いポイントをまとめてお伝えしますね。

SCAや3Dセキュアとは? LaravelへSTRIPE導入時に知っておきたい金融知識

まずはSCAについて、もう少し背景を説明します。

SCA施行の現在の状況

SCAは、2019年9月14日にEEA(欧州経済領域)で義務付けられました。

2020年12月31日までに施行されることになっていますが、例外もあります。

また、既にスタートしている銀行もあります。

じゅんこ
じゅんこ

対応は大変そう・・・

SCAのために3Dセキュアが必要

SCAを行うためには、クレジットカードを使う際、次の3つの認証方法の中の2つの方法で、カードの名義人あると証明せねばなりません。

  • 顧客が知っていること(パスワード認証など)
  • 顧客が持っているもの(電話番号など)
  • 顧客自身にあるもの(指紋認証など)
じゅんこ
じゅんこ

パスワードだけの認証は、もうムリってことですね。

ルールに合わない場合、銀行が支払いを受け付けないことになります。

上記に対応するために、3Dセキュアというテクノロジーが使用されます。

SCAという言葉はあまり聞きませんが、「3Dセキュア」は、聞いたことがありませんか?

実は日本でも、3Dセキュアによるオンライン決済のための認証強化が進められているのです。

3Dセキュアの2つのバージョン

3Dセキュアには、3DS1と3DS2があります。

簡単に言うと、3DS1はユーザー自身が追加の質問に答えねばならず、ユーザーに負担がかかる認証方法。

追加質問はメンドウなので、ユーザーの離脱率(かご落ち)が高くなるという問題があります。

そこで、新たに3DS2ができました。

3DS2は通常はユーザーに見えない形で認証が実施され、リスクが高い場合にのみ、追加の確認がユーザーに要求されます。

Stripeの3Dセキュアへの対応

Stripeは最新版の3DS2に対応しています。

それでは具体的に、どのような仕組みになっているのか。

Stripeの決済の仕組みを2ステップで簡単に解説します。

①Payment Intentsの作成

まずユーザーが決済フォームを開いた時 、Stripe API によってPayment Intents が作成されます。

このなかにclient_secretという記号が含まれます。

②支払い時にPayment Intentsを送信

その後、ユーザーがクレジットカード情報を入力し、支払いを行います。

この時点で、先ほど作成した Payment Intents内のclient_secretをStripe側に受け渡します。

ユーザーがコードを打ち直した場合にも、同じclient_secretが送られます。

これによって、Stripeは同じユーザーであると判断できます。

じゅんこ
じゅんこ

不正な支払いを防止できるってことですね。

STRIPEのSCA・3Dセキュア対応API

Stripeは3Dセキュアに対応するため、新しくAPIを開発しました。

これに伴い、既存の古いAPIからの移行を推奨しています。

STRIPEのサイトには次のように書かれています。

StripeはSCAの要件を満たせるよう、事前に構築されたカスタマイズ可能なソリューションをご提供しています。

これまでのSCA非対応のAPIを使っていると、SCA施行を開始した銀行から、支払い拒否される可能性が大いにあります。

(原文)
Stripe provides prebuilt and customizable solutions to help you meet SCA requirements. Integrations that are not SCA-ready, like ones using the Charges API, will see high rates of declines as banks begin enforcing SCA.

*引用元:Stripe Docs

LaravelはCashier10からStripeの新API対応

Laravel側でも、この新しいStripe APIに対応をしています。

Laravelでは、Cashierパッケージを使うと、Stripeと便利に連携できるようになっています。

Cashierは2019年8月、新しいSTRIPE APIに対応するため、バージョン10にアップグレードしました。

このときのLaravelのツイートがこちら。

Cashier10のリリースをお知らせします。

これによって、推奨Stripe APIと、ヨーロッパのSCA規制をサポートできるようになりました。

発者の皆さんのご尽力に感謝します!

LaravelとStripe連携で、古いコードが使えなくなった

Laravelも、新しいStripeAPIに対応していて安心。

なのですが、ここで、ひとつ問題がおきます。

Cashierをアップグレードすると、以前のコードのままでは使えない事態が発生します。

また、以前の書き方をそのままとりいれると動かない、といったことも。

じゅんこ
じゅんこ

わたしも経験しました

SCA対応のStripe APIについては、こちらの文書にリンクがあります。(英語です)

本ブログでも、2020年11月現在、最新版に対応した方法を紹介しています。

今後の変更も要チェック

クレジットカード利用時の認証が厳しくなったことで、決済システムも変化しています。

日本はSCA対象国ではないですが、3Dセキュア化は進んでいます。

今後も、これまでのシステムが使えなくなったり、ルールにあわなくなる、ということが起こりえます。

システムを作っている側は、がんばって対応していかねばなりません。

メンドウですが、必要な変化はチェックしていきましょう^^;

じゅんこ
じゅんこ

重要な最新動向だけは追っておきたいですね。

本ブログでも、また取り上げていきます。

LaravelとStripe API連携

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる


Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
セミナーで、StripeやChatGPT連携、デバックなど実践スキルを分かりやすく学べます。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました