3Dセキュアの認証画面が表示される条件について
本番環境とテスト環境が同じ設定である場合、特に環境側の設定を変更する必要はありません。しかし、本番環境では認証画面が表示されず、テスト環境では認証画面が表示されることがあります。
本番環境における挙動
現在、Stripeでは3Dセキュアの適用が義務化されていないため、本番環境では「認証が必要なカード」のみ3Dセキュアの認証画面が表示されます。また、プログラムで3Dセキュアの認証を強制することも可能ですが、「Paid Membership Pro」ではそのような設定は行われていないと考えられます。
テスト環境における挙動
テスト環境で認証画面が表示されるのは、テスト用のクレジットカードが強制的に3Dセキュアを適用する仕様になっているためです。
2025年4月以降の変更点
2025年4月以降、すべてのカード決済において3Dセキュアが義務化される予定です。ただし、一部のカードでは「フリクションレス認証(認証画面を表示せずに自動認証)」が適用されるため、認証画面が表示されないケースもあります。その際は、取引管理画面にて認証結果を確認することが可能です。
本番環境での3Dセキュア強制適用について
本番環境でもプログラムを調整することで3Dセキュアを強制的に適用することは可能です。
その場合は、
$stripe->paymentIntents->create([
'amount' => 1000,
'currency' => 'jpy',
// 追加部分 ここから
'payment_method_options' => ['card' => ['request_three_d_secure' => 'challenge']],
]);
challengeに設定することで今からでも実行されるようになります