コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
決済手段を管理
Link による購入の迅速化
    概要
    即時の銀行支払い
    概要
    Checkout で Link を使用する
    Web Elements での Link の使用
    Mobile Elements での Link の使用
    Invoicing での Link の使用
    導入ガイド
    Link による支払いの導入
    Link を含むカスタムの決済ページを構築
    Elements と Link を使用して支払いを事前設定
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いFaster checkout with Link

注

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

Elements と Link を使用して以降の支払いを設定する

Link の顧客の詳細を保存し、後で請求します。

ページをコピー

This guide walks you through how to accept payments with Link using the Setup Intents API and either the Payment Element or Link Authentication Element.

Link の認証または登録のために顧客のメールアドレスを収集する方法は 3 種類あります。

  • メールアドレスを渡す: defaultValues を使用して、メールアドレスを Payment Element に渡すことができます。決済フローで顧客のメールアドレスまたは電話番号を収集した場合は、このアプローチをお勧めします。
  • メールアドレスを収集する: Payment Element で直接、メールアドレスを収集できます。決済フローでメールアドレスを収集しない場合は、このアプローチをお勧めします。
  • Link Authentication Element: Link Authentication Element を使用して、1 つでメールアドレスの収集と Link の認証の両方に対応するメールアドレス入力フィールドを作成できます。Address Element を使用している場合は、この方法をお勧めします。
購入時に Payment Element で直接 Link を認証または登録する

Link の認証または登録のために顧客のメールアドレスを収集する

Stripe を設定する
サーバ側

まず、Stripe アカウントを作成するかサインインします。

アプリケーションから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Customer を作成する
サーバー側

将来の支払いに備えて支払い方法を設定するには、その手段を Customer (顧客) に関連付ける必要があります。顧客がビジネスでアカウントを作成する際に、Customer オブジェクトを作成します。Customer オブジェクトを使用すると、支払い方法を再利用したり、複数の支払いを追跡したりできます。

Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

SetupIntent を作成する
サーバー側

注

最初に SetupIntent を作成せずに Payment Element をレンダリングする場合は、インテントを作成する前に支払いの詳細を収集するをご覧ください。

SetupIntent (支払い方法設定インテント) は、セッション中に将来の決済に備えて顧客の支払い方法を設定するという意図を示すオブジェクトであり、セッションのステータスを追跡します。SetupIntent は、link と、サポートするその他の支払い方法を指定して、サーバーで作成します。

Command Line
cURL
curl https://api.stripe.com/v1/setup_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]"=card \ -d "payment_method_types[]"=link

その他の支払い方法の設定方法については、将来の支払いを設定するガイドをご覧ください。

client secret を取得する

SetupIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。

ブラウザーの fetch 関数を使用して、サーバーのエンドポイントから client secret を取得します。この方法は、クライアント側が 1 ページのアプリケーションで、特に React などの最新のフロントエンドフレームワークで構築されている場合に最適です。client secret を処理するサーバーのエンドポイントを作成します。

main.rb
Ruby
get '/secret' do intent = # ... Create or retrieve the SetupIntent {client_secret: intent.client_secret}.to_json end

その後、クライアント側で JavaScript を使用して client secret を取得します。

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

顧客のメールアドレスを収集する

Link は顧客のメールアドレスを使用して顧客を認証します。決済フローに応じて、「メールアドレスを Payment Element に渡す」、「Payment Element 内で直接メールアドレスを収集する」、または「Link Authentication Element を使用する」というオプションがあります。これらのうち、可能であれば顧客のメールアドレスを Payment Element に渡す方法をおすすめします。

以下の「いずれか」に該当する場合:

  • メールアドレスの収集と Link の認証が最適化された 1 つのコンポーネントを使用する場合。
  • 顧客から配送先住所を収集する必要がある場合。

その場合、Link Authentication Element、Payment Element、必要に応じて Address Element を実装する導入フローを使用します。

Link 対応の決済ページでは、最初に Link Authentication Element があり、その次に Address Element が続き、最後に Payment Element となります。決済フローが複数ページにわたる場合、Link Authentication Element を各ページに同じ順序で表示することもできます。

複数の Elements を使用して決済フォームを作成する

複数の Elements を使用して決済フォームを作成する

このシステムは以下のように動作します。

決済フォームを設定する
クライアント側

