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",