Bacs ダイレクトデビットによるサブスクリプションを設定する
Bacs ダイレクトデビットを使用したサブスクリプションの作成と請求の方法をご紹介します。
このガイドを使用して、決済手段として Bacs ダイレクトデビットを使用し、Checkout を使用するサブスクリプションを設定します。
継続支払いの商品と価格を作成する
注意
Checkout を使用するには、まず商品と価格を作成する必要があります。物品やサービスレベルごとに商品を作成します。各商品の料金体系は 1 つ以上の価格で示されます。
たとえば、10 USD/月、100 USD/年、9 GBP/月、90 GBP/年の、4 つの「価格」が設定されたソフトウェア「商品」を作成できます。これにより、対象商品の詳細を変更せずに価格を変更したり追加したりできます。商品と価格は、API を通じて、または Stripe ダッシュボードを使用して作成できます。
価格が購入時に決定される場合 (顧客が寄付金額を設定する場合など)、または事前に価格を作成しない選択をした場合は、Checkout セッションの作成時に価格をインラインで作成することができます。
Checkout セッションを作成するクライアント側サーバ側
ウェブサイトに決済ボタンを追加し、サーバー側のエンドポイントを呼び出して Checkout セッションを作成します。
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
既存の Price の ID を使用して Checkout セッションを作成します。モードが subscription
に設定されており、1 つ以上の継続価格を渡すことを確認してください。継続価格に加えて、1 回限りの価格を追加できます。Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。
顧客が支払いを正常に完了すると、success_
(支払いが成功したことを顧客に通知するウェブページ) にリダイレクトされます。上記の例のように、success_
に {CHECKOUT_
テンプレート変数を含めることで、成功ページでセッション ID が使用できるようになります。
顧客が支払いを完了せずに Checkout セッションでお客様のロゴをクリックすると、Checkout は、Web サイトの cancel_
に顧客をリダイレクトします。これは通常、顧客が Checkout にリダイレクトされる前に表示していた Web サイトのページです。
デフォルトでは、Checkout セッションは作成後 24 時間で期限が切れます。
ダッシュボードで、顧客が使用できる支払い方法を有効にします。Checkout は、複数の支払い方法に対応しています。
注意
次に挙げる理由により、支払い開始の検出時には、success_
へのリダイレクトのみに依存しないでください。
- 悪意を持つユーザが、支払いをせずに
success_
に直接アクセスし、商品やサービスにアクセスできるようになる可能性があります。url - 顧客が支払いの成功後に
success_
に到達するとは限りません。リダイレクトが発生する前に、顧客がブラウザタブを閉じることがあります。url
支払いが成功したことを確認する
顧客は支払いを完了すると、success_
パラメータで指定された URL にリダイレクトされます。通常、これはお客様の Web サイト上のページであり、支払いが成功したことを顧客に知らせます。
However, Bacs Direct Debit is a delayed notification payment method, which means that funds aren’t immediately available. Because of this, delay order fulfillment until the funds are available. After the payment succeeds, the underlying PaymentIntent status changes from processing
to succeeded
.
次のように、複数の方法で支払いが成功したことを確認できます。
組み込みをテストする
There are several test bank account numbers you can use in a sandbox to make sure this integration is ready.
銀行コード | 口座番号 | 説明 |
---|---|---|
10-88-00 | 00012345 | 支払いが成功し、請求書が paid に変化します。 |
10-88-00 | 90012345 | 支払いが 3 分後に成功し、請求書が paid に変化します。 |
10-88-00 | 33333335 | 支払いが debit_ エラーコードによって失敗し、請求書が open に変化します。同意書は inactive になり、この PaymentMethod を再び使用することはできません。 |
10-88-00 | 93333335 | 支払いが debit_ エラーコードによって 3 分後に失敗し、請求書が open に変化します。同意書は inactive になり、この PaymentMethod を再び使用することはできません。 |
10-88-00 | 22222227 | 支払いが insufficient_ エラーコードによって失敗し、請求書が open に変化します。この同意書は active のままで、PaymentMethod は再使用が可能です。 |
10-88-00 | 92222227 | 支払いが insufficient_ エラーコードによって 3 分後に失敗し、請求書が open に変化します。この同意書は active のままで、PaymentMethod は再使用が可能です。 |
10-88-00 | 55555559 | 支払いが 3 分後に成功し、Invoice が paid に変わりますが、不審請求の申請が直ちに作成されます。 |
10-88-00 | 00033333 | 支払い方法の作成は成功しますが、同意書が顧客の銀行によって拒否され、即座に inactive に変化します。 |
10-88-00 | 00044444 | Bacs ダイレクトデビットの設定を求めるリクエストが、口座番号が無効なため即座に失敗し、顧客は送信前に情報を更新するように求められます。支払いの詳細は回収されません。 |
テストの実行には前述の任意の口座番号を使用できます。ただし、Bacs ダイレクトデビットによる支払いは処理に数日かかるため、3 分の遅延で動作するテスト用口座番号を使用して、本番環境の支払いの動作のシミュレーションをしやすくします。
注
By default, Stripe automatically sends emails to the customer when payment details are initially collected and each time a debit will be made on their account. These notifications aren’t sent in sandboxes.