4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Stripe Checkout / Payment Linksの注文・サブスクリプション申込画面で、「利用規約に同意する」チェックボックスを表示する方法

Posted at

Webサービスの申込画面などでは、「利用規約に同意する」アクションを設けることがあります。

スクリーンショット 2022-09-26 16.35.03.png

「チェックボックスがオンの時のみ、submit操作できる」実装が必要になりますが、Stripeのリダイレクト型決済(Checkout / Payment Links)では、より簡単に対応できます。

事前準備: Stripeアカウントに利用規約URLを設定しよう

「利用規約への同意」機能を設定するには、Stripeアカウントに利用規約URLを登録する必要があります。

[設定 > 公開ビジネス設定]から、[利用規約]URLを設定しましょう。

スクリーンショット 2022-09-26 16.39.27.png

なお、[特定商取引法に基づく表記]も入力が必要です。
これからアカウントを作られる方は、こちらも忘れずに設定しましょう。

URLの保存ができていれば、準備完了です。

Payment Linksで、利用規約の同意機能を設定する方法

もっとも簡単に試す方法は、Payment Linksを使うことです。

まず、Payment Linksの作成または作成済みのPayment Linksの編集画面を開きましょう。

[利用規約URL]が保存できていれば、[詳細設定]を開くと[顧客に利用規約の承認を求める]チェックボックスが表示されます。

スクリーンショット 2022-09-26 16.45.06.png

このチェックボックスをオンにするだけで、決済画面に「利用規約への同意」チェックボックスが追加されます。

APIで設定する方法

APIでPayment Linksを作成する場合、consent_collection.terms_of_serviceを利用して有効化できます。

    await stripe.paymentLinks.create({
      line_items: [{
        price: 'price_1XXXXXXX',
        quantity: 1
      }],
+      consent_collection: {
+        terms_of_service: 'required'
+      }      
    })

Checkoutで、利用規約への同意機能を設定する方法

Checkoutを利用している場合は、checkout.sessions.createAPIの引数を1つ追加します。

    await stripe.checkout.sessions.create({
      line_items: [{
        price: 'price_1XXXXXXX',
        quantity: 1
      }],
      currency: 'jpy',
      mode: 'subscription',
      success_url: 'https://example.com',
      cancel_url: 'https://example.com',
+      consent_collection: {
+        terms_of_service: 'required'
+      }      
    })

もし「特定条件では表示させる必要がない」ケースが発生した場合は、requirednoneに変更しましょう。

    await stripe.checkout.sessions.create({
      line_items: [{
        price: 'price_1XXXXXXX',
        quantity: 1
      }],
      currency: 'jpy',
      mode: 'subscription',
      success_url: 'https://example.com',
      cancel_url: 'https://example.com',
      consent_collection: {
-        terms_of_service: 'required'
+        terms_of_service: ANY_CONDITION ? 'none' : 'required'
      }      
    })

Documents


[PR] Stripe開発者向け情報をQiitaにて配信中!

  • [Stripe Updates]:開発者向けStripeアップデート紹介・解説
  • ユースケース別のStripe製品や実装サンプルの紹介
  • Stripeと外部サービス・OSSとの連携方法やTipsの紹介
  • 初心者向けのチュートリアル(予定)

など、Stripeを利用してオンラインビジネスを始める方法について週に2〜3本ペースで更新中です。

-> Stripe Organizationsをフォローして最新情報をQiitaで受け取る

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?