---
sidebar_position: 9
title: "利用資格と本人確認"
---

# 利用資格と本人確認

カスタマーポータルにおける利用資格と本人確認の仕組みを説明します：

- **インターネット利用資格**（NTTサービス提供可否確認）
- **本人確認**（在留カード/身分証明書）

## 概要

| 概念 | ソース | 説明 |
| --- | --- | --- |
| 商品 + 価格 | Salesforce価格表 | 単一カタログソース |
| 支払い方法 | WHMCS | Stripe経由のカード保存 |
| 注文 + フルフィルメント | Salesforce Order（+ 下流WHMCS） | 運用ワークフロー |
| インターネット利用資格 | Salesforce Account（+ Case） | 将来のインターネット注文に再利用 |
| ID確認ステータス | Salesforce Account（+ Files） | 将来の注文に再利用 |

## インターネット利用資格（NTT住所確認）

### 仕組み

1. 顧客が `/account/services/internet` に移動
2. **Check Availability**をクリック（サービス住所の登録が必要）
3. ポータルが `POST /api/services/internet/eligibility-request` を呼び出し確認画面を表示
4. ポータルがSalesforce Opportunity（Stage = `Introduction`）を検索/作成し、エージェントレビュー用のSalesforce Caseを作成
5. エージェントがNTTサービス提供可否を確認（手動プロセス）
6. エージェントがAccountの利用資格フィールドを更新
7. Salesforce Flowが顧客にメール通知を送信
8. 顧客が戻り利用可能なプランを確認

### キャッシュとリアルタイム更新

#### Redisキャッシュ（BFF）

| キャッシュキー | 内容 | 無効化 |
| --- | --- | --- |
| `services:eligibility:{accountId}` | 利用資格ステータスと値 | Platform Event |
| `services:verification:{accountId}` | 確認ステータスと日付 | Platform Event |

CDC駆動の無効化 + 安全TTL（デフォルト12時間）を使用。Salesforce Platform Event受信時、BFFは：

1. 両方のキャッシュを無効化
2. SSE `account.updated` を接続中のポータルに送信
3. ポータルが最新データを再取得

#### レート制限

- パブリックカタログエンドポイント：IP + User-Agentごとにレート制限
- `POST /api/services/internet/eligibility-request`：認証済み、レート制限、べき等

### サブスクリプションタイプ検出

ポータルは商品名マッチングでインターネットサブスクリプションを識別します：

```typescript
// 以下のパターンにマッチ（大文字小文字不問）：
// - "internet"
// - "sonixnet"
// - "ntt" + "fiber"
```
