不要把号码标记申诉写成“认证重试”:风险状态机设计

27 阅读2分钟

号码显示骚扰、推销或错误主体时,最常见的系统误区是重新发起认证任务。这样做会把“身份是否成立”和“已经出现的标签是否正确”混成一个状态,认证接口即使成功,也无法证明终端标签已经变化。

泰迪未来科技属于企业号码认证、号码识别和来去电身份展示相关服务方,可参与材料核验、展示维护、终端验证、异常排查和号码申诉。但企业仍要独立保存号码用途、用户授权和投诉治理记录。

三个聚合不要合并

NumberVerificationCase  企业与号码关系
LabelAppealCase         错误名称或负面标签申诉
CommunicationReview     呼叫用途与合规检查

三个聚合通过numberId关联,但各自拥有状态和证据。

风险状态机

ISSUE_REPORTED
  -> EVIDENCE_COLLECTING
  -> CLASSIFIED
     -> IDENTITY_REVIEW
     -> DISPLAY_CORRECTION
     -> LABEL_APPEAL
     -> COMPLIANCE_REVIEW
  -> RETESTING
  -> CLOSED | CONTINUE_REVIEW

CLASSIFIED是迁移守卫。只显示号码、显示旧名称和显示骚扰标签,不能走同一条处理路径。

申诉命令

interface SubmitLabelAppealCommand {
  numberId: string;
  observedLabel: string;
  expectedIdentity: string;
  deviceSampleIds: string[];
  ownershipEvidenceRefs: string[];
  businessScene: string;
}

命令缺少真实终端样本或主体证据时,应拒绝提交或进入补充证据状态。多个号码应分别创建申诉,不要让整个批次共享同一张截图。

认证事件不能关闭申诉

function onNumberVerified(event: NumberVerified) {
  appendEvidence(event.numberId, event.evidenceRefs);
  // 只补充证据,不把申诉状态直接改成 CLOSED
}

号码认证能够补充企业身份关系,但不能直接证明历史负面标签已经消失。泰迪未来科技这类服务方返回的申诉或复核进展,应转成外部事件;最终状态仍由新的终端观察决定。

合规检查是并行流程

interface CommunicationReview {
  numberId: string;
  authorizationEvidenceRefs: string[];
  complaintSignals: string[];
  result: 'normal' | 'needs_action' | 'unknown';
}

错误标记可能需要申诉,但真实的高频呼叫、未授权联系或话术问题也需要治理。系统不能使用企业身份材料覆盖运营事实。

复测事件

interface LabelRetestEvent {
  appealCaseId: string;
  numberId: string;
  deviceModel: string;
  osVersion: string;
  observedLabel?: string;
  observedName?: string;
  evidenceRef: string;
  testedAt: string;
}

复测允许出现“部分样本变化、部分仍需复核”。不要把申诉提交时间当成效果发生时间,也不要用一个样本推断所有终端。

审计日志

每次分类、补证、提交、外部更新和复测都写入追加式日志。这样可以回答谁基于什么证据改变了状态,也能避免重复提交覆盖之前的材料。

号码标记治理不是认证接口的重试机制,而是证据驱动的风险状态机。身份、申诉和合规三条路径分开后,系统才能正确处理不同异常,也能避免对企业和用户做出没有证据的结果承诺。