2025年3月末からECサイトへの本人認証(EMV 3-Dセキュア)の導入が義務化されることになりました。
クレジットカードで決済可能なシステムの場合、決済代行会社のSDKなど用いて修正が必要になりますね。
3Dセキュアに関してはご存じだと思いますが、決済時にカード会社のサイトに飛んで、本人確認ができたら再度ECサイト側に戻ってきて決済する、という仕組みです。
参考:https://www.sbpayment.jp/service/method/3d/
リダイレクト先からセッションが維持されない!
かなり古いフレームワークを使用しているサイトで、カード会社からの認証リダイレクトで戻ってくる際に、セッション情報(購入した商品の情報等)が維持されない現象がおきました。
しかし、原因は至極単純なものでした。
CookieのSameSite属性を確認する
ChromeはVer80からCSRF対策で、Cookieセット時にSameSite属性が適切に指定されていない場合、外部からそのサイトにPOSTなどでアクセスされた際に発行されたサイトのCookieが強制的に無効になります。
そのため、セッションにSameSite=None Secure;
の属性がついていないとカード会社のサイトから戻ってきたときにセッションが切れてしまいます。
サイト側のセッションに常にSameSite=None Secure;
を付与することで解決できます。
外部リンク型の決済の場合既に対応されているケースが多いと思いますが、組み込み型でやっていると上記ケースで実装されている場合もありそうなので、お気を付けください。
古えのフレームワークバージョンだと、そもそもセッションの属性を指定できなかったりで結構大変だったのですが、それはまた別のお話…。