Stripe Checkoutにてクレジットカード決済の際に3Dセキュア対応にする方法
2025/06/21
先日Stripe Checkoutを用いたクレジットカード決済機能についてメモしたが、3Dセキュアに対応しているのかどうか気になった。調べたところ先日の実装方法では3Dセキュア対応していなかったため、対応する方法と実際に3Dセキュアが施行されたかの確認方法をメモ。
対応方法
基本的には先日メモした内容と同様だが、checkout.phpのみ以下に変更すること。
checkout.php(決済処理)
<?php
require_once './vendor/autoload.php';
require_once 'secrets.php';
\Stripe\Stripe::setApiKey($stripeSecretKey);
header('Content-Type: application/json');
$domain = 'https://test.com/checkout';
$checkout_session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'],
'payment_method_options' => ['card' => ['request_three_d_secure' => 'any']],
'line_items' => [[
'price_data' => [
'currency' => 'JPY',
'product_data' => [
'name' => '商品名',
],
'unit_amount' => 200,
],
'quantity' => 1,
]],
'mode' => 'payment',
'success_url' => $domain . '/success.php?session_id={CHECKOUT_SESSION_ID}',
'cancel_url' => $domain . '/error.php?session_id={CHECKOUT_SESSION_ID}',
]);
header("HTTP/1.1 303 See Other");
header("Location: " . $checkout_session->url);
解説等
12行目の以下部分が3Dセキュア対応のために必要となる。
'payment_method_options' => ['card' => ['request_three_d_secure' => 'any']],
確認方法
ダッシュボード→取引に進み、上記3Dセキュア対応のソースコードで決済した取引詳細を開くと以下のような表示になる筈。
3Dセキュアは施工されているもののサンドボックス状態のためかテストカードで決済したためか、成功はしていない模様。この辺りは本番実装時に確認する必要あり。
関連記事
-
-
PHPとPAY.JPを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法
先日PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する ...
-
-
PHPとStripeを使ってサイト内でクレジットカード決済処理の実装方法
PHPとStripeの組み合わせでWebサービスにクレジットカード決済処理を導入 ...
-
-
【2025年版】PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法
5年ほど前にPHPとStripeを用いたクレカ決済機能をテスト実装したが最近試し ...
-
-
PHPとStripeで定額課金(サブスクリプション)実装する方法
PHPとStripeで1ヶ月ごとに500円でサイト内のサービスを使い放題、といっ ...
-
-
Stripeでキャンセル処理を行う際に「$config must be a string ~」エラーが出る場合の対応方法
Stripeにて先日メモした内容でキャンセル(返金)処理をしようとしたところ1件 ...
