コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
Ask AI
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要すべての商品を確認する
構築を開始する
開発の開始
サンプルプロジェクト
API について
    API ツアー
    Payment Intents API
    Setup Intents API
    支払い方法
    以前の API
      支払い
        新しい API への移行
        カード支払いを受け付ける
        カードを保存する
        カードの売上を保留する
        Connect を利用した支払い
      Sources
    リリースフェーズ
LLM を使用した構築
ノーコードで Stripe を使用する
Stripe を設定する
アカウントを作成する
商品と価格
ウェブダッシュボード
モバイルダッシュボード
Stripe に移行
顧客データを移行
決済データを移行
サブスクリプションを移行
不正利用のリスク管理
不正利用について
Radar の不正防止
不審請求の申請の管理
本人確認
規制への対応
ホーム始めるAbout the APIsOlder APIsCharges

注

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

Payment Intents API への移行

ページをコピー

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

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

既存のカードと Charges API 組み込みを移行する方法は以下のとおりです。

決済フローの移行は非常に煩雑な場合があります。Payment Intents API を段階的に採用し、それを Charges API と並行して使用するのが安全です。この目的のために、移行を次のステップに分割できます。

  1. API バージョンとクライアントライブラリを更新します。
  2. 該当する場合は、支払いプロパティから読み取るコードを移行して、Charges API によって作成された支払いと Payment Intents API によって作成された支払いの間の読み取りパスの整合性を確保します。これにより、読み取り側のシステムが支払いの古いシステムと新しいシステムの両方で機能するようになります。
  3. Web、iOS、および Android の既存の Charges API の実装を、Payment Intents API を使用するように移行します。
  4. Customer オブジェクトにカードを保存する組み込みを移行します。
  5. 規制用テストカードでテストして、アップグレードしたシステムが認証を正しく処理することを確認します。

API バージョンとクライアントライブラリを更新する

Payment Intents API はすべての API バージョンで機能しますが、最新の API バージョンにアップグレードすることをお勧めします。2019-02-11 より古い API バージョンを使用する場合は、コード例を確認しながら、以下の 2 つの変更点に注意します。

  • requires_source は requires_payment_method に名前が変更されています
  • requires_source_action は requires_action に名前が変更されています

In addition, if you use one of our SDKs, upgrade to the latest version of the library to use the Payment Intents API.

1 回限りの支払いフローを移行

Stripe.js および Elements を使用して構築された組み込みは、以下のステップで構成されます。

  1. サーバ側で支払いを回収する Intent を登録する
  2. クライアント側で支払いの詳細を収集する
  3. 支払いの作成を開始する
  4. サーバ側で顧客の注文のフルフィルメントを実行する

ステップ 1: サーバ側で支払いを回収する Intent を登録する

サーバーで PaymentIntent を作成し、クライアント側でアクセスできるようにします。

前
後

以前は未対応

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

ステップ 2: クライアント側で支払いの詳細を収集する

confirmCardPayment 関数を使用して、支払い情報を収集し、Stripe に直接送信します。

