Stripeのカスタマーポータルのアクセス方法を整理する

Stripeのカスタマーポータルのアクセス方法を整理してみました。
2023.06.13

Stripeにはカスタマーポータル機能があります。 カスタマーポータルでは、利用者がさまざまなことを閲覧・更新できます。

  • サブスクリプションのプラン変更やキャンセル
  • 請求先情報の更新(名前・メールアドレス・住所・など)
  • 支払履歴の閲覧
  • など

ECサイトやサービスの利用者にこれらの機能を提供したい場合、Stripeのカスタマーポータルで十分であれば、追加で開発する必要はありません。 本記事では、このカスタマーポータルのアクセス方法を整理してみました。

おすすめの方

  • Stripeのカスタマーポータルについて知りたい方

カスタマーポータルの有効化

設定画面でカスタマーポータルを有効化します。

  • https://dashboard.stripe.com/test/settings/billing/portal

Stripeのカスタマーポータルを有効化する

カスタマーポータルのURLが生成されました。

Stripeのカスタマーポータルを有効化した

カスタマーポータルにアクセスする方法

ユーザがカスタマーポータルにアクセスする方法は、大きく2つあります。

  • ユーザがカスタマーポータルのトップ画面を表示し、メールで一時的なURLをもらってアクセスする
  • APIでユーザ用の一時的なURLを発行し、ユーザに提示し、ユーザがアクセスする

ユーザがカスタマーポータルのトップ画面を表示し、メールで一時的なURLをもらってアクセスする

さきほどのカスタマーポータルのURLにアクセスすると、メールアドレスの入力画面が表示されます。

Stripeのカスタマーポータにアクセスした

メールアドレスを入力すると、一時的なURLがメールで届きます。

Stripeのカスタマーポータルでメールアドレスを入力した

Stripeからカスタマーポータルにアクセスするためのメールが届いた

メールのURLにアクセスすると、カスタマーポータルが表示されます。

Stripeのカスタマーポータルで利用情報が表示された

APIでユーザ用の一時的なURLを発行し、ユーザに提示し、ユーザがアクセスする

カスタマーポータルのセッション作成APIを利用します。

stripe billing_portal sessions create \
  --customer=cus_NrWGCTXEqvS00M

レスポンスのURLにアクセスすると、カスタマーポータルが表示されます。

Stripeのカスタマーポータルで利用情報が表示された

同じメールアドレスでもカスタマーが異なる場合の動作に注意する

カスタマーポータルは、上記API利用でもあるように、特定のカスタマーの情報を表示します。 そのため、同じメールアドレスでもカスタマーが異なるなら、片方のカスタマーの内容のみが表示されます。

Stirpeでメールアドレスが同じだけど異なるカスタマーが存在する様子

また、ユーザがメールアドレスを入力してカスタマーポータルにアクセスするとき、同じメールアドレスに対するカスタマーが複数ある場合に「どちらのカスタマーを利用するか?」の制御はできないようです。

このような「同じメールアドレスでもカスタマーが異なる状況」は、下記の利用で発生します。

  • 不特定多数が利用する想定のPayment Linkで支払いをした場合
    • Stripeが自動で新しいカスタマーを作成する
  • Checkoutセッション作成時にカスタマーを指定しない場合
    • Stripeが自動で新しいカスタマーを作成する

カスタマーポータルの利用を予定している場合は、これらの動作を考慮したうえで、Stripeの実装方法を検討すると良さそうです。

さいごに

カスタマーの考慮(同じメールアドレスでもカスタマーが異なる場合)に注意が必要ですが、それ以外はシンプルです。 どなたかの参考になれば幸いです。

参考