Bancontact による支払いの受け付け
ベルギーで一般的な支払い方法である Bancontact を受け付ける方法をご紹介します。
Bancontact は 1 回限りの使用の決済手段であり、顧客は支払いの認証を求められます。Bancontact を使用して支払う場合、顧客はアプリからリダイレクトされ、支払いを承認するとアプリに戻されます。ここで、お客様は支払いが成功したか失敗したかに関する即時通知を受け取ります。
注
Bancontact のご利用にあたっては、Bancontact 利用規約に従う必要があります。
PaymentIntent を作成するサーバー側
PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を表すオブジェクトで、決済プロセスのライフサイクルの各段階を追跡します。
サーバーで PaymentIntent を作成し、回収する金額と eur 通貨を指定します (Bancontact は他の通貨に対応していません)。既存の Payment Intents のシステムがある場合は、bancontact を決済手段タイプのリストに追加します。
Bancontact オーソリページのデフォルト言語は英語 (en) に設定されています。preferred_ を fr、nl、または de に設定し、顧客の希望言語に合わせることもできます。
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
Stripe に支払いを送信するクライアント側
PaymentIntent の client secret を使用し、クライアント側で支払いを作成します。client secret は、 Stripe API リクエストを認証する API キーとは異なります。client secret は支払いを完了できるため、慎重に取り扱う必要があります。ログに記録したり、URL に埋め込んだり、当該の顧客以外に公開したりしないでください。
リダイレクトを処理する
Stripe が顧客を return_ にリダイレクトする際に、以下の URL クエリパラメータが提供されます。
| パラメータ | 説明 |
|---|---|
payment_ | PaymentIntent の一意の識別子。 |
payment_ | PaymentIntent オブジェクトの client secret。 |
return_ を指定する際に、独自のクエリパラメータを追加することもできます。このクエリパラメータは、リダイレクトプロセスの始めから終わりまで存続します。return_ は、支払いのステータスを提供する Web サイトのページと一致している必要があります。戻りページをレンダリングするときに、PaymentIntent のステータスを確認してください。確認するには、Stripe.js の retrievePaymentIntent 関数を使用し、payment_ を渡します。
(async () => { const url = new URL(window.location); const clientSecret = url.searchParams.get('payment_intent_client_secret'); const {paymentIntent, error} = await stripe.retrievePaymentIntent(clientSecret); if (error) { // Handle error } else if (paymentIntent && paymentIntent.status === 'succeeded') { // Handle successful payment } })();
銀行口座の詳細
顧客が支払いの実行に使用した銀行口座の詳細は、結果として生じた支払いの payment_method_details (支払い方法詳細) で確認できます。
{ "charges": { "data": [ { "payment_method_details": { "bancontact": { "bank_code": "VAPE", "bank_name": "VAN DE PUT & CO", "bics": "VAPEBE22", "iban_last4": "7061", "preferred_language": "en", "verified_name": "Jenny Rosen" }, "type": "bancontact" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source",
オプション支払い後のイベントを処理する
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
ダッシュボードでイベントを手動で処理する
ダッシュボードを使用して、テスト決済をダッシュボードで表示したり、メール領収書を送信したり、入金を処理したり、失敗した決済を再試行したりできます。
Custom Webhook を構築する
Custom 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 エンドポイントを設定することをお勧めします。