Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サブスクリプション決済入門 Stripeでの実装方法と、要件定義時のポイント/okta-stripe-202301

サブスクリプション決済入門 Stripeでの実装方法と、要件定義時のポイント/okta-stripe-202301

Stripe x Okta 共催セミナー 2023/01 での講演資料です。

Hidetaka Okamoto (Stripe)

January 25, 2023
Tweet

More Decks by Hidetaka Okamoto (Stripe)

Other Decks in Technology

Transcript

  1. サブスクリプション決済入門
    Stripeでの実装方法と、要件定義時のポイント
    Stripe x Okta 共催セミナー 2023/01
    @hidetaka_dev
    Jan 2023
    1

    View Slide

  2. 今日のトピック
    ● Stripeでサブスクリプションを始める3つの方法
    ● サブスクリプションの契約後に想定すべき
    3つの運用イベントとStripeでの対応方法
    ● なぜStripeの組み込みは、
    Webhookを利用した「イベント駆動型」になるのか
    2
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  3. 岡本 秀高 ( @hidetaka_dev )
    ● Stripe Developer Advocate
    (ex-developer in Digitalcube)
    ● JavaScript / TypeScript developer
    ○ AWS Lambda / CDK
    ○ Next.js / React
    ○ WordPress / Alexa / etc
    ● AWS Samurai 2017 /
    AWS Community Day APAC 2017
    ● QiitaでStripeに関する
    Dev blogを週2/3本で更新中
    ○ https://qiita.com/hideoka
    moto
    ○ 年間120記事ペース
    3
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  4. 今日のトピック
    ● Stripeでサブスクリプションを始める3つの方法
    ● サブスクリプションの契約後に想定すべき
    3つの運用イベントとStripeでの対応方法
    ● なぜStripeの組み込みは、
    Webhookを利用した「イベント駆動型」になるのか
    4
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  5. さまざまな場面で、サブスクリプション契約は発生する
    ● StripeやOkta Customer Identity Cloud(旧Auth0)などのWebサービス
    ● 食料品などの定期購入・宅配サービス
    ● インターネット回線やテナントなどの利用契約
    ● 保守運用費用やコンサルティングなどの専門サービス
    ● etc..
    -> サービスの提供体系によって、サブスクリプションの始め方が変化する
    5
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  6. Stripeで実現できるサブスクリプションの始め方
    ● 1: 事前に用意した料金に対して、顧客が申し込みを行う
    ○ Stripe Billing + Stripe Payment Links / Checkout / Elements
    ● 2: ユーザーごとに料金体系を動的に作成し、顧客が申し込みを行う
    ○ Stripe Billing + Stripe Checkout / Elements
    ● 3: 個別の料金体系を作成し、請求書を顧客に送付する
    ○ Stripe Billing + Stripe Invoicing
    6
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  7. Stripe Billingでサブスクリプション運用を簡単にする
    ● 請求処理や再請求処理、
    プラン変更の日割計算など
    ● 従量課金や
    パッケージ価格にも対応
    ● クレジットカード・銀行振込など複
    数決済に対応
    ● 利用料: 決済額の0.5%
    7
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  8. Stripe Invoicingで請求書発行などの請求業務を効率化
    ● オンライン / PDFの
    請求書を発行・送付
    ○ API組み込みにも対応
    ● クレジットカード・銀行振込など複
    数決済に対応
    ● 銀行振込は1時間単位での
    自動消し込みをサポート
    ● 利用料: 決済額の0.4%
    8
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  9. Stripe Payment Linksでノーコードな申し込みページ
    ● buy.stripe.comで
    申し込み用URLを作成
    ● URLを共有するだけで
    決済やサブスク申し込みの
    導線を作ることができる
    ● アップセルや
    クロスセルにも対応
    ● 利用料: 無料
    9
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  10. Stripe Checkoutでローコードで決済フォームを実装
    ● リダイレクト型決済フロー
    ● 数行のコードで、
    安全かつ高機能な
    決済フォームが実現
    ● アップセルや
    クロスセルにも対応
    ● 利用料: 無料
    *カスタムドメインは月10USD
    10
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  11. Stripe Elementsでデザインに馴染む高機能決済フォーム
    ● 埋め込み型決済フォーム
    ● 複数の決済方法をサポート
    ● CSS変数やテーマ機能で
    見た目のカスタマイズが可能
    ● 利用料: 無料
    11
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  12. ビジネス体系に応じた製品の使い分け
    ● 顧客向けのダッシュボードやUIがまだない
    ○ Invoicingで請求書を発行
    ○ Payment Linksで申し込みURLを作成
    ● ダッシュボードなどの開発工数を低く抑えたい
    ○ Checkoutや料金表で、Stripeが用意する決済画面を利用する
    ● ブランドにあったデザインで組み込みを行いたい
    より複雑な条件や追加の入力フォームをフローに組み込みたい
    ○ Elementsを利用し、JavaScriptで決済フォームを埋め込み
    12
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  13. 埋め込み型の料金表
    ● Stripeに登録した料金データで
    料金表を作成できる
    ● HTML / JSのスニペットを
    埋め込みだけで実現
    ● 機能表やラベルの
    カスタマイズなども可能
    ● 利用料: 無料
    13
    Stripe x Okta 共催セミナー 2023/01
    src="https://js.stripe.com/v3/pricing-table.js"
    >
    pricing-table-id="prctbl_xxxxx"
    publishable-key="pk_test_xxxxx"
    >

    View Slide

  14. 今日のトピック
    ● Stripeでサブスクリプションを始める3つの方法
    ● サブスクリプションの契約後に想定すべき
    3つの運用イベントとStripeでの対応方法
    ● なぜStripeの組み込みは、
    Webhookを利用した「イベント駆動型」になるのか
    14
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  15. サブスクリプションは、「契約してからが本番」
    ● サブスクリプションは、「契約し続けてもらう」必要がある
    ○ 使わないサブスクサービスは、解約される
    ■ 競合他社への乗り換え: 「もっと安いor便利なサービスにしよう」
    ■ 需要の消失: 「子どもが成長したので、もう使わない」
    ● 機能への不満だけでなく、
    サポートや契約体系などへの不満も解約理由になりうる
    15
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  16. サブスクリプションで発生しやすいサポートタスク
    ● 契約内容の確認と変更
    ○ プランの変更や解約・請求履歴の確認
    ○ 請求書等の送付先住所・メールアドレスの変更
    ● 決済に関連する事象
    ○ カードの有効期限切れや銀行振込の入金忘れ
    ○ 不正決済の申し立て(チャージバック請求)対応
    ● 営業やマーケティングなどとの連携
    ○ 優良顧客の特定、会計データのエクスポート
    16
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  17. Stripeで運用タスクを効率化する
    ● 契約内容の確認と変更
    ○ Customer Portalでリダイレクト型請求マイページを実装
    ● 決済に関連する事象
    ○ 支払い失敗などの通知メールの自動送信
    ○ 3DS2への対応やRadarを利用した不正検知システムの提供
    ● 営業やマーケティングなどとの連携
    ○ ダッシュボードやAPIの検索機能、レポート機能
    17
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  18. Stripe Customer Portalで請求マイページ
    ● リダイレクト型
    顧客請求マイページ
    ● 顧客情報・決済情報
    請求履歴・プラン変更など
    ● ノーコード / APIで
    組み込みが可能
    ● 利用料: 無料
    18
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  19. 失敗した支払いのフォローアップ
    ● 決済の再試行を3回実施
    ● 失敗した場合に、
    メールを送信して情報更新
    ● 有料オプションを利用して、
    スマートリトライなど
    追加機能も
    Billing Scale (0.8%)
    19
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  20. 3Dセキュア2への対応や不正利用対策
    ● 3Dセキュア2に対応
    ○ 組み込み作業はほぼ不要
    ● レポートを元に
    リクエストの閾値を調整可能
    ● Radarを利用して、
    カスタムの認証ルールなども
    設定が可能になる
    20
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  21. ダッシュボードのフィルタ機能で、見たい情報を抽出
    ● 各情報一覧にある「フィルタ機能」
    ○ Billing, Payment, Customer, etc
    ● 作成日や決済ステータスで、
    情報をフィルタリング
    ○ 例:直近X日に作成された、
      未払いのサブスクリプション
    ● フィルタ条件は、
    URLのクエリ文字列として追加される
    ○ /payments?status[0]=canceled&st
    atus[1]=blocked
    ● 「よく見る条件」をブックマーク
    社内Wikiやポータルで共有しよう
    21
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  22. 今日のトピック
    ● Stripeでサブスクリプションを始める3つの方法
    ● サブスクリプションの契約後に想定すべき
    3つの運用イベントとStripeでの対応方法
    ● なぜStripeの組み込みは、
    Webhookを利用した「イベント駆動型」になるのか
    22
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  23. サブスクリプションの「状態変化」をWebhookで検知
    ● サブスクリプションでは、さまざまな出来事が発生する
    ○ プランを変更した・解約した
    ○ 今月の決済で、LTVが1000万円を突破した
    ○ 銀行振込の入金額が不足していた
    ● 運用タスクは、顧客や契約の「状態」が変化したときに発生する
    ○ Stripeの中で状態が変化が発生したことを、
    外に伝える仕組みがStripe Webhook
    23
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  24. Webhookで、運用業務を自動化する
    ● Webhookを利用して、「XXの時、YYを行う」ワークフローが組める
    ○ 未払いが発生した時、ユーザーに提供する機能を制限する
    ○ トライアル期間終了間際に、フォローアップメールを送付する
    ○ 年間の決済額が一定額を超えた時、特別割引を適用する
    ● 「連携するためのシステム」はノーコードでも構築可能
    ○ Zapierなどのノーコードサービスを利用する
    ○ Webhook APIを開発して、システムと連携する
    ■ AWS / GCP / Azureなどのワークフローサービスで
    ローコードに開発することも可能
    24
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  25. StripeとOkta Customer Identity Cloud(CIC)を連携する
    ● Stripeのサブスクが状態変化したとき、Okta CICのユーザーを操作する
    ● 連携の例:
    ○ サブスクリプションを解約したら、ユーザーを削除する
    ○ プランが変わった時、ユーザーの権限を変更する
    ● バッチ処理での連携も
    ○ Okta CICのOrganizations参加人数に応じた
    従量課金の請求をStripeで作成
    25
    Stripe x Okta 共催セミナー 2023/01

    View Slide

  26. まとめ
    ● Stripeを利用して、さまざまなサブスクリプション契約を提供できる
    ○ 請求書 / URL / システム組み込み
    ○ 従量課金, パッケージ価格 / 月額, 年額, 四半期
    ● サブスクリプションでは、「運用・サポート」タスクを要件に含めよう
    ○ 未払い対応 / 状況確認 / カスタマーサクセス
    ● Webhookを利用して、Okta CICなどと契約状態の変化を共有しよう
    ○ ノーコードサービス / クラウドサービス / API開発
    26
    Stripe x Okta 共催セミナー 2023/01

    View Slide