Webサービスの申込画面などでは、「利用規約に同意する」アクションを設けることがあります。
「チェックボックスがオンの時のみ、submit操作できる」実装が必要になりますが、Stripeのリダイレクト型決済(Checkout / Payment Links)では、より簡単に対応できます。
事前準備: Stripeアカウントに利用規約URLを設定しよう
「利用規約への同意」機能を設定するには、Stripeアカウントに利用規約URLを登録する必要があります。
[設定 > 公開ビジネス設定]から、[利用規約]URLを設定しましょう。
なお、[特定商取引法に基づく表記]も入力が必要です。
これからアカウントを作られる方は、こちらも忘れずに設定しましょう。
URLの保存ができていれば、準備完了です。
Payment Linksで、利用規約の同意機能を設定する方法
もっとも簡単に試す方法は、Payment Linksを使うことです。
まず、Payment Linksの作成または作成済みのPayment Linksの編集画面を開きましょう。
[利用規約URL]が保存できていれば、[詳細設定]を開くと[顧客に利用規約の承認を求める]チェックボックスが表示されます。
このチェックボックスをオンにするだけで、決済画面に「利用規約への同意」チェックボックスが追加されます。
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.create
APIの引数を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'
+ }
})
もし「特定条件では表示させる必要がない」ケースが発生した場合は、required
をnone
に変更しましょう。
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本ペースで更新中です。