Stripeのカスタマーポータルのアクセス方法を整理する
Stripeにはカスタマーポータル機能があります。 カスタマーポータルでは、利用者がさまざまなことを閲覧・更新できます。
- サブスクリプションのプラン変更やキャンセル
- 請求先情報の更新(名前・メールアドレス・住所・など)
- 支払履歴の閲覧
- など
ECサイトやサービスの利用者にこれらの機能を提供したい場合、Stripeのカスタマーポータルで十分であれば、追加で開発する必要はありません。 本記事では、このカスタマーポータルのアクセス方法を整理してみました。
おすすめの方
- Stripeのカスタマーポータルについて知りたい方
カスタマーポータルの有効化
設定画面でカスタマーポータルを有効化します。
- https://dashboard.stripe.com/test/settings/billing/portal
カスタマーポータルのURLが生成されました。
カスタマーポータルにアクセスする方法
ユーザがカスタマーポータルにアクセスする方法は、大きく2つあります。
- ユーザがカスタマーポータルのトップ画面を表示し、メールで一時的なURLをもらってアクセスする
- APIでユーザ用の一時的なURLを発行し、ユーザに提示し、ユーザがアクセスする
ユーザがカスタマーポータルのトップ画面を表示し、メールで一時的なURLをもらってアクセスする
さきほどのカスタマーポータルのURLにアクセスすると、メールアドレスの入力画面が表示されます。
メールアドレスを入力すると、一時的なURLがメールで届きます。
メールのURLにアクセスすると、カスタマーポータルが表示されます。
APIでユーザ用の一時的なURLを発行し、ユーザに提示し、ユーザがアクセスする
カスタマーポータルのセッション作成APIを利用します。
stripe billing_portal sessions create \ --customer=cus_NrWGCTXEqvS00M
レスポンスのURLにアクセスすると、カスタマーポータルが表示されます。
同じメールアドレスでもカスタマーが異なる場合の動作に注意する
カスタマーポータルは、上記API利用でもあるように、特定のカスタマーの情報を表示します。 そのため、同じメールアドレスでもカスタマーが異なるなら、片方のカスタマーの内容のみが表示されます。
また、ユーザがメールアドレスを入力してカスタマーポータルにアクセスするとき、同じメールアドレスに対するカスタマーが複数ある場合に「どちらのカスタマーを利用するか?」の制御はできないようです。
このような「同じメールアドレスでもカスタマーが異なる状況」は、下記の利用で発生します。
- 不特定多数が利用する想定のPayment Linkで支払いをした場合
- Stripeが自動で新しいカスタマーを作成する
- Checkoutセッション作成時にカスタマーを指定しない場合
- Stripeが自動で新しいカスタマーを作成する
カスタマーポータルの利用を予定している場合は、これらの動作を考慮したうえで、Stripeの実装方法を検討すると良さそうです。
さいごに
カスタマーの考慮(同じメールアドレスでもカスタマーが異なる場合)に注意が必要ですが、それ以外はシンプルです。 どなたかの参考になれば幸いです。