Bancontact での支払い中に銀行詳細を保存する
Bancontact での支払いから顧客の IBAN 銀行詳細を保存する方法をご紹介します。
注意
支払い中に支払いの詳細を保存するためのガイドに従うことをお勧めします。すでに Elements との連携が完了している場合は、Payment Element 移行ガイドをご覧ください。
Bancontact はベルギーで普及している 1 回限りの使用の支払い方法であり、顧客は支払いの認証を求められます。Bancontact を使用して支払う場合、顧客はお客様のウェブサイトからリダイレクトされ、支払いをオーソリすると、ウェブサイトに戻されます。ここで、お客様は支払いが成功したか失敗したかについて即時の通知を受け取ります。
Bancontact を使用して、顧客の IBAN 銀行詳細を SEPA ダイレクトデビット PaymentMethod に保存できます。その後、SEPA ダイレクトデビット PaymentMethod を使用して、支払いを受け付けたり、サブスクリプションを設定したりできます。これにより、顧客が IBAN の入力を繰り返す必要がなくなるため、顧客の負担が軽減されます。また、確認済みの氏名と検証済みの IBAN を受け取ります。
注意
Bancontact を使用して SEPA ダイレクトデビットの支払いを設定するには、ダッシュボードで SEPA ダイレクトデビットを有効にする必要があります。また、Bancontact 利用規約および SEPA ダイレクトデビット利用規約に従う必要もあります。
Bancontact での支払いの受け付けは、支払いを追跡するための PaymentIntent (支払いインテント) オブジェクトの作成、支払い方法に関する情報と同意書承認の収集、および支払いを処理するための Stripe への送信で構成されます。Stripe は、PaymentIntent を使用して、支払いが完了するまでの支払いの状態のすべてを追跡して処理します。以降の支払いの作成には、最初の Bancontact PaymentIntent から収集された SEPA ダイレクトデビット PaymentMethod の ID が使用されます。
Customer を作成するサーバー側
お客様のビジネスで顧客がアカウントを作成する際に、Customer を作成し、それを、そのアカウントを表す独自の内部表記と関連付けます。このようにすると、保存されている支払い方法の詳細を後で取得して使用することができます。
PaymentIntent を作成するサーバー側
サーバーで PaymentIntent
を作成し、回収する amount
、eur
通貨、顧客 ID を指定し、Setup future usage (今後の使用の設定) の引数として off_session を指定します。既存の Payment Intents のシステムがある場合は、bancontact
を決済手段タイプ のリストに追加します。
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
支払い方法の詳細と同意書承認を収集するクライアント側
クライアントで支払いフォームを作成し、必要な請求先情報を顧客から収集します。
Stripe に支払いを送信するクライアント側
PaymentIntent の client secret を使用し、クライアント側で支払いを作成します。client secret は、 Stripe API リクエストを認証する API キーとは異なります。client secret は支払いを完了できるため、慎重に取り扱う必要があります。ログに記録したり、URL に埋め込んだり、当該の顧客以外に公開したりしないでください。
顧客が支払いを送信すると、Stripe は顧客を return_
にリダイレクトし、以下の URL クエリーパラメーターを含めます。返品ページでは、これらを使用して PaymentIntent のステータスを取得し、顧客に支払いステータスを表示できます。
return_
を指定する際に、返品ページで使用する独自のクエリパラメーターを追加することもできます。
パラメーター | 説明 |
---|---|
payment_ | PaymentIntent の一意の識別子。 |
payment_ | PaymentIntent オブジェクトの client secret。サブスクリプションの実装の場合、この client_secret は confirmation_ を通じて Invoice オブジェクトでも公開されます |
顧客が自社のサイトにリダイレクトされたら、payment_
を使用して PaymentIntent をクエリし、顧客に取引ステータスを表示できます。
後日 SEPA ダイレクトデビット PaymentMethod に請求する
顧客に再び請求する必要が生じたときは、新しい PaymentIntent を作成します。以前の PaymentIntent を 取得し、latest_
フィールドを展開して payment_
内の generated_
ID を探すことで、SEPA ダイレクトデビットの支払い方法の ID を見つけます。
SEPA ダイレクトデビットの決済手段 ID は、レスポンス内の payment_method_details にある generated_
ID になります。
{ "latest_charge": { "payment_method_details": { "bancontact": { "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": "bancontact" }, }, "payment_method_options": { "bancontact": {}
SEPA ダイレクトデビットと顧客 ID を使用して PaymentIntent を作成します。
オプション支払い後のイベントを処理する
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
イベントを受信し、ビジネスアクションを実行する
ビジネスアクションを受信して実行するためのいくつかのオプションがあります。
手動
Stripe ダッシュボードは、すべての Stripe での支払いの確認、メール領収書の送信、入金処理、または失敗した支払いの再試行に使用できます。
カスタムコード
Webhook ハンドラを作成してイベントをリッスンし、非同期型のカスタムの支払いフローを作成します。Stripe CLI を使用して、ローカルで Webhook 組み込みのテストとデバッグを行います。
事前構築のアプリ
オートメーションやマーケティングとセールスなどの一般的なビジネスイベントを、パートナーアプリケーションとの連携によって処理します。
オプションBancontact リダイレクトを手動で処理する
クライアント側で confirmBancontactPayment
を使用して Bancontact のリダイレクトおよび支払いを処理するには、Stripe.js を使用することをお勧めします。Stripe.js を使用すると、他の決済手段にも対応するように実装を拡張できます。ただし、以下の手順に従って、お客様のサーバーに顧客を手動でリダイレクトすることもできます。
タイプが
bancontact
の PaymentIntent を作成し、確定します。顧客から収集する必要があるpayment_
プロパティを提供する必要があります。method_ data. billing_ details. name payment_
を指定すると、PaymentMethod が作成され、この PaymentIntent でただちに使用されることに注意してください。method_ data また、顧客が支払いを完了した後にリダイレクトされる先の URL を
return_
フィールドに指定する必要があります。オプションで、独自のクエリパラメータをこの URL に指定することもできます。これらのパラメータは、リダイレクトフロー完了時の最終的な URL に含められます。url
PaymentIntent
のステータスがrequires_
であることと、action next_
のタイプがaction redirect_
であることを確認します。to_ url
{ "status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", ... }
next_
プロパティで指定された URL に顧客をリダイレクトします。ここでのコード例はおおまかなものであり、リダイレクト方法は、お客様のウェブフレームワークによって異なることがあります。action. redirect_ to_ url. url
支払いプロセスが完了すると、顧客は return_
にリダイレクトされます。payment_
および payment_
URL クエリパラメーターは、お客様独自のクエリパラメーターと併せて含まれています。支払いのステータスをプログラムで確認するために、Webhook エンドポイントを設定することをお勧めします。