本域总览见《账号计费中心 · 结构大纲》。本文为该域完整设计:定位与边界 / 角色与依赖 / 数据模型 / 核心流程 / 接口契约 / 关键约束与验收标准。 章节顺序理由:先数据模型(事实结构)→ 再核心流程(结构之上的运行路径)→ 最后接口契约(流程的对外投影)。
定位:本域承载门禁的判定口径、扫描与处置的闭环、实名合规的事实。
关键口径
| 概念 | 承载 | 语义 |
|---|---|---|
| 规则目录 | risk_rules |
rule_type 四值:usage_spike / usage_spike_ratio / reconcile / waiver_spike;scope_org_id 为空即平台级,非空为单组织规则 |
| 命中台账 | risk_events |
每次命中一行:规则、客户、组织、组、触发值与阈值快照、动作、状态、命中时刻 |
| 命中状态 | status |
仅两态:active(待处置)/ resolved(已处置) |
| 触发值随类型解释 | trigger_tokens / threshold_tokens |
用量类为 tokens,对账类为异常金额分整数,免计费类为话单计数 |
| 规则动作 | action |
notify(只告警)/ notify_and_downshift(告警 + 生效限速减半,解除前持续) |
| 个人核验 | user_real_name_verifications |
一次提交一行;终态 verified / failed / error |
| 企业核验 | org_real_name_verifications |
一次认证一行;终态 verified / failed |
| 实名等级 | identity_level |
L0 未实名/未认证、L1 个人二要素或企业主体认证、L2 企业资金权限认证 |
| 密钥可用性 | account_api_keys |
status 两态 active / disabled;封禁即不可调用,软删行不进处置清单 |
边界
归属口径:本域端点 = 门户实名校验链 /api/account/real-name(5)+ 内部运营链 /internal/risk(9)+ 运营面风控与实名复核段(11);两条运营通道共用同一实现。
能力矩阵
| 能力 | 运营面 | 内部运营链 | 门户用户 | 调度方 |
|---|---|---|---|---|
| 规则目录增改查 / 触发扫描 | ✓ | ✓ | ✗ | ✓(周期) |
| 台账查询与解除 / 密钥封禁解封 | ✓ | ✓ | ✗ | ✗ |
| 个人实名提交与查询 | ✗ | ✗ | ✓(本人) | ✗ |
| 企业实名发起与自助确认 | ✗ | ✗ | ✓(组织管理员) | ✗ |
| 企业实名运营复核定案 | ✓ | ✗ | ✗ | ✗ |
上游依赖
| 上游 | 依赖内容 | 语义 |
|---|---|---|
| 计量与计费域 | 用量日聚合(组织 + 组 + 日)、扣减流水金额、免计费留痕计数 | 三类扫描的只读判据输入,本域不重算计量口径 |
| 钱包与账务域 | 组织到客户的映射、现金余额与可用额度 | 台账行的客户归属与门禁、账龄判定的读数源 |
| 租户与组织域 | 组织存在性、主体性质、实名状态与等级、组织名与信用代码 | 实名主体与票种门禁的判定输入 |
| 订购与支付域 | 密钥台账(归属组织与组、展示前缀、软删标记、状态) | 风控处置的对象与处置后的可用性 |
| 身份域 | 登录失败计数与验证码门禁、协议同意留痕 | 门禁策略口径的落点,本域不实现 |
下游被引用
| 引用方 | 引用内容 | 语义 |
|---|---|---|
| 计费路由(router) | 生效限速参数、密钥可用性判定 | 限速下调的执行面;扣费第二层按密钥状态拒绝被禁用密钥 |
| 运营管理域 | 规则变更、事件解除、密钥处置、实名复核的审计行 | 四类动作留痕,供运营台与合规追溯 |
| 发票域 | 实名等级对票种的判定入口 | 普票需 L1、专票需企业 L2、个人恒不可专票(详见 D08) |
| 用户自助与门户域 | 实名状态与等级、协议重新确认标记、告警站内信 | 客户视角展示(编排详见 D12) |
group_id只作定位线索、不建外键:组可能被停用,台账必须留在历史里可查。核验记录的操作人列都是置空删除——用户注销不连带抹掉实名事实。
status 列。| 表 | 职责 | 关键字段 |
|---|---|---|
| risk_rules | 规则目录:类型 + 阈值 + 窗口 + 环比参数 + 动作 + 启用开关 + 作用范围 | rule_type / scope_org_id / threshold_tokens / window_days / params / action / enabled |
| risk_events | 命中台账:触发与阈值快照、处置状态、去重基准时刻 | rule_id / customer_id / organization_id / group_id / trigger_tokens / status / triggered_at |
| user_real_name_verifications | 个人核验尝试与独立同意留痕 | user_id / channel / status / id_no_last4 / consent_version / privacy_policy_version / consented_at |
| org_real_name_verifications | 企业核验记录与两条定案路径的操作人留痕 | organization_id / channel / status / expected_amount_cents / attempt_count / fail_reason / reviewed_by / review_note |
threshold_tokens 与 trigger_tokens 为 bigint、覆盖大模型用量量级,金额类判据以分整数落同一组列;window_days 非空、默认 1、可配 1~90 天。triggered_at 即去重基准,组为空的规则按组为空匹配。active、处置后 resolved;两张核验表缺省均 pending,个人侧多一个 error(渠道异常留痕,区别于明确比对不符的 failed)。submitted_by / confirmed_by 与 reviewed_by 分开,审计可辨「谁批的」属哪侧。verified 即视同 L2),个人侧取组织所有者等级、缺失按 L0;软删密钥不受封禁 / 解封。window_days 默认 1、threshold_tokens 必须为正、risk_spike_dedupe_hours 默认 24 内同规则 + 同组织 + 同组不重复落台账与发信。multiplier 默认 3(必须为正)、baseline_periods 默认 3、consecutive_periods 默认 2,后两者至少 1;窗口起点为业务日减「连续周期数 + 基线周期数」,基线为零不触发。notify_and_downshift 命中的范围生效限速减半,直至该台账置 resolved;本域只落信号与生效参数,收敛到模型侧的执行面在计费路由。reconcile_scan_window_days 默认 1),只取已完结窗口以免在途数据误报;差异超过 reconcile_tolerance_amount(默认 0,即精确比对)且该组至少有量或有钱才落台账,纯入账日不算异常。reconcile_dedupe_hours 默认 24。reconcile_waiver_spike_ratio 默认 5、计数下限 reconcile_waiver_spike_min_count 默认 10,任一非正即关闭该告警;窗口天数与对账扫描同源。key_disabled,客户侧密钥状态页即时可见「已禁用」;台账行、展示前缀与历史归因不被改写。status 两值;检索按展示前缀模糊匹配并按组织与状态收窄。id_verify_daily_limit 默认 5、按自然日清零,成功、比对不符、渠道异常都计入(异常可能是「已计费但无结果」,口径与渠道账单对齐)。manual_review_required),未知渠道按需人工复核处理(fail-closed);应打金额由渠道发起时生成,比对失败累计不超过 3 次,超限置失败并 422,需重新发起。review_note_required),通过走与企业自助同一回写点,保证等级与时间戳口径不分叉。verification_not_pending),改判须重新发起;驳回只回退处于进行中的主体、不降级已通过者;提交 / 确认 / 审核三人分列留痕。实名等级对票种的前置判定落点在发票域(专票需企业 L2、普票需 L1、个人恒不可专票,详见 D08)。active;可用不大于 0 且宽限未到即 grace(仍服务,属催缴阶段);宽限已尽或无宽限即 overdue;banned 与 closed 按状态拒绝。宽限天数默认 0(额度尽即停服),开启后自动授限且重授有冷却期(防最小充值循环反复刷宽限)。captcha_required)、达 5 次锁 15 分钟(423 account_locked);IP 维度两档——达 10 次要图形码、达 30 次按重试等待拒绝;发码前须过滑块一次性票据(开关默认开启)。terms_not_agreed。| 方法 | 路径 | 语义 |
|---|---|---|
| POST | /api/account/real-name/individual/submit |
个人实名提交:须携单独同意;通过即生效并回写等级 |
| GET | /api/account/real-name/individual/status |
个人实名状态与等级 |
| POST | /api/account/real-name/company/submit |
发起企业核验:组织管理员以上,可指定渠道 |
| POST | /api/account/real-name/company/confirm |
企业侧自助确认:仅可自动定案的渠道,其余 403 manual_review_required |
| GET | /api/account/real-name/status |
企业实名状态与等级、最近一次渠道 |
| 方法 | 路径 | 语义 |
|---|---|---|
| GET | /internal/risk/rules |
规则目录:可按作用范围与启用态筛选,按创建时刻倒序 |
| POST | /internal/risk/rules |
新建规则:平台级不指定组织、组织级绑定范围;参数形态互斥校验 |
| PATCH | /internal/risk/rules/{rule_id} |
编辑规则:阈值 / 窗口 / 参数 / 动作 / 启用开关,下轮扫描生效 |
| GET | /internal/risk/events |
处置台账:可按规则、组织、状态筛选,按命中时刻倒序,上限 200 |
| POST | /internal/risk/events/{event_id}/resolve |
解除事件:置已处置、幂等,返回是否真正变更 |
| POST | /internal/risk/scan |
手动触发扫描:两类规则一并执行,返回新建台账数 |
| GET | /internal/risk/keys |
密钥检索:按展示前缀模糊匹配,可叠加组织与状态筛选 |
| POST | /internal/risk/keys/{key_id}/disable |
密钥封禁:置禁用并落站内信,幂等 |
| POST | /internal/risk/keys/{key_id}/enable |
密钥解封:恢复可用,幂等 |
key_not_found。| 方法 | 路径 | 语义 |
|---|---|---|
| GET | /api/account/ops/risk/rules |
规则目录(与内部运营链同源同实现) |
| POST | /api/account/ops/risk/rules |
新建规则(携审计:类型、阈值、窗口、参数、动作) |
| PATCH | /api/account/ops/risk/rules/{rule_id} |
编辑规则(携启用态留痕) |
| GET | /api/account/ops/risk/events |
处置台账(审计与处置回写数据源) |
| POST | /api/account/ops/risk/events/{event_id}/resolve |
解除事件(生效限速随之收敛) |
| POST | /api/account/ops/risk/scan |
手动触发扫描(返回新建台账数) |
| GET | /api/account/ops/risk/keys |
密钥检索(泄露处置定位) |
| POST | /api/account/ops/risk/keys/{key_id}/kill |
密钥熔断:原因必填,置禁用 + 站内信 + 审计 |
| POST | /api/account/ops/risk/keys/{key_id}/unblock |
密钥解封:原因必填,恢复可用 + 审计 |
| GET | /api/account/ops/real-name/verifications |
实名复核队列:缺省取待复核与自动失败两类,按提交时刻升序 |
| POST | /api/account/ops/real-name/verifications/{verification_id}/review |
运营复核定案:通过或驳回(原因必填),审核人取绑定员工本人 |
notify_and_downshift 的下调以「台账未解除」为条件,本域只落信号与生效参数,执行面在计费路由。| # | 验收口径 |
|---|---|
| 1 | 建规则后立即在目录可见、字段与提交一致;关闭启用态后下一轮扫描不再命中 |
| 2 | 绝对阈值规则缺阈值被拒;环比规则倍数不大于 0 或周期数小于 1 被拒;两类参数形态互换提交被拒 |
| 3 | 用量超过阈值:台账新增一行(触发值为实测合计、阈值为规则值)并新增站内信;恰好等值不落台账 |
| 4 | 去重窗口内重复扫描:台账数不增、站内信不重复;越过去重窗口后再命中可再次落台账 |
| 5 | 环比规则:连续周期各日均超过基线均值乘倍数才命中,任一日未超过不命中;基线为零的新客户不触发 |
| 6 | 环比命中伴随限速下调时该范围生效限速减半,解除事件后恢复档位默认值 |
| 7 | 组内计量与扣减差异超容差:落台账一行,触发值为差异金额分整数、阈值为容差分整数,站内信含多扣或缺扣方向与两侧金额 |
| 8 | 扣减大于计量为多扣、小于为缺扣;组内量钱都为零的日不参与判定;差异在容差内不落台账,容差调大后同一差异不再命中 |
| 9 | 免计费突增:仅当计数达下限且超过前一等长窗口计数乘倍数时命中;倍数或下限非正时该告警整体关闭 |
| 10 | 内置规则(对账异常、免计费突增)在首次命中前自动出现且仅一条平台级行,重复扫描不产生第二条 |
| 11 | 解除事件后该行为已处置;重复解除返回未变更 |
| 12 | 未软删密钥封禁后状态为禁用、站内信一条,再次封禁不重复发信且标记未变更;该密钥调用被扣费侧拒绝并返回 403 key_disabled;已软删密钥封禁 404 key_not_found;解封后可用、重复解封幂等 |
| 13 | 个人实名未携单独同意 422 realname_consent_required 且核验记录数不增加 |
| 14 | 个人实名通过:实名状态为真、等级 L1、核验方式为渠道标识;记录为已通过且末四位与提交一致、同意版本与同意时刻非空 |
| 15 | 个人实名比对不符 422 identity_verify_failed 且实名状态不变;渠道异常时记录为异常态且异常原样上抛;当日提交达上限 429 identity_verify_daily_limit_exceeded 且记录不增 |
| 16 | 非白名单环境解析 mock 渠道:503 mock_provider_not_allowed 且不落核验行、不占额度;真实渠道凭据缺失 503 identity_channel_not_configured |
| 17 | 企业实名前置:非企业主体 400;已实名 409;存在进行中核验 409 |
| 18 | 企业自助确认金额一致即通过(状态已验证、等级 L2、实名时刻非空);不一致未超上限 400 amount_mismatch,达上限置失败并 422 real_name_attempts_exceeded;需人工复核的渠道一律 403 manual_review_required 且主体状态不被改写 |
| 19 | 运营复核驳回未给原因 422 review_note_required,给出原因后记录为失败、主体退为未认证;复核通过时主体状态与等级同自助路径口径一致,审核人 / 审核时刻 / 结论说明非空且与提交 / 确认人分列 |
| 20 | 对终态记录再次复核 409 verification_not_pending;已完成的企业在另一条记录被驳回时不被降级 |
| 21 | 复核队列缺省返回待复核与自动失败记录、按提交时刻升序,且不含证件照或身份证明文字段 |
| 22 | 组织所有者缺失(已注销)时个人等级判定为最低档,普票门禁拒绝 |
| 23 | 协议版本提升后未重新确认的用户在下单或充值入口被 403 terms_not_agreed,确认后放行;关掉门禁开关后不再拦截 |
| 24 | 内部运营链无令牌或令牌不含运营范围:9 个端点均拒绝;运营面只持客户范围访问风控段、只持风控范围访问实名复核段均被拒 |
notify_and_downshift 之外的自动动作(自动封禁密钥、自动降级准入门槛)尚不可配,需先定「谁有权自动执行」与回滚路径。L1 与 L2 目前按过渡口径等价,资金权限认证接入后的升降级规则、宽限之外的多级提醒与冻结前置阈值亦待与通知与触达域、账户状态与准入域共同定口径。