Stripeでは、ノーコード・ローコードに顧客マイページを作成できる「カスタマーポータル」が利用できます。
カスタマーポータルでユーザーが閲覧・操作できる内容については、ダッシュボードから設定が可能です。
ユーザーごとに閲覧・操作範囲を変更する方法
チームで利用することを想定したシステムでは、「契約ユーザーは契約内容を変更できるが、それ以外のユーザーには閲覧以外の操作を禁止したい」などの要件が発生します。
この場合、Stripeのカスタマーポータルでは、APIを利用して複数の設定を利用できます。
const config = await stripe.billingPortal.configurations.create({
business_profile: {
headline: '請求履歴閲覧用',
},
features: {
invoice_history: {
enabled: true,
},
},
});
{
"id": "bpc_1xxxxx",
...
APIで設定する場合、明示的にenabled: true
を設定していない項目は操作できません。
APIで作成した設定を適用するには、作成した設定のID(bpc_xxx
)をカスタマーポータルセッション作成時のIDとして設定します。
const session = await this.stripe.billingPortal.sessions.create({
+ configuration: "bpc_1xxxxx",
customer: 'cus_xxxx'
})
上記の設定の場合、請求履歴と契約中のサブスクリプション情報の閲覧だけが可能なマイページが表示されます。
サブスクリプションの休止やキャンセル・決済方法の更新などを有効化する設定を追加してみましょう。
const config = await stripe.billingPortal.configurations.create({
business_profile: {
headline: '請求履歴閲覧用',
},
features: {
invoice_history: {
enabled: true,
},
+ payment_method_update: {
+ enabled: true,
+ },
+ subscription_cancel: {
+ enabled: true,
+ },
+ subscription_pause: {
+ enabled: true,
+ }
},
});
新しい設定でカスタマーポータルのセッションを開始すると、表示内容が変化します。
認証系サービスなどと組み合わせて活用しよう
アカウントの親子関係や権限設定を持つサービスでは、自前のDBや認証系サービスに権限情報を保持しています。
これらのデータと、カスタマーポータルの設定IDの関連付けを行うことで、「管理者はカスタマーポータルの機能をフルに利用できる」「一般ユーザーは、閲覧や請求書PDFのDLのみ」のようなマイページの権限設定を簡単に実現できます。
関連ドキュメント
[PR] Stripe開発者向け情報をQiitaにて配信中!
2021年12月よりQiitaにて、Stripe開発者のためのブログ記事更新を開始しました。
- [Stripe Updates]:開発者向けStripeアップデート紹介・解説
- ユースケース別のStripe製品や実装サンプルの紹介
- Stripeと外部サービス・OSSとの連携方法やTipsの紹介
- 初心者向けのチュートリアル(予定)
など、Stripeを利用してオンラインビジネスを始める方法について随時更新してまいります。