💸

Stripe の Checkout session で Subscription の設定を付与する

1 min read

Stripe で Subscription を作る時に Checkout を使うことができますが、Subscription 作成時に色々な設定を与えたい場合があります。

現在の Stripe では Plan に trial を付与するのではなく Subscripiton 自体に trial を付与する必要があったり、Tax Rates (税率) を指定したい場合です。

調べてみると Stripe session を作る時に subscription_data を指定することで実現できました。

指定の日時までを指定するパターン

  • subscription_data.trial_end に Unix timestamp を指定します
const session = await stripe.checkout.sessions.create({
  success_url: 'https://example.com/success',
  cancel_url: 'https://example.com/cancel',
  payment_method_types: ['card'],
  line_items: [
    {price: 'price_xxxxx', quantity: 1},
  ],
  mode: 'payment',
  subscription_data: {trial_end: 1616661475}
});

現在からn日後を指定するパターン

  • subscription_data.trial_period_days に日数を指定します
const session = await stripe.checkout.sessions.create({
  success_url: 'https://example.com/success',
  cancel_url: 'https://example.com/cancel',
  payment_method_types: ['card'],
  line_items: [
    {price: 'price_xxxxx', quantity: 1},
  ],
  mode: 'payment',
  subscription_data: {trial_period_days: 30}
});

税率(Tax Rates)を指定するパターン

const session = await stripe.checkout.sessions.create({
  success_url: 'https://example.com/success',
  cancel_url: 'https://example.com/cancel',
  payment_method_types: ['card'],
  line_items: [
    {price: 'price_xxxxx', quantity: 1},
  ],
  mode: 'payment',
  subscription_data: {default_tax_rates: 'txr_xxxxx'}
});

https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-subscription_data