Fincs

講座 / 講座スコープのカード変更・仮解約復帰

講座 / 講座スコープのカード変更・仮解約復帰

本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(## 🔧 実装詳細 以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。

概要

サブスク契約に対する講座スコープのカード変更と、仮解約状態からの復帰再決済を扱う機能。

ファイル名と実体の乖離: ファイル名は payment だが、実体は「単発支払い」ではなく上記 2 経路のためのページ。一括前払い(買切)プランは対象外。命名見直しは将来課題。

主な使い方:

  • 仮解約状態からの復帰: 月額決済の自動課金が一時的に失敗して仮解約状態(決済リトライ待ち)になっているサブスク契約を、ユーザー自身が決済情報を更新して再決済し復帰する経路
  • 講座スコープのカード変更(決済発生あり): 当該講座の契約カードを切り替える際に、復帰決済が同時に走る場合がある経路

主な特徴:

  • 対象は契約期間ベースのサブスクのみ(一括前払いは対象外)
  • 決済が同時に走る: 単純なカード切替(決済なし)は契約管理画面(./contract.md)から実施
  • 新規カード追加時は 3DS 認証を経由
  • 登録カード上限 5 枚

純粋に「単発で何かを購入する」用途のページではない(一括前払い購入は ./join.md の入会フローに集約)。受講者が混乱しやすい論点で、CS で「単発支払いはどこから?」と問い合わせがあった場合は本ページではなく入会フローを案内する。

📝 レビュー観点(draft 段階の記述ヒント、完成時に削除):

  • 目的: サブスク契約に対するカード変更(決済発生 = 仮解約復帰時)と純粋なカード切替の経路
  • 誰が使うか: 受講者(自身のサブスク契約)
  • どこで使うか: 仮解約状態からの復帰、決済情報の更新
  • 隣接機能との関係: 入会フロー(./join.md)/ 契約管理(./contract.md)/ 全体支払い手段(../user/payment-history.md
  • CS 問い合わせで頻発する論点: 「仮解約状態からの復帰方法」「決済が失敗した時の再試行」「カード追加した直後に決済される理由」
  • [本機能特有] 命名と実装の乖離: ファイル名 payment は単発支払いを連想させるが、実装は サブスク契約カード変更only_once(一括前払い)プランは対象外
  • [本機能特有] サブスク 1 ヶ月決済として実行: divideTimes=1 固定
  • [本機能特有] 仮解約復帰時のオプション: 料金プラン変更予約の反映、キャンペーン適用
  • [本機能特有] 単発支払い専用 UI は別経路: 一括前払いの購入は ./join.md に集約

利用シナリオ

シナリオ 1: 仮解約状態からの復帰

サブスク契約者の月額自動課金が一時的に失敗(カード期限切れ・残高不足等)し、契約が仮解約状態になった。ユーザーが新しいカード情報を登録、または既登録のカードを選択して決済情報を更新すると、即時に再決済が走り契約が復帰。次回以降の自動更新も再開される。

シナリオ 2: 仮解約復帰と料金プラン変更を同時に行う

仮解約状態のユーザーが、復帰のタイミングで料金プランも変更したい。先に契約管理画面で料金プラン変更予約を登録 → 本ページで決済情報を更新 → 復帰決済時に新プランの料金で決済が走る。

シナリオ 3: 既登録カードで切り替え

復帰の際、新規カードを追加せず既に他講座で登録済みのカードを選んで決済する。3DS 認証は不要(過去登録時に認証済みのため)。

よくある失敗ケース

  • 「単発支払いの画面はどこ?」: 本ページは単発支払い用ではなく、サブスク契約のカード変更・仮解約復帰用。一括前払い購入は入会フロー(./join.md)から実施
  • 「決済が失敗した時の再試行」: 決済失敗時は同じ画面で再試行可能(カード番号は再入力が必要)
  • 「カード追加した直後に決済される」: 仮解約復帰のフローでは追加と決済が同時に走る仕様。カードのみ追加したい場合は mypage > 決済情報(../user/payment-history.md)から実施

📝 レビュー観点:

  • 仮解約状態のサブスクを復帰する典型例(決済発生)
  • 既登録カードで単純に講座のカードを切り替える例(決済なし、本ページとは別経路)
  • 仮解約復帰と料金プラン変更を同時に行う例
  • 失敗ケース: 決済失敗時の再試行、3DS 認証失敗

権限別仕様

権限定義は ../user-roles.md 参照。用語は ../terminology.md

講座権限軸

操作 未受講者 受講者 サブ講師 メイン講師
講座スコープでのカード変更(決済発生) × ○(仮解約状態のサブスク契約者)
新規カード追加(講座スコープ) ×

横断軸

操作 運営アドミン テストユーザー 投稿禁止
自身の支払い操作 (通常と同じ) (通常と同じ、ただし課金処理は要確認) (通常と同じ)
他ユーザーの代理決済 ×(運営アドミン専用機能は未検出) × ×

📝 レビュー観点:

  • 運営アドミンによる代理決済の経路の有無(CS 対応で必要か要確認)
  • 仮解約復帰の運用上の典型ケース

機能詳細(ふるまい)

仮解約復帰フロー

仮解約状態のサブスク契約者が決済情報を更新して契約を復帰させる流れ:

  1. 受講者が当該講座の決済情報変更画面に遷移
  2. 既登録カードから選択 / 新規カード追加(新規は 3DS 認証経由)
  3. 与信処理 → 決済確定 → 契約復帰
  4. 自動更新が再開される

単純なカード切替(決済発生なし)

本ページの対象外。決済を伴わない講座スコープのカード切替は契約管理画面(./contract.md)から実施する。本ページの経路は復帰再決済を伴う場合のみ使用。

3DS 認証フロー

新規カード追加時は 3DS 認証経由:

  1. カード情報入力後、外部の認証サービスへリダイレクト
  2. 認証完了で Fincs に戻り、カード登録 + 即時決済
  3. 失敗時はカード入力フォームに戻り再試行可能(カード番号・セキュリティコードは再入力)

カード上限

  • 1 ユーザーあたり最大 5 枚: 6 枚目を追加できない
  • 既登録カードから選択する場合は上限に該当しない

決済失敗時の挙動

復帰決済中に発生し得る失敗パターンと挙動:

  • 与信失敗: カード会社側の与信制限・残高不足等。エラー表示で再試行を促す(カード切替・別カードの選択を案内)
  • 3DS 認証失敗: 認証サービスから失敗で戻るとカード入力フォームに戻る。カード番号再入力で再試行可
  • 確定失敗: 与信は通ったが確定処理で失敗するケースは稀。発生した場合は CS 連携で運営側の確認が必要

📝 レビュー観点:

  • 入力 → 処理 → 出力: 与信 → 確定の 2 段階、is_change_card=true 時のプラン有効期間チェックスキップ
  • エッジケース: 仮解約復帰中のブラウザバック、3DS 認証中の離脱
  • エラー表示: 決済失敗、3DS 認証失敗、カード上限到達
  • [本機能特有] 単発支払いと誤認させる UI 文言: 「決済情報の変更」が見出しだが、実際には決済が走るケースが多い

admin 操作

該当なし

運営アドミンによるカード代理操作・代理決済の経路は 未検出

実装されていない

  • 運営アドミンによる代理決済: 運営アドミン専用の代理決済経路は存在しない
  • 代理カード登録: クレカ情報は本人のみ登録可

📝 レビュー観点:

  • CS で「カードが切り替わらない」相談時の運営側操作経路の必要性
  • 運営は ContractAdminController 経由の契約操作で代替している現状

品質 / 約束事項

  • 応答性: 与信処理・決済確定は同期。3DS 認証は外部認証サービスとの往復で数秒〜数十秒
  • 信頼性: 決済失敗時は再試行可能。与信成功 / 確定失敗のような中間状態が発生したら CS 経由の運営側確認で復旧する。機密情報(カード番号等)はエラーログに full では記録されない
  • 制限値:
    • 登録カード上限: 5 枚 / ユーザー
    • divideTimes: 1 固定(分割払い不可)
  • データ保持: 決済履歴は内部に保持

📝 レビュー観点:

  • 応答性: 3DS 認証中の体感時間
  • 信頼性: 決済失敗時の再試行動線、与信成功 / 確定失敗時のロールバック
  • [本機能特有] 機密情報保護: 決済関連エラーログには full payment data を含めない

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

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

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

📝 レビュー観点:

  • 過去の主要変更(仮解約機能追加 / 3DS 対応 / 講座ごとカード切替対応 等)

関連ドキュメント


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