StripeのBillingPortalを使ってみる(Rails5.2)


StripeのBillingPortalへのリンクを取得する方法です。前準備として、1.DashboardでBillingPortalの設定を済ませておくこと、2.Customer(顧客)のID(cus_xxxの部分)を予め取得しておくことが必要です。

app/controllers/pages_controller.rb
def foo
  @ps = Stripe::BillingPortal::Session.create(
    customer: "cus_xxxxxxxx",
    return_url: request.base_url
  )
end
app/views/pages/foo.html.erb
<%= link_to 'Portal', @ps.url, target: "_blank" %>

ユーザがリンクをクリックすると以下のようなページが表示されます。デフォルトの設定では支払い履歴が見えるのみですが、設定次第でサブスクリプションの解除や支払い方法の変更などもユーザの権限で実施することが可能になります(下記画像は「サブスクリプションの解除(Cancel Plan)」を許可した状態です)。