講座 / 入会フロー
講座 / 入会フロー
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
講座への入会フロー。受講者が講座トップ画面の「入会する」ボタンから開始し、規約同意 → 個人情報入力 → 書類確認 → 支払い → 確認 → 完了 の最大 7 ステップで契約成立まで導く。
主な特徴:
- 動的フロー: 料金プラン種別やユーザー状況によって複数のステップが自動的にスキップされ、必要最小限のステップだけが提示される
- 0 円プラン: 決済関連のステップが全てスキップされ、規約同意 → 個人情報 → 確認 → 完了 の最短経路で即時契約成立
- サブスク(月額等): クレジットカード決済固定(銀行振込不可)
- 一括前払い: クレジットカード / 銀行振込 を選択可能
- 再入会・既登録カード利用: 過去に登録したクレジットカードがあれば、新規カード入力ステップをスキップして既存カードで決済可能
主な使い方:
- 未受講者: 講座への新規入会
- 受講者: 既存契約のプラン変更による入会(「契約変更入会」モード、一部ステップが自動スキップ)
- 運営アドミン: 0 円契約・銀行振込契約等の代行入会(受講者本人によらない契約成立)— ただしクレジットカード入会は本人作業のみ
入会途中で離脱した場合、直前の入力状態はブラウザに保持されており、再アクセスで途中から再開できる。
📝 レビュー観点(draft 段階の記述ヒント、完成時に削除):
- 目的: 講座契約を成立させるエンドツーエンドのフロー。規約同意 → 個人情報 → 書類 → 支払い → 確認 → 完了
- 誰が使うか: 受講者(自身の入会)、運営アドミン(代理入会)
- どこで使うか: 講座トップの「入会する」ボタン、再入会導線
- 隣接機能との関係: 退会(
./cancel.md)/ 契約変更(./contract.md)/ 単発支払い(./payment.md)/ 個人情報(../user/personal-info.md)- CS 問い合わせで頻発する論点: 「決済が通らない」「規約同意でつまずく」「3DS 認証画面に進めない」「振込で入会したい」「キャンペーンが適用されない」
- [本機能特有] スキップ条件: プラン設定 / ユーザー状況に応じて 7 ステップのうち複数がスキップされる(
isHiddenAgreementTerms/OPTIONAL_B/isHiddenContractDocument/ 0 円プラン / 既登録カード)- [本機能特有] 0 円プラン: 決済ステップが全てスキップされ即時契約成立
- [本機能特有] 銀行振込: 一括(only_once)プランのみ選択可能、サブスクは振込不可
利用シナリオ
シナリオ 1: サブスク講座への新規入会
未受講者が講座トップ画面の「入会する」を押下 → 入会条件への同意 → 個人情報入力 → 交付書面確認 → クレジットカード入力(3DS 認証経由)→ 入会内容の最終確認 → 完了。完了後は受講者として講座を利用できる。
シナリオ 2: 0 円プランへの即時入会
無料の体験プラン等で 0 円契約に入会する場合は、決済関連のステップが全てスキップされる。規約同意 → 個人情報 → 確認 → 完了 の 4 ステップで即時契約成立。
シナリオ 3: 銀行振込で一括前払い
一括前払いの講座で銀行振込を選択した場合、振込先口座情報を含む個人情報を登録 → 確認 → 完了画面で振込先案内が表示される。実際の入金確認後に運営側で契約が有効化されるため、講座へのアクセス開始は入金確認後となる。
シナリオ 4: 既登録カードで再入会
過去に他講座で入会してクレジットカードが登録済みのユーザーが、別の講座に新規入会する。決済ステップでは既登録カードが選択肢として表示され、新規カード入力をスキップして即時決済が可能。
シナリオ 5: 運営アドミンによる代行入会
CS 対応や法人契約等で、運営アドミンが受講者の代理で入会させる。0 円契約・銀行振込契約は代行可能だが、クレジットカード決済は本人作業が必要(カード情報は本人のみが入力できる)。
よくある失敗ケース
- 「決済が通らない」: クレジットカード会社側の与信制限・3DS 認証失敗等。Fincs 側からは復旧不可で、カード会社経由で確認が必要
- 「規約同意でつまずく」: 規約への同意チェックが入っていないと先に進めない
- 「3DS 認証画面に進めない」: ブラウザ側のポップアップ・リダイレクトブロック等の影響
- 「キャンペーンが適用されない」: キャンペーン期限切れ・対象外プランへの適用試行等
- 入会上限到達: プラン側で受講者数の上限が設定されている場合、上限に達した状態で同時に複数人が入会フローを進めると一部のユーザーが完了時にエラーになる可能性
📝 レビュー観点:
- 標準的なサブスク入会(agreement → personalinfo → documents → payment-card → confirm → complete)
- 0 円プランの即時入会(agreement → personalinfo → confirm → complete)
- 一括前払いの銀行振込入会(payment-method で銀行を選択)
- 既登録カードがあるユーザーの再入会(addpayment スキップ)
- キャンペーン / クーポン適用入会(campaignId 付き)
- 失敗ケース: 決済失敗、入会上限到達、規約同意エラー
権限別仕様
権限定義は ../user-roles.md 参照。用語は ../terminology.md。
講座権限軸
| 操作 | 未受講者 | 受講者(既契約者) | サブ講師 | メイン講師 |
|---|---|---|---|---|
| 入会フローへの遷移 | ○ | ×(既に契約済み) | ×(自講座のみ × ) | ×(自講座のみ ×) |
| 規約同意 | ○ | — | — | — |
| 個人情報入力 | ○ | — | — | — |
| 決済 | ○ | — | — | — |
横断軸
| 操作 | 運営アドミン | テストユーザー | 投稿禁止 |
|---|---|---|---|
| 入会フロー全般 | ○(運営アドミン代行入会経路あり) | (通常と同じ) | (通常と同じ、入会自体は可) |
| 0 円契約代行付与 | ○(運営アドミン専用機能あり) | × | × |
| 銀行振込契約代行 | ○(運営アドミン専用機能あり) | × | × |
📝 レビュー観点:
- 講師が自分の講座に入会できるかは要確認
- メイン講師 / サブ講師が他の講座に受講者として入会する場合の挙動
- 運営アドミン代行入会の用途(CS 連携 / VIP 対応 等)
機能詳細(ふるまい)
7 ステップフロー
| # | ステップ | 内容 | スキップ条件 |
|---|---|---|---|
| 1 | 規約同意(agreement) | 入会条件への同意 | プラン設定で「規約非表示」が有効 |
| 2 | 個人情報(personalinfo) | 氏名 / 住所 / 連絡先(または軽量版で生年・性別・居住地のみ) | 軽量取得(OPTIONAL_B)かつ既存情報あり |
| 3 | 交付書面(documents) | 法定書面の確認・同意 | プラン設定で「交付書面非表示」が有効 |
| 4 | 支払い方法選択(payment-method) | クレカ / 銀行振込 の選択 | サブスクプラン(クレカ固定) |
| 5a | クレカ登録(payment-card) | 新規カード入力(3DS 認証) | 0 円プラン / 既登録カード使用時 |
| 5b | 銀行振込(payment-bank) | 振込個人情報登録 | クレカ選択時 |
| 5c | カード追加(addpayment) | 既登録カードと別の新規カード追加 | 既登録カード選択時 |
| 6 | 確認(confirm) | 入会内容の最終確認 | なし(必須) |
| 7 | 完了(complete) | 完了画面 | なし(必須) |
スキップ条件の詳細
各ステップは以下の条件で自動スキップされる:
- 規約同意: プラン設定で「規約非表示」が有効な場合
- 個人情報: プラン側の個人情報取得方針が軽量パターン(生年・性別・居住地のみ)かつ既存情報がある場合
- 交付書面: プラン設定で「交付書面非表示」が有効な場合
- 支払い方法選択: サブスクプラン(クレジットカード固定のため選択不要)の場合
- クレカ登録: 0 円プラン / 既登録カード使用時
- 銀行振込: クレジットカード選択時
- カード追加: 既登録カード選択で別カード追加が不要な場合
これら全部が揃うと、最短で「規約同意 → 個人情報 → 確認 → 完了」の 4 ステップで完了する(0 円プランの場合に該当)。
入力項目とバリデーション
個人情報の入力項目・文字数制限・FE/BE 制限値の詳細は ../user/personal-info.md を参照。入会フローと mypage の個人情報編集は同じフォームを共用しており、入会フローで初回入力した値はそのまま mypage 側で編集できる。
入会前同意 / 交付書面同意は最低 1 件の同意が必要(必須)。
決済処理
クレジットカード決済は 3DS 認証経由で実施:
- 3DS 認証起動: カード情報入力後、外部の認証サービスへリダイレクト
- 認証完了: Fincs に戻り認証結果を確認
- 与信処理: 認証成功後、決済の与信処理を実施
- 決済確定: 与信成功後、決済を確定して契約レコードを作成
決済失敗時の挙動:
- 3DS 認証失敗 → カード入力フォームに戻り再試行可能(カード番号・セキュリティコードの再入力が必要)
- 与信失敗 → エラー表示で再試行を促す
- 決済確定失敗 → 既に与信済みのため再試行は限定的、運営対応を案内
入会上限チェック
プラン側で受講者数の上限が設定されている場合:
- 入会フロー開始時に事前チェックが走り、上限到達済みなら入会フローに進めない
- 入会フロー進行中(複数人が同時に進めている可能性がある場合)は最終確認時に再チェックが走り、上限到達なら完了時にエラー
入会完了後の挙動
- 契約レコードが作成され、講座へのアクセスが即時開始される
- 0 円プラン契約時はウェルカムメール送信
- 銀行振込契約時は振込先案内が完了画面に表示される(入金確認後に契約有効化)
- 完了画面の表示後にブラウザ保持の入会フロー状態がクリアされる
📝 レビュー観点:
- 入力 → 処理 → 出力: 各ステップでの状態保持(
PlanJoinStore)と離脱時の挙動- 上限値 / 必須項目: 個人情報項目の制限値は
../user/personal-info.mdと整合させる- エッジケース: 決済中のブラウザバック、3DS 認証中の離脱、入会上限の同時到達、キャンペーン期限切れ
- エラー表示: 決済エラー、規約同意必須、個人情報バリデーションエラー
- [本機能特有] 0 円プラン: 決済ステップ全スキップで即時契約成立
- [本機能特有] プラン変更入会:
isChange=trueフラグで一部ステップをスキップ(feature toggle 制御)
admin 操作
できる操作
- 0 円契約代行付与: 運営アドミンが特定ユーザーに 0 円契約を付与
- 0 円契約取消: 上記の取消
- 銀行振込契約代行作成: 運営アドミンが銀行振込契約を作成
- 銀行振込入金確定: 入金確認後に契約を有効化
詳細は ../admin/contract.md 参照。
実装されていない / 不明
- 運営アドミンによるクレカ代行入会: 専用経路なし(クレカ情報は本人のみ登録可)
📝 レビュー観点:
- 運営アドミン代行入会の典型ユースケース(CS 連携 / 法人契約 / トライアル付与)
- 代行入会時の規約同意の扱い(ユーザー本人の同意なしで契約成立する点の運用上の懸念)
品質 / 約束事項
- 応答性: 各ステップの遷移は同期処理、決済の 3DS 認証は外部認証サービスとの往復で数秒〜数十秒
- 信頼性: 入会途中で離脱しても入力状態はブラウザに保持されており、再開時は途中から続行可能。決済失敗時は再試行可能(カード情報は再入力が必要)。0 円プラン即時契約はメール送信に失敗しても契約自体は成立する
- 制限値:
- 個人情報項目:
../user/personal-info.md参照 - 入会上限: プラン設定で個別に設定
- 個人情報項目:
- データ保持: 入会途中で離脱した場合の状態保持は
PlanJoinStore(ブラウザストレージ)
📝 レビュー観点:
- 応答性: 各ステップの遷移時間、決済の体感時間
- 信頼性: 決済失敗時の再試行動線
- データ保持: 入会途中離脱時の再開可否
- [本機能特有] 入会上限: 同時申込で上限到達時のレースコンディション挙動
変更履歴(リリースノート候補)
v2.29.2: 2026-05-01(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(OPTIONAL_B 追加 / 一括前払い対応 / キャンペーン機能追加 / プラン変更入会 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
./cancel.md— 退会フロー./contract.md— 契約変更./payment.md— 単発支払い../user/personal-info.md— 個人情報(共通フォーム)../user/payment-history.md— 全体支払い履歴../admin/contract.md— 運営アドミン代行入会