Sofort での支払い中に銀行詳細を保存する
Sofort での支払いから顧客の IBAN 銀行詳細を保存する方法をご紹介します。
警告
New businesses can’t accept SOFORT payments and our financial partners are in the process of discontinuing SOFORT. For more information, read our support page.
注意
支払い中に支払いの詳細を保存するためのガイドに従うことをお勧めします。すでに Elements との連携が完了している場合は、Payment Element 移行ガイドをご覧ください。
Sofort は 1 回限りの使用の、通知遅延型の支払い方法であり、顧客は支払いの認証を求められます。顧客が Sofort で支払う場合は、ウェブサイトから銀行のポータルにリダイレクトされ、そこで支払いの認証を行います。成功または失敗の通知を受け取るまでに、通常 2 〜 14 日かかります。
Sofort を使用して、顧客の IBAN 銀行詳細を SEPA ダイレクトデビット の PaymentMethod に保存できます。その後、SEPA ダイレクトデビット PaymentMethod を使用して、決済を受け付けたり、サブスクリプションを設定したりできます。これにより、顧客が IBAN の入力を繰り返す必要がなくなるため、顧客の負担が軽減されます。また、確認済みの氏名と検証済みの IBAN を受け取ることもできます。
注意
Sofort を使用して SEPA ダイレクトデビットの支払いを設定するには、ダッシュボードで SEPA ダイレクトデビットを有効にする必要があります。また、Sofort 利用規約と SEPA ダイレクトデビット利用規約に従う必要もあります。
Sofort での決済の受け付けは、支払いを追跡するための PaymentIntent (支払いインテント) オブジェクトの作成、支払い方法に関する情報と同意書承認の収集、および支払いを処理するための Stripe への送信で構成されます。Stripe は、PaymentIntent を使用して、支払いが完了するまでの支払いの状態のすべてを追跡して処理します。以降の支払いの PaymentIntent の作成には、最初の Sofort PaymentIntent から収集された SEPA ダイレクトデビット PaymentMethod の ID が使用されます。
Customer を作成するサーバー側
お客様のビジネスで顧客がアカウントを作成する際に、Customer を作成し、それを、そのアカウントを表す独自の内部表記と関連付けます。このようにすると、保存されている支払い方法の詳細を後で取得して使用することができます。
PaymentIntent を作成するサーバー側
サーバーで PaymentIntent
を作成し、回収する amount
、eur
通貨、顧客 ID を指定し、Setup future usage (今後の使用の設定) の引数として off_session を指定します。既存の Payment Intents のシステムがある場合は、sofort
を payment method types (支払い方法タイプ) のリストに追加します。
PaymentIntent には、支払い方法 ID と client secret が含まれています。これは、PaymentIntent オブジェクト全体を渡す代わりに、クライアント側で支払いプロセスを安全に完了するために使用されます。
支払い方法の詳細と同意書承認を収集するクライアント側
クライアントで支払いフォームを作成し、必要な請求先情報を顧客から収集します。
Stripe に支払いを送信するクライアント側
PaymentIntent オブジェクト全体をクライアントに送信するのではなく、ステップ 3 の client secret を使用します。これは、Stripe API リクエストを認証する API キーとは異なります。
ただし、client secret は支払いを完了できるため、慎重に取り扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩することがないようにしてください。
顧客が支払いを送信すると、Stripe は顧客を return_
にリダイレクトし、以下の URL クエリーパラメーターを含めます。返品ページでは、これらを使用して PaymentIntent のステータスを取得し、顧客に支払いステータスを表示できます。
return_
を指定する際に、返品ページで使用する独自のクエリパラメーターを追加することもできます。
パラメーター | 説明 |
---|---|
payment_ | PaymentIntent の一意の識別子。 |
payment_ | PaymentIntent オブジェクトの client secret。 |
顧客が自社のサイトにリダイレクトされたら、payment_
を使用して PaymentIntent をクエリし、顧客に取引ステータスを表示できます。
後日 SEPA ダイレクトデビット PaymentMethod に請求する
顧客に再び請求する必要が生じたときは、新しい PaymentIntent を作成します。以前の PaymentIntent を 取得し、latest_
フィールドを展開して payment_
内の generated_
ID を探すことで、SEPA ダイレクトデビットの支払い方法の ID を見つけます。
SEPA ダイレクトデビットの支払い方法 ID は、レスポンス内の payment_method_details にある generated_
ID になります。
{ "latest_charge": { "payment_method_details": { "sofort": { "bank_code": "VAPE", "bank_name": "VAN DE PUT & CO", "bics": "VAPEBE22", "iban_last4": "7061", "generated_sepa_debit": "pm_1GrddXGf98efjktuBIi3ag7aJQ", "preferred_language": "en", "verified_name": "Jenny Rosen" }, "type": "sofort" }, }, "payment_method_options": { "sofort": {}
SEPA ダイレクトデビットと顧客 ID を使用して PaymentIntent を作成します。
支払い後のイベントを処理する
Sofort は遅延通知型の支払い方法であるため、PaymentIntent のステータスは、作成から最大 14 日間 (カットオフ日とも呼ばれる)、payment_intent.processing 状態のままになります。テスト環境では、これをシミュレートするために、PaymentIntent のステータスが 3 分間処理中の状態のままとなります。
- Stripe では、処理中の状態の間に購入をフルフィルメントすることをお勧めします。平均して、処理中状態に入った後に Sofort の支払い試行が失敗する確率は 0.2% と予測されます。この方法は、Sofort の支払いの失敗率が低い Sofort にのみ適用でき、他の遅延通知型の支払い方法には適用できません。
- 必要に応じて、payment_intent.succeeded イベントを受け取った後にのみ注文をフルフィルメントすることもできます。Stripe では、支払いが確定され、売上が保証された後でこのイベントを送信します。
- 顧客が支払いを行わない場合、Stripe は payment_intent.failed イベントを送信し、PaymentIntent は
requires_
ステータスに戻ります。payment_ method
ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用して、これらのイベントを受信し、顧客への注文確認メールの送信、データベースへの売上の記録、配送ワークフローの開始などのアクションを実行します。
手動
Stripe ダッシュボードは、すべての Stripe での支払いの確認、メール領収書の送信、入金処理、または失敗した支払いの再試行に使用できます。
カスタムコード
Webhook ハンドラを作成してイベントをリッスンし、非同期型のカスタムの支払いフローを作成します。Stripe CLI を使用して、ローカルで Webhook 組み込みのテストとデバッグを行います。
事前構築のアプリ
オートメーションやマーケティングとセールスなどの一般的なビジネスイベントを、パートナーアプリケーションとの連携によって処理します。