これで、Elements の構築済みの UI コンポーネントを使用してカスタムの決済フォームを設定できるようになりました。構築したシステムを機能させるには、決済ページのアドレスの先頭を http:// ではなく https:// にする必要があります。テストの際には、HTTPS を使用しなくても問題ありません。本番環境で決済を受け付ける準備が整ったら、HTTPS を有効にします。

Link Authentication Element によってメールアドレス入力が表示されます。Link で、顧客のメールアドレスと既存の Link アカウントが一致すると、その顧客に認証用の安全なワンタイムコードが送信されます。顧客が認証に成功すると、Stripe は、Link に保存された顧客の住所と支払い方法を表示して、顧客が使用できるようにします。

この実装では、Payment Element も作成されます。この Payment Element によって動的フォームが表示され、顧客は支払い方法のタイプを選択できます。このフォームでは、顧客が選択した支払い方法に必要な支払い情報が自動的に収集されます。Payment Element は、Link に保存された支払い方法を、認証済みの顧客に表示する処理も行います。

Stripe Elements を設定する

Install React Stripe.js and the Stripe.js loader from the npm public registry.

Command Line
npm install --save @stripe/react-stripe-js @stripe/stripe-js

決済ページで、決済フォームを Elements コンポーネントでラップし、前のステップの client secret を渡します。フォームの別の部分で顧客のメールアドレスをすでに収集している場合には、既存の入力を linkAuthenticationElement​ に置き換えます。

メールアドレスを収集しない場合、決済フローに linkAuthenticationElement​ を追加します。Link に保存されている顧客の詳細を Link で ShippingAddressElement と PaymentElement に自動入力するには、linkAuthenticationElement を ShippingAddressElement (配送先住所を収集する場合は省略可) と PaymentElement より前に配置する必要があります。また、appearance オプションを渡して、サイトのデザインに合わせて Elements をカスタマイズすることもできます。

顧客のメールアドレスを把握している場合は、それを linkAuthenticationElement の defaultValues オプションに渡します。これによりメールアドレスが事前入力され、Link の認証プロセスが開始されます。

その他の顧客情報がある場合は、PaymentElement の defaultValues.billingDetails オブジェクトに渡します。できるだけ多くの情報を事前入力することで、顧客の Link アカウントの作成やアカウントの再利用を効率化できます。

次に、linkAuthenticationElement と PaymentElement の各コンポーネントを決済フォームにレンダリングします。

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { Elements, LinkAuthenticationElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Customize the appearance of Elements using the Appearance API. const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto';

linkAuthenticationElement、PaymentElement、ShippingAddressElement は同じページになくてもかまいません。顧客の連絡先情報、配送先の詳細、支払いの詳細をそれぞれ別のステップで顧客に表示するプロセスがある場合、適切なステップまたはページで各 Element を表示できます。Link が提供している配送先と支払いの自動入力機能を顧客が最大限に活用できるように、連絡先情報収集ステップにメール入力フォームとして linkAuthenticationElement を含めてください。

決済フローの早い段階で Link Authentication Element を使用して顧客のメールアドレスを収集している場合、配送ページや支払いページでそれを再び表示する必要はありません。

メールアドレスを取得する

linkAuthenticationElement コンポーネントの onChange プロパティを使用してメールアドレスの詳細を取得できます。ユーザーがメールアドレスフィールドを更新するか、保存された顧客のメールアドレスが自動入力されると、onChange ハンドラーが起動します。

<linkAuthenticationElement onChange={(event) => { setEmail(event.value.email); }} />

顧客のメールアドレスを事前入力する

Link Authentication Element はメールアドレスを受け付けます。顧客のメールアドレスを指定すると、顧客が defaultValues オプションを使用して支払いページに到達するとすぐに Link の認証フローがトリガーされます。

<linkAuthenticationElement options={{defaultValues: {email: 'foo@bar.com'}}}/>

オプションその他の顧客データを事前入力する
クライアント側

オプション配送先住所を収集する
クライアント側

オプションデザインをカスタマイズする
クライアント側

SetupIntent を送信する
クライアント側

収集した詳細を指定し、stripe.confirmSetup を使用して設定を完了します。ユーザーが設定を完了した後に Stripe がユーザーをリダイレクトできるように、この関数に return_url を指定します。支払いが成功すると、Stripe は直ちに Link とカード支払いを return_url にリダイレクトします。

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { useStripe, useElements, Elements, LinkAuthenticationElement, PaymentElement, // If collecting shipping AddressElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto'; const CheckoutPage =({clientSecret}) => ( <Elements stripe={stripe} options={{clientSecret, appearance, loader}}> <CheckoutForm /> </Elements> ); export default function CheckoutForm() { const stripe = useStripe(); const elements = useElements(); const handleSubmit = async (event) => { event.preventDefault(); const {error} = await stripe.confirmSetup({ elements, confirmParams: { return_url: "https://example.com/order/123/complete", }, }); if (error) { // handle error } }; return ( <form onSubmit={handleSubmit}> <h3>Contact info</h3> <LinkAuthenticationElement /> {/* If collecting shipping */} <h3>Shipping</h3> <AddressElement options={{mode: 'shipping', allowedCountries: ['US']}} /> <h3>Payment</h3> <PaymentElement /> <button type="submit">Submit</button> </form> ); }

保存された支払い方法に後で請求する
サーバー側

顧客に請求する準備ができたら、Customer ID と PaymentMethod ID を使用して、PaymentIntent を作成します。請求する支払い方法を見つけるには、顧客に関連付けられた支払い方法をリストアップします。

Command Line
curl
curl https://api.stripe.com/v1/payment_methods \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}" \ -d "type"="link" \ -G

Customer ID と PaymentMethod ID を取得したら、決済の金額と通貨を指定し、次のパラメーターを使用して PaymentIntent を作成します。

  • PaymentIntent の confirm プロパティの値を true に設定します。これにより、PaymentIntent が作成されると直ちに確定されます。
  • payment_method を PaymentMethod の ID に設定します
  • Customer を Customer の ID に設定します。
  • off_session を true に設定します。これにより、認証が必要な場合に顧客がサイトやアプリでアクティブでないときは、PaymentIntent からエラーが送信されます。
Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \ -d customer="{{CUSTOMER_ID}}" \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d return_url="https://example.com/order/123/complete" \ -d off_session=true \ -d confirm=true

実装をテストする

注意

Don’t store real user data in sandbox Link accounts. Treat them as if they’re publicly available, because these test accounts are associated with your publishable key.

Link は現在、クレジットカード、デビットカード、および資格要件を満たしたアメリカの銀行口座からの購入にのみ対応しています。Link では、ドメインの登録が必要です。

You can create sandbox accounts for Link using any valid email address. The following table shows the fixed one-time passcode values that Stripe accepts for authenticating sandbox accounts:

値結果
以下に記載されていない任意の 6 桁の数字成功
000001エラー: コードが無効です
000002エラー: コードの有効期限が切れています
000003エラー: 最大試行回数を超えました

特定の決済手段をテストするには、Payment Element のテスト例をご覧ください。

複数の資金供給元

対応する資金供給元を Stripe が追加した場合でも、貴社で構築済みのシステムを更新する必要はありません。Stripe が自動的に対応し、カード決済や銀行口座決済の場合と同じ売上処理時間と保証が適用されます。

カード認証と 3D セキュア

Link は、カード決済で 3D セキュア 2 (3DS2) 認証をサポートしています。3DS2 では、顧客が支払うときに、カード発行会社による追加の確認手順を完了する必要があります。3D セキュアを使用して正常に認証された支払いは、ライアビリティシフトの対象となります。

To trigger 3DS2 authentication challenge flows with Link in a sandbox, use the following test card with any CVC, postal code, and future expiration date: .

In a sandbox, the authentication process displays a mock authentication page. On that page, you can either authorize or cancel the payment. Authorizing the payment simulates successful authentication and redirects you to the specified return URL. Clicking the Failure button simulates an unsuccessful attempt at authentication.

詳細については、3D セキュア認証ページをご覧ください。

注

3DS フローのテストでは、3DS2 用のテストカードを使用している場合にのみ Link の認証が起動されます。

顧客に Stripe を開示する

Stripe は顧客の Elements とのやり取りに関する情報を収集して、サービスを提供し、不正利用を防止し、サービスを向上します。これには、Cookie と IP アドレスを使用して、1 つの決済フローセッションで顧客に表示する Elements を特定することが含まれます。Stripe がこのような方法でデータを使用するために必要なすべての権利と同意について開示し、これらを取得することはお客様の責任です。詳細については、プライバシーセンターをご覧ください。

参照情報

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