Documentation menu

メンバーポータル&サブスクリプション課金

あなたのメンバーシップは/learn/<slug>にあります — 登録者がサインインするポータルで、MailInAppダッシュボードやFirebase Authアカウントとは完全に別のものです。課金は、商品チェックアウトが使っているのと同じConnectアカウント上の、実際のStripeサブスクリプションとして実行され、ここでは継続課金のSubscriptions/Billingへ拡張されています。

ポータルURLを取得する

設定 → メンバーシップポータルで、<slug>(3〜40文字、小文字・数字・ハイフン)を取得します — 送信者プロフィールのハンドルと同じ、取得してリネームできる形です。専用のフィールドという点だけが異なります。これは、キャンペーンやメンバーシップを宣伝するあらゆる場所からリンクするURLです。後からリネームしても、既存の登録者のアクセスが失われることはありません。

価格を設定する

同じ設定 → メンバーシップポータルで、1つ以上のサブスクリプションプランを追加します — 名前、継続課金額、月次または年次の間隔、そして任意で日数指定の無料トライアルです。各プランは、連携済みアカウント上のStripeの価格(Price)に1対1で対応します。プランは作成後に削除できません(Stripeの価格自体も削除できません)。できるのはアーカイブのみです — アーカイブされたプランは公開の登録ページからは消えますが、既にそのプランに登録している人には有効なままです。そのため、アーカイブによって既存の登録者が締め出されることはありません。

登録フロー

/learn/<slug>/subscribe?plan=<planId>は、キャンペーンからリンクする公開ページです。ボタンブロックのリンク先として選ぶか、組み込みのSubscribeスタジオプリセット(見出し+テキスト+ボタンで構成される、スポーツチーム系統のScoreboardプリセットと同じ「既存のブロックを組み合わせるだけで新しいブロックタイプは作らない」という形)を使用します。

訪問者はプランを選び、サブスクリプションモードの本物のStripe Checkoutセッションを通じてチェックアウトします。完了すると、メールアドレスでSubscriberの行が作成またはマッチングされ、ポータルへの直接リンクを含むウェルカムメールが送信されます。

MailInAppアカウントなしでサインインする

登録者はMailInAppアカウントを一切作成しません。/learn/<slug>でのサインインはマジックリンク方式です: メールアドレスを入力すると、あなた自身のSMTP/ブランディングを通じて(Firebaseの既定テンプレートではなく)ワンタップのサインインリンクがメールで送られます。このステップにはレート制限がかけられ、そのメールアドレスが既に登録済みかどうかを意図的に一切明らかにしません。リンクをクリックすることでそのアドレスの所有を証明し、その特定のメンバーシップのポータルにサインインします。

レッスンを視聴する

レッスンの再生リクエストはすべて、リアルタイムのリクエストごとの権利チェックを実行します — カウントダウンやカレンダーのエンドポイントが使うような長期間有効な署名付きリンクではありません。登録者がレッスンを開くたびに、MailInAppは短期間だけ有効な再生トークンを発行する前に現在のサブスクリプション状態を確認します。アクセスの失効(キャンセル済みまたは支払い遅延のサブスクリプション)は、次のページ読み込み時だけでなく、まさに次のリクエストの時点で有効になります。無料プレビューとマークされたレッスンは、このチェックを完全にスキップし、ポータルに到達した誰でも再生できます。

既存のサブスクリプションを管理する

/learn/<slug>/accountは、サインイン済みの登録者に課金を管理ボタンを提供します。これはStripe自身がホスティングするCustomer Portalへの引き渡しであり、カードの更新、プランの切り替え、キャンセルを行えます — MailInApp自身がサブスクリプション管理を再実装しているわけではありません。

課金イベントが発生したときの動作

  • チェックアウトが完了すると → 登録者の行が作成/マッチングされ、サブスクリプションが有効化され、ポータルへのリンクを含むウェルカムメールが送信されます。
  • 支払いが失敗すると → 登録者には、カードを更新するよう/learn/<slug>/accountを指すダニングメールが送られ、Stripe側が自動的に課金を再試行します — MailInAppは最初の失敗でアクセスを変更せず、Stripe自身がサブスクリプションを非アクティブと報告した時点でのみ変更します。
  • サブスクリプションがキャンセルされると(登録者自身によるか、ダニングが再試行を使い切った後) → ゲートされたレッスンとライブセッションへのアクセスが終了し、戻りたい場合に備えて/learn/<slug>/subscribeへのリンクを含むキャンセルメールが送信されます。

関連ページ