Fincs

講座 / 入会フロー

講座 / 入会フロー

本ページは 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 認証経由で実施:

  1. 3DS 認証起動: カード情報入力後、外部の認証サービスへリダイレクト
  2. 認証完了: Fincs に戻り認証結果を確認
  3. 与信処理: 認証成功後、決済の与信処理を実施
  4. 決済確定: 与信成功後、決済を確定して契約レコードを作成

決済失敗時の挙動:

  • 3DS 認証失敗 → カード入力フォームに戻り再試行可能(カード番号・セキュリティコードの再入力が必要)
  • 与信失敗 → エラー表示で再試行を促す
  • 決済確定失敗 → 既に与信済みのため再試行は限定的、運営対応を案内

入会上限チェック

プラン側で受講者数の上限が設定されている場合:

  • 入会フロー開始時に事前チェックが走り、上限到達済みなら入会フローに進めない
  • 入会フロー進行中(複数人が同時に進めている可能性がある場合)は最終確認時に再チェックが走り、上限到達なら完了時にエラー

入会完了後の挙動

  • 契約レコードが作成され、講座へのアクセスが即時開始される
  • 0 円プラン契約時はウェルカムメール送信
  • 銀行振込契約時は振込先案内が完了画面に表示される(入金確認後に契約有効化)
  • 完了画面の表示後にブラウザ保持の入会フロー状態がクリアされる

📝 レビュー観点:

  • 入力 → 処理 → 出力: 各ステップでの状態保持(PlanJoinStore)と離脱時の挙動
  • 上限値 / 必須項目: 個人情報項目の制限値は ../user/personal-info.md と整合させる
  • エッジケース: 決済中のブラウザバック、3DS 認証中の離脱、入会上限の同時到達、キャンペーン期限切れ
  • エラー表示: 決済エラー、規約同意必須、個人情報バリデーションエラー
  • [本機能特有] 0 円プラン: 決済ステップ全スキップで即時契約成立
  • [本機能特有] プラン変更入会: isChange=true フラグで一部ステップをスキップ(feature toggle 制御)

admin 操作

できる操作

  • 0 円契約代行付与: 運営アドミンが特定ユーザーに 0 円契約を付与
  • 0 円契約取消: 上記の取消
  • 銀行振込契約代行作成: 運営アドミンが銀行振込契約を作成
  • 銀行振込入金確定: 入金確認後に契約を有効化

詳細は ../admin/contract.md 参照。

実装されていない / 不明

  • 運営アドミンによるクレカ代行入会: 専用経路なし(クレカ情報は本人のみ登録可)

📝 レビュー観点:

  • 運営アドミン代行入会の典型ユースケース(CS 連携 / 法人契約 / トライアル付与)
  • 代行入会時の規約同意の扱い(ユーザー本人の同意なしで契約成立する点の運用上の懸念)

品質 / 約束事項

  • 応答性: 各ステップの遷移は同期処理、決済の 3DS 認証は外部認証サービスとの往復で数秒〜数十秒
  • 信頼性: 入会途中で離脱しても入力状態はブラウザに保持されており、再開時は途中から続行可能。決済失敗時は再試行可能(カード情報は再入力が必要)。0 円プラン即時契約はメール送信に失敗しても契約自体は成立する
  • 制限値:
  • データ保持: 入会途中で離脱した場合の状態保持は PlanJoinStore(ブラウザストレージ)

📝 レビュー観点:

  • 応答性: 各ステップの遷移時間、決済の体感時間
  • 信頼性: 決済失敗時の再試行動線
  • データ保持: 入会途中離脱時の再開可否
  • [本機能特有] 入会上限: 同時申込で上限到達時のレースコンディション挙動

変更履歴(リリースノート候補)

v2.29.2: 2026-05-01(PSD 初版)

  • [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない

📝 レビュー観点:

  • 過去の主要変更(OPTIONAL_B 追加 / 一括前払い対応 / キャンペーン機能追加 / プラン変更入会 等)

関連ドキュメント


このページの内容を AI に質問しますか?
関連 spec を自動抽出して ChatGPT / Claude などに渡せます。
AI Prompt で開く →