コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
    概要
    Payment Element
      Payment Element のベストプラクティス
      カード Element の比較
      Payment Intents を使用して Payment Element に移行
      Checkout セッションを使用して Payment Element に移行
      Confirmation Tokens に移行
    Express Checkout Element
    Address Element
    Currency Selector Element
    Link Authentication Element
    Payment Method Messaging Element
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いWeb ElementsPayment Element

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

Payment Intents API を利用した Payment Element への移行

単一の Element で、多数の支払い方法を取り扱えます。

ページをコピー

注

システムで引き続きトークン付きの Charges API を使用している場合は、まず Payment Intents API への移行ガイドに従ってください。

Stripe Billing、Stripe Tax や割引、配送、通貨換算の使用をご希望の場合

Stripe は現在、サブスクリプション、税金、割引、配送、通貨換算を管理する Payment Element のシステムを開発中です。詳細は、決済ページの構築ガイドをお読みください。

これまでは、支払い方法 (クレジットカード、iDEAL など) ごとに個別の Element が必要でした。Payment Element に移行すると、さまざまな支払い方法を 1 つの Element で受け付けることができます。

PaymentIntnet と SetupIntent にはそれぞれ独自の移行ガイドラインのセットが用意されています。組み込みパスに適したガイド (サンプルコードを含む) を参照してください。

既存のシステムで、将来の支払いに備えて Setup Intents API を使用している場合に Payment Element を使用するには、以下の手順に従います。

支払い方法を有効にする

注意

この導入パスは、Automated Clearing Settlement System (ACSS) を使用する BLIK またはプレオーソリデビットに対応していません。

支払い方法の設定を表示して、サポートする支払い方法を有効にします。SetupIntent を作成するには、少なくとも 1 つは支払い方法を有効にする必要があります。

By default, Stripe enables cards and other prevalent payment methods that can help you reach more customers, but we recommend turning on additional payment methods that are relevant for your business and customers. See Payment method support for product and payment method support, and our pricing page for fees.

Elements インスタンスを更新する
クライアント側

次に、クライアント側のコードを更新して、Elements インスタンスを作成するときに mode と currency を渡します。SetupIntent で使用する場合は、mode を 'setup' に設定して、currency を将来の顧客への請求内容に設定します。

前
後
const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const elements = stripe.elements();
const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const options = { mode: 'setup', currency: 'usd', }; const elements = stripe.elements(options);

オプションAdditional Elements options
クライアント側

Payment Element を追加する
クライアント側

React Stripe.js を使用している場合、Payment Element を使用するために最新のパッケージに更新してください。

Card Element と個々の支払い方法の Element を Payment Element で置き換えられるようになりました。Payment Element では、支払い方法や国に応じて入力フィールドの収集が自動的に調整されるため (SEPA ダイレクトデビットの請求先住所の収集など)、カスタマイズした入力フィールドを維持する必要がなくなります。

以下は、CardElement を PaymentElement で置き換える例です。

checkout.html
JavaScript
<form id="payment-form"> <div id="card-element"> </div> <div id="payment-element"> <!-- Mount the Payment Element here --> </div> <button id="submit">Submit</button> </form>
checkout.js
JavaScript
const cardElement = elements.create("card"); cardElement.mount("#card-element"); const paymentElement = elements.create("payment"); paymentElement.mount("#payment-element");

支払いフローで購入者の氏名やメールアドレスなどの詳細がすでに収集されている場合、Payment Element の作成時に fields オプションを渡すことにより、Payment Element によってこの情報が収集されないようにすることができます。特定のフィールドの収集を無効にする場合は、同じデータを stripe.confirmSetup で返す必要があります。

SetupIntent 作成コールを更新する
サーバー側

Payment Element では複数の支払い方法を受け付けることができるため、automatic_payment_methods を使用することをお勧めします。有効にすると、Stripe は、顧客が利用できる支払い方法のリストを決定する際に通貨、支払い方法の制限、その他のパラメーターを評価します。コンバージョン率上昇につながり、顧客の使用通貨と所在地に最も適した支払い方法が優先的に表示されます。

SetupIntent を作成するサーバー上のエンドポイントに automatic_payment_methods 属性を追加します。

前のステップで Elements グループを作成するときに渡したその他のエレメントオプションも SetupIntent の作成時に渡す必要があります。

Command Line
curl
curl https://api.stripe.com/v1/setup_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Version: 2025-05-28.basil" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "automatic_payment_methods[enabled]"=true

注意

一部の支払い方法は、将来の支払いのために保存できません。詳細については、支払い方法の導入オプションをご覧ください。

送信ハンドラーを更新する
クライアント側

stripe.confirmCardSetup や stripe.confirmP24Setup などの個別の confirm メソッドを使用するのではなく、stripe.confirmSetup を使用し、支払い情報を収集して Stripe に送信します。