前
後
stripe.createToken( cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( INTENT_SECRET_FROM_STEP_1, { payment_method: {card: cardElement} } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

ステップ 3: 支払いの作成を開始する

既存の組み込みでは、最後のステップでトークン化された支払い情報を使用してサーバで支払いを作成していますが、このステップは不要になりました。これは、前のステップで呼び出される confirmCardPayment 関数が支払いの作成を開始するためです。

前
後
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "amount"=1099 \ -d "currency"="usd"

前のステップで完了

ステップ 4: 顧客の注文のフルフィルメントを実行

自動確認では、クライアント側での顧客のアクションに基づいて非同期で支払いが作成されるため、Webhook を監視して支払いが正常に完了するタイミングを判断する必要があります。顧客の支払いが成功した後に注文のフルフィルメントなどのステップを実行するには、Webhook のサポートを実装して、payment_intent.succeeded イベントを監視します。

前
後

支払いが成功した場合は、フルフィルメントを実行します。

payment_intent.succeeded Webhook に登録し、Webhook ハンドラでフルフィルメントを実行します。

移行が完了できました。次のセクションではテストカードを使用して、アップグレードした組み込みが 3D セキュア認証を処理することを確認します。

Customer オブジェクトにカードを保存する組み込みに移行する

決済フローでカード情報を収集する Payment Intents API 組み込みは、次のステップで構成されます。

  1. サーバ側で支払いを回収する Intent を登録する
  2. クライアント側で支払いの詳細を収集する
  3. 支払いの作成を開始する
  4. サーバ側で顧客の注文のフルフィルメントを実行する

ステップ 1: サーバ側で支払いを回収する Intent を登録する

サーバー上に PaymentIntent を作成します。ユーザーがアプリケーションの外部にいるときに請求することが多い場合は、setup_future_usage を off_session に設定し、アプリケーション内でユーザーに請求する予定の場合は on_session に設定します。オンセッションとオフセッションの両方の支払いにカードを使用する場合は、off_session を使用します。Customer ID と一緒に setup_future_usage パラメーターを指定すると、PaymentIntent が確定され、顧客の操作が完了した後、結果の PaymentMethod がその Customer に保存されます。次に、PaymentIntent にクライアント側でアクセスできるようにします。

前
後

以前は未対応

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "setup_future_usage"="off_session" \ -d "amount"=1099 \ -d "currency"="usd"

ステップ 2: クライアント側で支払いの詳細を収集する

confirmCardPayment 関数を使用して、支払い情報を収集し、Stripe に直接送信します。

前
後
stripe.createToken( // or stripe.createSource cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( '{{INTENT_SECRET_FROM_STEP_1}}', { payment_method: {card: cardElement}, } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

最後に、支払い方法 (paymentIntent.payment_method) を顧客に関連付けます。

前
後
Command Line
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}}/sources \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{TOKEN_OR_SOURCE}}"
Command Line
curl https://api.stripe.com/v1/payment_method/{{PAYMENT_METHOD_ID}}/attach \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}"

ステップ 3: 支払いの作成を開始する

既存の組み込みでは、最後のステップでトークン化された支払い情報を使用してサーバで支払いを作成していますが、このステップは不要になりました。これは、前のステップで呼び出される confirmCardPayment 関数が支払いの作成を開始するためです。

前
後
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="usd"

前のステップで完了

ステップ 4: 顧客の注文のフルフィルメントを実行

自動確認では、クライアント側での顧客のアクションに基づいて非同期で支払いが作成されるため、Webhook を監視して支払いが正常に完了するタイミングを判断する必要があります。顧客の支払いが成功した後に注文のフルフィルメントなどのステップを実行するには、Webhook のサポートを実装して、payment_intent.succeeded イベントを監視します。

前
後

支払いが成功した場合は、フルフィルメントを実行します。

payment_intent.succeeded Webhook に登録し、Webhook ハンドラでフルフィルメントを実行します。

移行が完了できました。次のセクションではテストカードを使用して、アップグレードした組み込みが 3D セキュア認証を処理することを確認します。

保存された支払い方法にアクセスする

以前に保存した顧客のカード、ソース、PaymentMethods を表示するには、Customer オブジェクトの sources プロパティを読み取る代わりに、支払い方法をリストアップします。顧客に追加された新しい PaymentMethod は Customer オブジェクトの sources プロパティに複製されないため、このようにする必要があります。

前
後
Command Line
customer.sources
Command Line
curl https://api.stripe.com/v1/payment_methods?customer={{CUSTOMER_ID}}&type=card \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:

組み込みをテストする

組み込みを十分にテストして、追加の認証が必要なカードと不要なカードが正しく処理されることを確認することが重要です。将来の日付の有効期限と 3 桁のセキュリティコードとともに、これらのカード番号をサンドボックスで使用し、認証が必要な場合と不要な場合について、組み込みを検証します。

番号認証説明
設定時または最初の取引時に必要このテストカードは、1 回限りの支払いの認証が必要です。ただし、Setup Intents API を使用してこのカードを設定し、それ以降の支払いに保存したカードを使用する場合は、追加の認証の必要はありません。
必須このテストカードは、すべての取引で認証を必要とします。
必須このテストカードには認証が必要ですが、認証の成功後に、支払いは insufficient_funds エラーコードで拒否されます。
対応可能This test card supports authentication through 3D Secure 2, but does not require it. Payments using this card do not require additional authentication in a sandbox unless your sandbox Radar rules request authentication.

これらのカードをアプリケーションまたは支払いデモで使用して、さまざまな動作を確認します。

参照情報

  • iOS での Payment Intents
  • Android での Payment Intents
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc