Sofort および SEPA ダイレクトデビットによるサブスクリプションを設定する
Sofort および SEPA ダイレクトデビットを使用したサブスクリプションの作成と請求の方法をご紹介します。
警告
New businesses can’t accept SOFORT payments and our financial partners are in the process of discontinuing SOFORT. For more information, read our support page.
Sofort は 1 回限りの使用の支払い方法で、支払いごとに顧客の認証が必要となります。支払いが認証されると、Stripe は顧客の IBAN を SEPA ダイレクトデビット支払い方法に保存します。それ以降は、SEPA ダイレクトデビット支払い方法を使用して将来の決済を受け付けることができます。
このシステムでは、Stripe は、最初のサブスクリプションの支払いを Sofort で請求して、顧客の銀行口座の詳細を収集します。無料トライアルを提供している場合、Stripe は Sofort を通して顧客に 1 EUR を請求し、銀行口座の詳細を収集して、すぐに返金します。
Checkout セッションは、顧客の購入意図の詳細を表すものです。顧客がサブスクリプションを開始しようとしたときにセッションを作成します。Checkout セッションに顧客がリダイレクトされると、購入完了のための決済フォームが表示されます。顧客は購入を完了すると、元のサイトにリダイレクトされます。
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 を使用してセッションを作成します。モードが subscription
に設定されていることを確認し、少なくとも 1 つは継続的な価格を渡してください。継続的な価格に加えて 1 回限りの価格も追加できます。Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。
セッションの作成時には、payment_
を指定することも、ダッシュボードの設定に基づいて支払い方法が自動的に選択されるようにすることもできます。payment_
を指定しない場合は、ダッシュボードで Sofort の継続支払いを有効にする必要があります。これにより、SEPA ダイレクトデビットは Sofort の継続支払いにのみ有効になりますが、SEPA ダイレクトデビットの支払いが単独の支払い方法として有効になることはありません。
顧客は支払いを正常に完了すると、success_
にリダイレクトされます。これはお客様のウェブサイト上にあり、支払いの成功を顧客に知らせるページです。上記の例のように success_
に {CHECKOUT_
テンプレート変数を含めて、成功ページでセッション ID を使用できるようにします。
顧客が支払いを完了せずに Checkout セッションでお客様のロゴをクリックすると、Checkout は、cancel_
に顧客を誘導して、ウェブサイトにリダイレクトします。これは通常、顧客が Checkout にリダイレクトされる前に表示していたウェブサイトのページです。
デフォルトでは、Checkout セッションは作成後 24 時間で期限が切れます。
注意
次に挙げる理由により、支払い開始の検出時には、success_
へのリダイレクトのみに依存しないでください。
- 悪意を持つユーザが、支払いをせずに
success_
に直接アクセスし、商品やサービスにアクセスできるようになる可能性があります。url - 顧客が支払いの成功後に
success_
に到達するとは限りません。リダイレクトが発生する前に、顧客がブラウザタブを閉じることがあります。url
支払いが成功したことを確認する
顧客は支払いを完了すると、success_
パラメーターで指定された URL にリダイレクトされます。通常、このページは、お客様のウェブサイト上にある、支払いが成功したことを顧客に知らせるページです。
Sofort は通知遅延型の支払い方法であるため、売上はすぐには利用可能になりません。Sofort の支払いは通常、売上が利用可能になるまでに最長で 14 営業日かかります。このため、売上が利用可能になるまで注文のフルフィルメントを保留する必要があります。支払いが成功すると、基になる PaymentIntent のステータスが processing
から succeeded
に変わります。
Stripe では、processing
の状態の間に注文をフルフィルメントすることをお勧めしています。平均して、processing
の状態に入った後に Sofort の支払い試行が失敗する確率は約 0.2% です。
支払いが成功したことを確認する方法はいくつかあります。
構築したシステムをテストする
テスト用 API キーを使用して、支払い方法として Sofort を選択し、登録ボタンをクリックします。確定すると、支払いをオーソリまたは失敗させるオプションのあるテストページにリダイレクトされます。テスト環境では、Sofort の支払いは 3 分間保留されたままになります。
- Authorize test payment (テスト支払いをオーソリする) をクリックして、設定成功のケースをテストします。
- Fail test payment (テスト支払いを失敗させる) をクリックして、顧客が認証に失敗するケースをテストします。