SetupIntent を確定するために、送信ハンドラを次のように更新します。

  • await elements.submit() を呼び出してフォーム検証をトリガーし、ウォレット に必要なデータを収集します。
  • オプション: SetupIntent の作成を送信ハンドラに移動します。これにより、ユーザーが支払い方法の詳細を送信する準備が整っている場合にのみ SetupIntent を作成することになります。
  • Payment Element を作成するために使用した elements インスタンスと clientSecret を、SetupIntent から stripe.confirmSetup にパラメーターとして渡します。

呼び出されると、stripe.confirmSetup は 3DS ダイアログの表示による顧客の認証や、銀行のオーソリページへのリダイレクトなどの必要なアクションの実行を試みます。確認が完了すると、ユーザーは、設定されている return_url に移動します。これは通常、SetupIntent のステータスを表示するウェブサイトのページに対応しています。

カード支払いの詳細の保存で同じフローを維持し、リダイレクトベースの支払い方法の場合にのみリダイレクトを行うようにする場合は、redirect に if_required を設定します。

以下のコード例では、stripe.confirmCardSetup を stripe.confirmSetup に置き換えています。

前
後
// Create the SetupIntent and obtain clientSecret const res = await fetch("/create-intent", { method: "POST", headers: {"Content-Type": "application/json"}, }); const {client_secret: clientSecret} = await res.json(); const handleSubmit = async (event) => { event.preventDefault(); if (!stripe) { // Stripe.js hasn't yet loaded. // Make sure to disable form submission until Stripe.js has loaded. return; } setLoading(true); const {error} = await stripe.confirmCardSetup(clientSecret, { payment_method: { card: elements.getElement(CardElement) } }); if (error) { handleError(error); } };
const handleSubmit = async (event) => { event.preventDefault(); if (!stripe) { // Stripe.js hasn't yet loaded. // Make sure to disable form submission until Stripe.js has loaded. return; } setLoading(true); // Trigger form validation and wallet collection const {error: submitError} = await elements.submit(); if (submitError) { handleError(submitError); return; } // Create the SetupIntent and obtain clientSecret const res = await fetch("/create-intent", { method: "POST", headers: {"Content-Type": "application/json"}, }); const {client_secret: clientSecret} = await res.json(); // Use the clientSecret and Elements instance to confirm the setup const {error} = await stripe.confirmSetup({ elements, clientSecret, confirmParams: { return_url: 'https://example.com/order/123/complete', }, // Uncomment below if you only want redirect for redirect-based payments // redirect: "if_required", }); if (error) { handleError(error); } };

組み込みをテストする

テスト用の支払いの詳細とテスト用リダイレクトページを使用して、組み込みを確認できます。以下のタブをクリックすると、各支払い方法の詳細を表示できます。

決済手段シナリオテスト方法
クレジットカードカードの設定は成功し、認証は必要ありません。クレジットカード番号 4242 4242 4242 4242 と、任意の有効期限、セキュリティーコード、郵便番号を使用してクレジットカードフォームに入力します。
クレジットカードこのカードは初期設定時に認証が必要であり、それ以降は支払いに成功します。クレジットカード番号 4000 0025 0000 3155 と、任意の有効期限、セキュリティーコード、郵便番号を使用してクレジットカードフォームに入力します。
クレジットカードこのカードは、初期設定時も、以降の支払いでも認証が必要です。クレジットカード番号 4000 0027 6000 3184 と、任意の有効期限、セキュリティーコード、郵便番号を使用してクレジットカードフォームに入力します。
クレジットカード設定中にカードは拒否されます。クレジットカード番号 4000 0000 0000 9995 と、任意の有効期限、セキュリティーコード、郵便番号を使用してクレジットカードフォームに入力します。

保存された SEPA デビット PaymentMethod への請求をテストする

iDEAL、Bancontact または Sofort を使用して SetupIntent が確定されると、SEPA ダイレクトデビット の PaymentMethod が生成されます。SEPA ダイレクトデビットは、通知遅延型の決済手段であり、中間の processing 状態に移行してから、数日後に succeeded または requires_payment_method の状態に移行します。

payment_method.billing_details.emailを以下の値のいずれかに設定して PaymentMethod のステータスの移行をテストします。メールアドレスの先頭に独自のカスタムのテキストを含め、その後ろにアンダースコアを付けることができます。 たとえば、test_1_generatedSepaDebitIntentsFail@example.com は、PaymentIntent とともに使用された場合に常に失敗する、SEPA ダイレクトデビットの PaymentMethod です。

メールアドレス説明
generatedSepaDebitIntentsSucceed@example.comPaymentIntent のステータスは、processing から succeeded に移行します。
generatedSepaDebitIntentsSucceedDelayed@example.comThe PaymentIntent status transitions from processing to succeeded after at least three minutes.
generatedSepaDebitIntentsFail@example.comPaymentIntent のステータスは、processing から requires_payment_method に移行します。
generatedSepaDebitIntentsFailDelayed@example.comThe PaymentIntent status transitions from processing to requires_payment_method after at least three minutes.
generatedSepaDebitIntentsSucceedDisputed@example.comPaymentIntent のステータスは、processing から succeeded に移行しますが、すぐに不審請求の申請が作成されます。
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc