LoginSignup
1
2

More than 1 year has passed since last update.

rails+stripeでカスタマーポータル導入

Last updated at Posted at 2021-07-01

やること

  • stripeで継続課金
  • クレジットカードの情報を編集したい
  • でもクレジットカードの情報をやりとりしたり安全なフォーム作るの面倒
  • カスタマーポータルでstripeに丸投げしよう

カスタマーポータルの良さ

stripeで継続課金を実装しているとクレジットカード情報の変更を考えないといけない。このやり取りを自分で実装するのもいいが

  • クレジットカード情報なので安全なフォームにしないといけない
  • 普通にフォーム作るの面倒

だったりするがカスタマーポータルならStripe::BillingPortal::Session.createでurlを作ってそこに飛ばせばいいし、編集できる項目などをいじりたい場合は管理画面からボタン一つで変更できる。

実装

全体の流れは下記だけ

  • 管理画面でカスタマーポータルの設定
  • buttonからpost
  • Stripe::BillingPortal::Session.createでurl作成
  • urlをredirect

buttonからpost

    <form method="POST" action="/create_customer_portal_session">
      <button type="submit">クレジットカード情報確認・編集</button>
    </form>

Stripe::BillingPortal::Session.createでurl作成

routesを作成

  post "/create_customer_portal_session" => "users#create_customer_portal_session"
  def create_customer_portal_session
    session = Stripe::BillingPortal::Session.create({
      customer: current_user.stripe_customer_id,
      return_url: root_url(only_path: false) + '',
    })

    redirect_to session.url
  end

customerにはcustomer_idを

注意

csrf対策でやり取りできない場合はこのメゾッドだけスキップするなど対策する

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2