SEPA ダイレクトデビットによるサブスクリプションを設定する
SEPA ダイレクトデビットを使用したサブスクリプションの作成と請求の方法をご紹介します。
Checkout セッションは、顧客の購入意向の詳細を表します。顧客がサブスクリプションを開始する場合は、Checkout セッションを作成します。顧客が Checkout セッションにリダイレクトされると、、顧客が購入を完了できる支払いフォームが Stripe に表示されます。顧客が購入を完了すると、サイトにリダイレクトされます。
Stripe を設定するサーバー側
任意の Stripe クライアントをインストールします。
Stripe CLI をインストールします (オプション)。CLI には Webhook のテストが用意されていて、これを実行することで商品および価格を作成できます。
その他のインストールオプションについては、Stripe CLI を使ってみるをご覧ください。
料金体系モデルを作成するダッシュボードStripe CLI
ダッシュボードまたは Stripe CLI で商品とその価格を作成します。
この例では、「基本」と「プレミアム」という 2 つのサービスレベルオプションがある固定価格のサービスを使用しています。サービスレベルオプションごとに、1 つの商品と 1 つの継続価格を作成する必要があります (初期費用のような 1 回限りの支払いを追加する場合は、1 回限りの価格で 3 つ目の商品を作成します。わかりやすくするために、この例には 1 回限りの支払いを含めていません)。
この例では、各商品が 1 カ月間隔で請求されます。基本商品の価格は 5 EUR で、プレミアム商品の価格は 15 EUR です。
他の料金体系モデルについては、Billing の例をご覧ください。
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 は、cancel_
に顧客を誘導して、ウェブサイトにリダイレクトします。これは通常、顧客が Checkout にリダイレクトされる前に表示していたウェブサイトのページです。
デフォルトでは、Checkout セッションは作成後 24 時間で期限が切れます。
ダッシュボードで、顧客が使用できる支払い方法を有効にします。Checkout は、複数の支払い方法に対応しています。
注意
次に挙げる理由により、支払い開始の検出時には、success_
へのリダイレクトのみに依存しないでください。
- 悪意を持つユーザが、支払いをせずに
success_
に直接アクセスし、商品やサービスにアクセスできるようになる可能性があります。url - 顧客が支払いの成功後に
success_
に到達するとは限りません。リダイレクトが発生する前に、顧客がブラウザタブを閉じることがあります。url
支払いが成功したことを確認する
顧客は支払いを完了すると、success_
パラメータで指定された URL にリダイレクトされます。通常、これはお客様の Web サイト上のページであり、支払いが成功したことを顧客に知らせます。
However, SEPA 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
.
次のように、複数の方法で支払いが成功したことを確認できます。
構築したシステムをテストする
組み込みのテストには、以下の IBAN を使用できます。各 IBAN に対応する支払い方法の詳細が収集されますが、支払い時にはそれぞれ異なる動作を示します。