Link を含むカスタムの決済ページを構築する
Payment Element または Link Authentication Element を使用して Link を導入します。
This guide walks you through how to accept payments with Link using the Payment 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 を使用している場合は、この方法をお勧めします。
Link の認証または登録のために顧客のメールアドレスを収集する
PaymentIntent を作成するサーバー側
Stripe は PaymentIntent (支払いインテント) オブジェクトを使用して、顧客から支払いを回収する意図を示し、プロセス全体を通して請求の実施と支払い状態の変化を追跡します。
Setup Intents で今後の使用に向けてカード詳細を収集している場合は、動的な決済手段を使用する代わりに決済手段を手動で一覧表示します。動的な決済手段を使用せずに Link を使用するには、導入を更新して link
を payment_
に渡します。
PaymentIntent を作成する際は、動的な決済手段を使用して、Link を含む最も関連性の高い支払い方法を顧客に動的に提供します。動的な決済手段を使用するには、payment_
パラメーターを含めないでください。オプションで、automatic_
を有効にすることもできます。
注
システムで payment_
パラメーターを設定しない場合、カードやウォレットなどの一部の決済手段は自動的に有効になります。
動的な決済手段を使用して Link を Elements システムに追加するには、次のようにします。
- ダッシュボードの決済手段の設定で、Link を有効にします。
- 決済手段を手動で一覧化する既存の実装がある場合は、実装から payment_method_types パラメーターを削除します。
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
顧客のメールアドレスを収集する
Link は顧客のメールアドレスを使用して顧客を認証します。決済フローに応じて、「メールアドレスを Payment Element に渡す」、「Payment Element 内で直接メールアドレスを収集する」、または「Link Authentication Element を使用する」というオプションがあります。これらのうち、可能であれば顧客のメールアドレスを Payment Element に渡す方法をおすすめします。
決済フォームを設定するクライアント側
これで、Elements の構築済みの UI コンポーネントを使用してカスタムの決済フォームを設定できるようになりました。構築したシステムを機能させるには、決済ページのアドレスの先頭を http://
ではなく https://
にする必要があります。テストの際には、HTTPS を使用しなくても問題ありません。本番環境で決済を受け付ける準備が整ったら、HTTPS を有効にします。
Stripe に支払いを送信するクライアント側
stripe.confirmPayment を使用し、さまざまな Elements フォームで顧客から収集された情報を使用して支払いを完了します。この関数に return_url を指定して、支払いが完了した後に Stripe がユーザーをリダイレクトする場所を指示します。
ユーザーは、まず銀行のオーソリページなどの中間サイトにリダイレクトされ、その後 Stripe によって return_
にリダイレクトされる場合があります。
By default, card and bank payments immediately redirect to the return_
when a payment is successful. If you don’t want to redirect to the return_
, you can use if_required to change the behavior.
return_
は、戻りページのレンダリング時に PaymentIntent
の支払いのステータスを表示する Web サイト上のページに対応します。Stripe が顧客を return_
にリダイレクトするときに、以下の URL クエリパラメーターを使用して支払いのステータスを確認できます。return_
を指定する際は、独自のクエリパラメーターを追加することもできます。このクエリパラメーターはリダイレクトプロセス全体で存続します。
パラメーター | 説明 |
---|---|
payment_ | PaymentIntent の一意の識別子 |
payment_ | PaymentIntent オブジェクトの client secret。 |
支払い後のイベントを処理するサーバー側
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。Webhook を使用してこれらのイベントを受信し、顧客への注文確認メールの送信、データベースへの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、こうしたイベントをリッスンするように組み込みを設定します。クライアントからのコールバックを待っているときに、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする場合もあります。非同期型のイベントをリッスンするよう組み込みを設定すると、さまざまなタイプの支払い方法を 1 つの組み込みで受け付けることができます。
Payment Element を使用して支払いを回収する場合は、payment_
イベント以外に重要な 2 つのイベントも処理することができます。
イベント | 説明 | アクション |
---|---|---|
payment_intent.succeeded | 顧客が正常に支払いを完了したときに Stripe から送信されます。 | 顧客に注文の確定を送信し、注文のフルフィルメントを実行します。 |
payment_intent.payment_failed | 顧客が支払いを試み、その支払いに失敗した場合に Stripe から送信されます。 | 支払いが processing から payment_ に変わった場合は、顧客に再度支払いを試すように促します。 |
構築したシステムをテストする
注意
テスト環境の Link アカウントには実際のユーザーデータを保存しないでください。テストアカウントは公開可能キーに関連付けられているため、公開可能なものとして扱ってください。
Link は現在、クレジットカード、デビットカード、および資格要件を満たしたアメリカの銀行口座からの購入にのみ対応しています。Link では、ドメインの登録が必要です。
有効な任意のメールアドレスを使用して、Link のテスト環境のアカウントを作成できます。以下の表には、テスト環境のアカウントの認証に使用できる、固定値のワンタイムパスコードが示されています。
値 | 結果 |
---|---|
以下に記載されていない任意の 6 桁の数字 | 成功 |
000001 | エラー: コードが無効です |
000002 | エラー: コードの有効期限が切れています |
000003 | エラー: 最大試行回数を超えました |
特定の決済手段をテストするには、Payment Element のテスト例をご覧ください。
複数の資金供給元
対応する資金供給元を Stripe が追加した場合でも、貴社で構築済みのシステムを更新する必要はありません。Stripe が自動的に対応し、カード決済や銀行口座決済の場合と同じ売上処理時間と保証が適用されます。
カード認証と 3D セキュア
Link は、カード支払いで 3D Secure 2 (3DS2) 認証をサポートしています。3DS2 では、顧客が支払い時にカード発行会社で追加の認証ステップを完了するように要求されます。3DS を使用して認証が成功した支払いは、ライアビリティシフトの対象になります。
テスト環境で Link を使用して 3DS2 認証のチャレンジフローを起動するには、任意のセキュリティコード、郵便番号、および将来日付の有効期限を指定してテストカード を使用します。
テスト環境では、認証プロセスで認証の模擬ページが表示されます。そのページでは支払い のオーソリまたはキャンセルを行うことができます。支払い をオーソリすると、認証の成功がシミュレーションされ、指定された戻り URL にリダイレクトされます。失敗ボタンをクリックすると、認証の失敗がシミュレーションされます。
詳細については、3D セキュア認証ページをご覧ください。
注
3DS フローのテストでは、3DS2 用のテストカードを使用している場合にのみ Link の認証が起動されます。
Stripe について顧客に開示する
Stripe は顧客の Elements とのやり取りに関する情報を収集して、サービスを提供し、不正利用を防止し、サービスを向上します。これには、Cookie と IP アドレスを使用して、1 つの決済フローセッションで顧客に表示する Elements を特定することが含まれます。Stripe がこのような方法でデータを使用するために必要なすべての権利と同意について開示し、これらを取得することはお客様の責任です。詳細については、プライバシーセンターをご覧ください。