SBペイメント経験者がStripeとAIに感動した話:仕様書なしでVISA 3Dセキュア対応を完遂する新時代の開発

こんにちは、okamoです。

今回は、現在開発中の個人メディアシステムにおける「決済機能」の実装について、技術選定と実装の裏側をお話しします。

私はこれまで、SBペイメントサービス(SBPS)のリンク型決済やAPI型、Paygent、GMO、Amazon Payなど、国内の主要な決済代行サービス(PG)を利用するシステムを数多く実装してきました。ハッシュ計算、固定IP制限、厳密な仕様書……。それらは堅牢な日本の金融システムを支える重要な手続きですが、個人の開発者がサクッと導入するには少々ハードルが高いのも事実です。

今回、個人開発にあたり「Stripe」を採用したのですが、従来の国内PGとの**「アーキテクチャの違い」はもちろん、「生成AIを味方につけた開発体験」**に衝撃を受けました。

特に、昨今厳格化されている**VISAの3Dセキュア要件(属性情報の連携)**の実装において、設計書を一文字も読まずにAIへの相談だけで設計指針が固まったプロセスを中心に、「インボイス対応」「法務対応」について共有します。

1. 「仕様書」はもう読まない、AIが知っているから

SBPS等の実装経験がある方なら共感していただけると思いますが、まず開発を始める前に「仕様書」を取り寄せ、エラーコード表とパラメータ一覧をExcelやPDFで読み込み、不明点をサポートに問い合わせる作業から始まります。これらはクローズドな情報であるため、ChatGPTやClaudeなどのAIは詳細な仕様を知りません。

一方、Stripeの場合、世界標準かつドキュメントがWeb公開されているため、AIが完全に仕様を理解しています

AIとの対話だけで終わる設計

「Stripe Checkoutを使って、Node.jsで課金機能を実装したい。日本の商習慣に合わせて3Dセキュアも対応したい」

そうAIに投げかけるだけで、最新のAPIバージョンに対応したコードとパラメータ設計が返ってきます。

  • 従来の国内PG:仕様書のPDFを目視確認し、ハッシュ計算ロジック(SHA-256等)を自力で実装。文字コード(Shift-JIS)の変換トラブルと戦う。
  • Stripe × AI:AIが提示したSDKのコードをコピペし、微調整するだけ。ハッシュ計算もパラメータ順序も気にする必要なし。

「仕様書を読み解く」というエンジニアの工数が、AIとStripeの組み合わせによって消滅しました。

2. 複雑なVISA 3Dセキュア対応もAIと壁打ち

今回のシステムは「有料記事の都度課金」ですが、VISAをはじめとするカードブランドの要件(EMV 3-D Secure)では、リスク判定の精度を高めるために**「カード名義人名」や「電話番号」等の属性情報の連携**が強く推奨されています。

ここもAIに相談しました。

「Stripe CheckoutでVISAの属性連携要件(3Dセキュア)を満たすためのベストプラクティスを教えて」

すると、AIは即座に以下の2つのパターンを提示し、それぞれのメリット・デメリットを整理してくれました。

AIが提示した解決策

A. 決済画面でユーザーに入力させる

APIでセッションを作成する際、phone_number_collection: { enabled: true } を設定する手法。これだけでCheckout画面に電話番号入力欄が表示され、自動的にカード会社へ連携されます。

B. APIで事前に渡す(Pre-fill)

既に会員情報を持っているなら、Stripe側で Customer オブジェクトを作成し、namephone を登録してから決済セッションに渡す手法。

私はこの回答を見て、「今回は会員登録フローが別にあるからB案がUX的に良いが、実装工数を下げるならA案だ」と瞬時に意思決定できました。

SBPS時代は、この仕様を確認するために「連携仕様書」の該当ページを探し、パラメータのマッピング表(cust_name は全角?半角?など)とにらめっこしていましたが、今回はAIとの数回のラリーで設計が完了しました。

3. 「個人情報を持たない」という最強のセキュリティ

個人開発において、ユーザーの個人情報を自社DBで管理するのはリスクです。ここでもAIのアドバイスに従い、**「個人情報はすべてStripeに入力させ、自社にはデータを持たない」**構成を採用しました。

簡易インボイス対応も自動化

「インボイス制度に対応した領収書をどう出すべきか?」という問いに対しても、AIはStripeの標準機能(Invoice Creation)を提案してくれました。

  1. StripeダッシュボードでT番号を設定。
  2. APIで invoice_creation: { enabled: true } を設定。

これだけで法的要件を満たした領収書が自動送付されます。私が自前でPDF生成プログラムを書く必要はありませんでした。

4. 開発効率を爆上げする Stripe CLI

国内PGの開発で一番辛い「ローカル環境でのWebhookテスト」も、AIにコマンドを聞けば一発です。

stripe listen --forward-to localhost:3000/webhook

さらに stripe trigger payment_intent.succeeded で決済成功イベントを擬似的に発生させられます。エラーが出ても、エラーログをそのままAIに貼り付ければ、SDKのバージョン違いやシークレットキーの設定ミスなどを即座に指摘してくれます。

5. 法務対応:サーバーは「アメリカ」にある

技術と設計はAIのおかげで爆速になりましたが、法務面は人間のチェックが必要です。

Stripeのサーバーはアメリカにあるため、ユーザーが入力したデータは「外国にある第三者への提供」に該当します。

  • プライバシーポリシー: Stripe(米国)へのデータ移転の明記。
  • 特定商取引法: デジタルコンテンツの「返品不可」特約。
  • 利用規約: 決済画面での同意取得。

これらもAIにドラフトを作成させつつ、最終的には自分で確認して実装しました。

まとめ

今回の実装で痛感したのは、「ドキュメントがオープンなモダンSaaS」と「生成AI」の相性の良さです。

クローズドな仕様書が必要なレガシーなPGでは、AIは力を発揮できません。しかしStripeのように情報が開かれたサービスであれば、AIは優秀な技術顧問になります。「仕様書を読み解く時間」を「AIと最適な設計を議論する時間」に変えられたことこそが、今回の最大の収穫でした。



コメント (0)

コメントを投稿するにはログインが必要です。