コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
    概要
    既存の顧客の支払い
    支払いのオーソリとキャプチャーを分離する
    2 段階の確認機能を構築する
    インテントを作成する前に支払いの詳細を収集
    サーバーで支払いを確定する
    通信販売 / 電話販売 (MOTO) の受け付け
    アメリカとカナダのカード
      認証なしのカードの保存
      認証を処理するためのアップグレード
    サードパーティーの API エンドポイントにカード情報を転送する
    支払い項目
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いCustom payment flowsUS and Canadian cards

注

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

カードの基本的な組み込みを移行する

カード認証時に発生する銀行からのリクエストを処理できる実装に移行します。

ページをコピー

銀行認証なしのカード支払いのガイドに沿って作成された支払いは、銀行が顧客に購入の認証を求めると拒否されます。

以下のダッシュボードのように、支払いの失敗が多く表示されるようになったり、または API で requires_action_not_handled エラーコードが確認されるようになった場合、これらの支払いを拒否するのではなく、支払いを処理するために基本の組み込みをアップグレードします。

この支払いについて銀行が認証を要求していることを示す、失敗した決済を表示するダッシュボード

このガイドを使用して、以前のガイドに沿って構築された実装のアップグレード方法をご紹介します。ここでは、モーダルを表示して顧客に支払いの認証を促すサーバーとクライアントのコードを追加します。

注

この組み込みの完全なサンプルは、GitHub でご覧ください。

支払いに認証が必要かどうか確認する
サーバー側

PaymentIntent を作成するサーバー上のエンドポイントに 2 つの変更を加えます。

  1. error_on_requires_action パラメーターを削除して、認証を必要とする支払いが再び失敗しないようにします。代わりに、PaymentIntent のステータスが requires_action に変化します。
  2. confirmation_method パラメーターを追加して、認証リクエストを処理した後に、支払いを再度 (手動で) 明示的に確定することを示します。
Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ -d payment_method_types[]=card \ -d confirm=true \ -d error_on_requires_action=true \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d confirmation_method=manual

次に、「レスポンス生成」関数を更新して、エラーを返すのではなく、requires_action 状態を処理します。

Command Line
curl
# If the request succeeds, check the # PaymentIntent's `status` and handle # its `next_action`.

顧客に認証を行うように依頼します。
クライアント側

次に、クライアント側のコードを更新し、Stripe に対して、顧客の認証が必要な場合にモーダルを表示するように指示します。

PaymentIntent のステータスが requires_action になったら、stripe.handleCardAction を使用します。成功すると、PaymentIntent のステータスが requires_confirmation になります。次にサーバーで PaymentIntent を再度確認して支払いを完了する必要があります。

const handleServerResponse = async (responseJson) => { if (responseJson.error) { // Show error from server on payment form } else if (responseJson.requiresAction) { // Use Stripe.js to handle the required card action const { error: errorAction, paymentIntent } = await stripe.handleCardAction(responseJson.clientSecret); if (errorAction) { // Show error from Stripe.js in payment form } else { // The card action has been handled // The PaymentIntent can be confirmed again on the server const serverResponse = await fetch('/pay', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ payment_intent_id: paymentIntent.id }) }); handleServerResponse(await serverResponse.json()); } } else { // Show success message } }

PaymentIntent を再度確定する
サーバ側

前回使用したものと同じエンドポイントを使用し、PaymentIntent を再度確定して支払いを完了し、注文を処理します。1 時間以内に再度確定しないと、支払いの試行は失敗し、取引は requires_payment_method に戻ります。

Command Line
curl
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST"

組み込みをテストする

Use our test cards in a sandbox to verify that your integration was properly updated. Stripe displays a fake authentication page inside the modal in a sandbox that lets you simulate a successful or failed authentication attempt. In live mode the bank controls the UI of what is displayed inside the modal.

番号説明
成功し、支払いがすぐに処理されます。
常に支払い拒否コード insufficient_funds で失敗します。
認証を必要とします。この組み込みでは、authentication_not_handled という拒否コードで失敗します。
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc