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

WordPress(+ Stripe)で始める サブスクリプションビジネス/tokyo-wp-meetup-2022-11

WordPress(+ Stripe)で始める サブスクリプションビジネス/tokyo-wp-meetup-2022-11

Hidetaka Okamoto (Stripe)

November 06, 2022
Tweet

More Decks by Hidetaka Okamoto (Stripe)

Other Decks in Technology

Transcript

  1. 岡本 秀高 ( @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 Tokyo WordPress Meetup 2022 Fall
  2. 商品・サービス注文フォーム ダッシュボードから 商品 / 料金 / 決済方法などを 設定してリンクを取得 アップセルやクロスセル、 配送方法の設定なども可能

    顧客マスタが複数作成され、 複数のサブスクリプション を契 約する場合には不向き 8 Tokyo WordPress Meetup 2022 Fall Stripe Payment Linksで、ノーコードに申し込みを受付
  3. 14 ポイント1: 令和3年に改正された特定商取引法への対応 Tokyo WordPress Meetup 2022 Fall 令和3年特定商取引法・預託法の改正について https://www.caa.go.jp/policies/policy/consumer_transaction/amendment/2021/

    最終確認画面に 右の6情報を表示する ・トライアル終了後の請求額 ・期間限定商品の販売期間 ・解約方法や医薬品 誤認を与える表示がある場合 申込の撤回が可能になる事も
  4. 15 Stripe Checkout / Payment Linksでの設定ガイド Tokyo WordPress Meetup 2022

    Fall https://qiita.com/hideokamoto/items/9ca5845a4f68dae808fd Stripeが用意するページを 使う場合に対応する方法 API組み込みや プラグイン利用時は 各自で対応が必要 Stripe以外のSaaSでも 組み込み型では 自前対応が必要なことが多い
  5. ポイント2: 非同期な決済フローのサポート • 「申し込みしたい」と思った時に、 クレジットカードを入力できるとは限らない ◦ 電車などの公共交通機関で移動中 ◦ あまり重要な情報を流したくないネットワークに接続している ◦

    大勢の人がいるため、クレジットカードを出したくない • コンビニ決済や銀行振込 ◦ 申込だけして、 後で決済を実行する 16 Tokyo WordPress Meetup 2022 Fall https://go.stripe.global/apac-state-of-checkouts-2022-ja
  6. 17 Webhookで、決済の「状態変化」を検知する Tokyo WordPress Meetup 2022 Fall https://qiita.com/hideokamoto/items/76e7b92416fd9beeff66 システムでの状態変化を 別システムに通知する仕組み

    非同期決済の「状態変化」を WordPressに通知する ・決済の成功 ・振り込み期限の超過 ・入金額の過不足 ・不正利用の疑いを検知 カード決済のみを考慮すると 後からの決済手段追加が hard
  7. 18 WordPressでは、WP APIでWebhook APIが作れる Tokyo WordPress Meetup 2022 Fall https://qiita.com/hideokamoto/items/76e7b92416fd9beeff66

    add_action: rest_api_init register_rest_routeで APIエンドポイントを追加 permission_callbackで、 正しいリクエストかを検証 callbackでWebhookの データを受け取り処理する Webhookのリクエストは POSTが中心(たまにGET)
  8. ポイント3: 未払いや契約更新などの「状態」を監視する • サブスクリプションは、契約してからが本番 ◦ 競合他社への移行や解約、トライアルの途中解約や本契約切り替え ◦ 未払いが発生した場合の連絡やアカウントの停止・回復処理 ◦ 請求書・領収書の発行、カードの有効期限更新

    • 決済プロバイダやプラグインから送られる「状態変化」を監視する ◦ Webhookやメール通知を利用 ◦ 「契約・決済がXXしたらYYの処理を行う」 ◦ 運用開始後に判明するケースも多いので、拡張・柔軟性が大切 19 Tokyo WordPress Meetup 2022 Fall
  9. 誰にサブスクリプションの管理を任せるべきか? • WordPress上で管理する(WooCommerceなど) ◦ ✅ WordPressのコンテキストで開発がしやすい ▪ Hooks, WP_Usersクラス, etc

    ◦ ✅ 複数の決済プロバイダが利用できる ▪ 例: Stripe(カード系) + Square (実店舗決済) ◦ 🔶 WordPressのDBに個人情報が保存されるリスク ◦ 🔶 決済プロバイダが用意する機能がフルに利用できないケースもある ▪ WooCommerce <> Stripeの場合、 「コンビニ決済」や「銀行振込」は2022/10時点で未対応 24 Tokyo WordPress Meetup 2022 Fall
  10. 誰にサブスクリプションの管理を任せるべきか? • 決済プロバイダ・SaaS上で管理する(Stripe, Square, Shopify, etc) ◦ ✅ データの管理や、法的な変更への対応を委任できる ▪

    PCI DSS, GDPR, 特商法, etc ◦ ✅ SaaS側による機能追加の恩恵を受けやすい ▪ StripeではCheckoutやカスタマーポータルの更新が活発 ◦ 🔶 「SaaSで現状できないこと」が、機能要求とぶつかるケース ▪ Stripeでは、2022/11時点で対面決済が日本ではできない ◦ 🔶 WebhookでのWordPress連携など、   多少の組み込み開発が必要になるケースも 25 Tokyo WordPress Meetup 2022 Fall
  11. 「WordPressで完結できるか」は判断点の1つ • サブスクリプションには、だいたい例外が生まれる ◦ 特別オファー、優待オファー ◦ 担当者交代によるマニュアルでの請求先情報更新 ◦ 価格を改定すると、旧プランユーザーが例外枠になることも •

    プラグインの機能で、顧客サポートや例外の処理ができるか否か? ◦ 通販や頒布会(定期購入)は、WooCommerceなどが強い ◦ SaaSやメンバーシップなどのサービスは要注意 26 Tokyo WordPress Meetup 2022 Fall
  12. SaaSとOSSで、「巨人の肩」を乗りこなそう • 用途に応じて、OSSやSaaSを組み合わせる ◦ ウェブサイトやシステムの構築: WordPress ◦ 通販サイトの構築や運用: WooCommerce (+

    Stripe) ◦ サブスクリプションの運用管理: Stripe + WP API • 各システムや各部署・担当者が、「自分の役割」に専念できる環境作り ◦ 少人数の場合は、「あえてWordPressに集約」も有効 ▪ 例: WooCommerce + Stripe -> サブスクはStripe単独管理 • OSSやSaaSにも、高パフォーマンスで働ける環境を用意しよう 27 Tokyo WordPress Meetup 2022 Fall