フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
DjangoECサイトシステム構築での支払いページについて
その他
おまめ
2025/07/24 17:50

実現したいこと

「注文を確定する」ボタンを押すと商品が購入さていることが分かる画面を開けるようにしたいです。

発生している問題

「注文を確定する」ボタンを押すとエラー画面が表示されて「stripe._error.CardError: Request req_Chi9SGXrLGe8MK: Your charge was declined due to the Japan 3DS mandate. You should migrate to the Payment Intents API to complete the transaction. https://support.stripe.com/questions/3ds-mandate-in-japan」といった、メッセージが出る。

ソースコード

コードについては「DjangoECサイトシステム構築」の「02 準備」ページから「12 決済システム(Stripe)」ページまで全てページに記載されているコードを記載通りに入力しています。

自分で試したこと

補足情報

これは以前、「はる@フルスタックチャンネル」様が2021.11.12に更新した「DjangoECサイトシステム構築」にて一通り作成を進めました。
恐らく、原因としては今年の4月以降に義務化された3Dセキュアに関する事ではないかと思われます。
3Dセキュアの問題を解決して支払い完了画面が表示されるようにしたいです。
解決方法が分からなくてもやもやしている為なるべく早く解決したいと思っています。

回答 2件
login
回答するにはログインが必要です
はる@講師
約1か月前

ご連絡ありがとうございます。

今回発生したエラーの原因と解決方法についてご説明いたします。

■エラーの原因
2024年より3Dセキュア認証が義務化されており、従来のStripe Charges APIでは対応できなくなりました。
エラーメッセージ「Japan 3DS mandate」はこの要件によるもので、新しいPayment Intents APIへの移行が必要でした。

■解決方法
stripe.Charge.createからstripe.PaymentIntent.createに変更し、3Dセキュア認証に対応しました。

■主な変更点

  1. バックエンド(views.py):Payment Intents APIの実装
  2. フロントエンド(stripe.js):新しい決済フローの実装
  3. テンプレート(payment.html):UI/UXの改善

修正内容は下記を参考に修正をお願いします。
https://github.com/haruyasu/django-ecommerce/pull/1/files

よろしくお願いたします。

おまめ
約1か月前

修正内容を確認して修正しました。
動作を確認した所、意図通りの動作をする事が確認出来ました。
対応頂きまして誠にありがとうございました。

1