Bacs ダイレクトデビットによるサブスクリプションを設定する
Checkout Session (Checkout セッション) は、顧客の購入意図の詳細を表すものです。顧客がサブスクリプションの開始を希望したらセッションを作成します。顧客が Checkout セッションにリダイレクトされると、Stripe は支払いフォームを表示します。顧客はここで購入を完了できます。顧客が購入を完了すると、元のサイトにリダイレクトされます。
継続支払いの商品と価格を作成する
注意
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 を使用してセッションを作成します。モードが subscription
に設定されていることを確認し、少なくとも 1 つは継続的な価格を渡してください。継続的な価格に加えて 1 回限りの価格も追加できます。Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。
顧客は支払いを正常に完了すると、success_url
にリダイレクトされます。これはお客様のウェブサイト上にある、支払いが成功したことを顧客に知らせるページです。上記の例のように success_url
に {CHECKOUT_SESSION_ID}
テンプレート変数を含めることによって、成功ページでセッション ID を使用できるようにします。
顧客が支払いを完了せずに Checkout セッションでお客様のロゴをクリックすると、Checkout は、Web サイトの cancel_url
に顧客をリダイレクトします。これは通常、顧客が Checkout にリダイレクトされる前に表示していた Web サイトのページです。
Checkout セッションは作成後 24 時間で期限切れとなります。
ダッシュボードで、受け付けの対象とする支払い方法を有効にします。Checkout は、複数の支払い方法に対応しています。
注意
次に挙げる理由により、支払い開始の検出時には、success_url
へのリダイレクトのみに依存しないでください。
- 悪意を持つユーザが、支払いをせずに
success_url
に直接アクセスし、商品やサービスにアクセスできるようになる可能性があります。 - 顧客が支払いの成功後に
success_url
に到達するとは限りません。リダイレクトが発生する前に、顧客がブラウザタブを閉じることがあります。
支払いが成功したことを確認する
顧客は支払いを完了すると、success_url
パラメータで指定された URL にリダイレクトされます。通常、これはお客様の Web サイト上のページであり、支払いが成功したことを顧客に知らせます。
ただし、Bacs Direct Debit は通知遅延型の決済手段であるため、売上はすぐには利用可能になりません。Bacs Direct Debit の支払いは通常、売上が利用可能になるまでに three 営業日かかります。このため、売上が利用可能になるまで注文のフルフィルメントを保留する必要があります。支払いが成功すると、基になる PaymentIntent のステータスが processing
から succeeded
に変わります。
次のように、複数の方法で支払いが成功したことを確認できます。
組み込みをテストする
組み込みの準備ができていることを確認するために、テスト環境で使用できる銀行口座番号が複数あります。
銀行コード | 口座番号 | 説明 |
---|---|---|
10-88-00 | 00012345 | 支払いが成功し、請求書が paid に変化します。 |
10-88-00 | 90012345 | 支払いが 3 分後に成功し、請求書が paid に変化します。 |
10-88-00 | 33333335 | 支払いが debit_not_authorized エラーコードによって失敗し、請求書が open に変化します。同意書は inactive になり、この PaymentMethod を再び使用することはできません。 |
10-88-00 | 93333335 | 支払いが debit_not_authorized エラーコードによって 3 分後に失敗し、請求書が open に変化します。同意書は inactive になり、この PaymentMethod を再び使用することはできません。 |
10-88-00 | 22222227 | 支払いが insufficient_funds エラーコードによって失敗し、請求書が open に変化します。この同意書は active のままで、PaymentMethod は再使用が可能です。 |
10-88-00 | 92222227 | 支払いが insufficient_funds エラーコードによって 3 分後に失敗し、請求書が open に変化します。この同意書は active のままで、PaymentMethod は再使用が可能です。 |
10-88-00 | 55555559 | 支払いが 3 分後に成功し、Invoice が paid に変わりますが、不審請求の申請が直ちに作成されます。 |
10-88-00 | 00033333 | 決済手段の作成は成功しますが、同意書が顧客の銀行によって拒否され、即座に inactive に変化します。 |
10-88-00 | 00044444 | Bacs ダイレクトデビットの設定を求めるリクエストが、口座番号が無効なため即座に失敗し、顧客は送信前に情報を更新するように求められます。支払いの詳細は回収されません。 |
テストの実行には前述の任意の口座番号を使用できます。ただし、Bacs ダイレクトデビットによる支払いは処理に数日かかるため、3 分の遅延で動作するテスト用口座番号を使用して、本番環境の支払いの動作のシミュレーションをしやすくします。
注
デフォルトでは、Stripe は支払いの詳細が最初に収集されたときと、顧客の口座から引き落としが行われるたびに、顧客にメールを送信します。テスト環境では、これらの通知は送信されません。