Files
Fulfilled-Knowledge/wishfulfilled-wiki/05_需求文档/06-子系统-风险与反欺诈.md
2026-05-27 15:40:32 +08:00

192 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
1|# 子系统 06 — 风险与反欺诈 (`risk`) v1.0
2|
3|## 子系统概述
4|
5|| 维度 | 说明 |
6|| --- | --- |
7|| 代号 | `risk` |
8|| 核心职责 | 强弱关联判断、黑名单实体管理、风险事件管理、双重退款检测 |
9|| 数据所有权 | `risk_signals`, `risk_cases`, `blacklist_entities`, `refund_match_results` |
10|| 启动依赖 | identity软依赖 |
11|| 外部系统依赖 | Amazon退款数据、财务系统OA 返款数据) |
12|
13|---
14|
15|## 1. 模块划分
16|
17|```
18|┌─────────────────────────────────────────────────────────────┐
19|│ risk 子系统 │
20|│ │
21|│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
22|│ │ M1: 关联判断 │ │ M2: 黑名单 │ │ M3: 双重退款 │ │
23|│ │ 引擎 │→│ 管理 │ │ 检测 │ │
24|│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
25|│ │ │ │ │
26|│ ▼ ▼ ▼ │
27|│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
28|│ │ M4: 风险事件 │ │ M5: 风险审核 │ │ M6: 对外 API │ │
29|│ │ 管理 │ │ Admin │ │ Gateway │ │
30|│ └──────────────┘ └──────────────┘ └──────────────┘ │
31|│ │
32|└─────────────────────────────────────────────────────────────┘
33|```
34|
35|| # | 模块 | 职责 |
36|| --- | --- | --- |
37|| M1 | 关联判断引擎 | 对每次风险信号做强弱关联判断(强:邮箱/设备/电话/地址/订单号/ProfileID/收款信息 命中→高风险IP单独/姓名单独/同址异名→观察+复核) |
38|| M2 | 黑名单管理 | 黑名单实体管理(添加/移除/过期)、黑名单同步、命中查询 |
39|| M3 | 双重退款检测 | Amazon 退款记录 vs OA 返款记录的自动比对,检测重复退款 |
40|| M4 | 风险事件管理 | 风险事件创建、状态流转、关联工单/推送/计划状态回写 |
41|| M5 | 风险审核 Admin | 人工复核弱关联风险、确认/排除诈骗、黑名单操作 |
42|| M6 | 对外 API Gateway | 供所有子系统查询风险状态、上报风险信号 |
43|
44|---
45|
46|## 2. 各模块内外说明
47|
48|### 2.1 M1: 关联判断引擎
49|
50|| 维度 | 说明 |
51|| --- | --- |
52|| **对内** | 每次风险信号进入时执行8 项强关联维度(邮箱/设备号/电话/收件人姓名+地址/订单号/聊天记录/Profile ID/收款信息→任一命中→高风险3 项弱关联维度IP单独/姓名单独/同址异名)→高风险观察+人工复核;判断结果:强关联/弱关联/无关联 |
53|| **对外接口** | `GET /api/risk/check/{person_id}` — 风险查询(含关联判断结果) |
54|| **数据写入** | `risk_signals` |
55|| **依赖** | `GET /api/identity/context/{person_id}` — 获取身份线索用于关联判断 |
56|| **关键规则** | 风险判断不是一次性,每次有效互动都要重做;非 APP 用户缺设备/注册邮箱等维度→风险识别能力下降 |
57|
58|### 2.2 M2: 黑名单管理
59|
60|| 维度 | 说明 |
61|| --- | --- |
62|| **对内** | 黑名单实体 CRUD邮箱/设备/电话/地址/收款信息);黑名单命中查询(任何子系统查询用户是否在黑名单);黑名单同步(确认诈骗后同步到黑名单);黑名单过期/申诉机制 |
63|| **对外接口** | `GET /api/risk/blacklist/check?type=EMAIL&value=xxx` — 黑名单命中检查 |
64|| **数据写入** | `blacklist_entities` |
65|| **待确认** | 黑名单是否有过期时间?申诉/移除流程? |
66|
67|### 2.3 M3: 双重退款检测
68|
69|| 维度 | 说明 |
70|| --- | --- |
71|| **对内** | 采集 Amazon 退款记录(外部系统同步)+ OA 返款记录(财务系统同步);按订单号/用户/金额/时间自动比对;匹配结果:无重复/疑似重复/确认重复;确认重复时强告警+阻止后续返款 |
72|| **对外接口** | `GET /api/risk/double-refund-check/{person_id}` — 双重退款检测 |
73|| **数据写入** | `refund_match_results` |
74|| **依赖** | Amazon 退款数据外部、OA 返款数据(外部财务系统) |
75|| **待确认** | Amazon 退款数据如何及时获取OA 返款记录是否已有 API |
76|
77|### 2.4 M4: 风险事件管理
78|
79|| 维度 | 说明 |
80|| --- | --- |
81|| **对内** | 风险事件创建(客服上报疑似诈骗 / 双重退款检测 / 关联判断命中);事件状态流转(待复核→复核中→确认风险/排除风险);高风险链路动作(拦截继续推送/拦截自动退款/拦截自动放行);回写关联工单/推送/计划状态 |
82|| **对外接口** | `POST /api/risk/report` — 上报风险信号(客服、系统自动均可调用) |
83|| **数据写入** | `risk_cases` |
84|
85|### 2.5 M5: 风险审核 Admin
86|
87|| 维度 | 说明 |
88|| --- | --- |
89|| **对内** | 人工复核弱关联风险;确认/排除诈骗判定;黑名单手动操作;风险口径维护 |
90|| **对外接口** | 管理 API |
91|| **待确认** | 复核时效要求N 分钟内必须复核?) |
92|
93|---
94|
95|## 3. 对外 API 契约(草案)
96|
97|| 接口 | 方法 | 输入 | 输出 | 消费者 |
98|| --- | --- | --- | --- | --- |
99|| 风险查询 | `GET /api/risk/check/{person_id}` | person_id | `{risk_level(NONE/WEAK/STRONG), signals[], cases[]}` | 所有子系统(每次互动时调用) |
100|| 上报风险信号 | `POST /api/risk/report` | `{person_id, signal_type, evidence, reported_by}` | `{signal_id}` | support客服上报诈骗、outreach异常互动 |
101|| 黑名单命中 | `GET /api/risk/blacklist/check?type=&value=` | 维度类型+值 | `{hit, entity}` | outreach发送前、identity身份归并时 |
102|| 双重退款检测 | `GET /api/risk/double-refund-check/{person_id}` | person_id | `{status, matched_refunds[]}` | outreach返款前、support退款处理前 |
103|
104|---
105|
106|## 4. 数据对象
107|
108|| 对象 | 核心字段 | 说明 |
109|| --- | --- | --- |
110|| `risk_signals` | signal_id, person_id, signal_type, hit_dimensions[], risk_level(STRONG/WEAK), detected_at | 风险信号(每次互动生成的判断) |
111|| `risk_cases` | case_id, person_id, source, status(PENDING_REVIEW/REVIEWING/CONFIRMED_RISK/RULED_OUT), reviewer, created_at, resolved_at | 风险事件 |
112|| `blacklist_entities` | entity_id, entity_type(EMAIL/DEVICE/PHONE/ADDRESS/PAYMENT), entity_value, status(ACTIVE/EXPIRED/APPEALED), added_at, added_by | 黑名单实体 |
113|| `refund_match_results` | match_id, person_id, amazon_refund_id, oa_refund_id, match_status(NO_DUPLICATE/SUSPECTED/CONFIRMED), matched_at | 双重退款比对结果 |
114|
115|---
116|
117|## 5. 业务澄清问题清单 — risk
118|
119|### 5.1 强弱关联规则4 项)
120|
121|| # | 问题 | 优先级 |
122|| --- | --- | --- |
123|| R-01 | 8 项强关联维度中,每个维度的命中是独立判断还是组合判断?(例如仅「设备号命中」是否就足够判定强关联?还是需要「设备号 + 电话」同时命中?) | **P0** |
124|| R-02 | 「强关联→直接进入高风险或黑名单链路」——这里的「直接」是指全自动化拦截无需人工确认?还是系统先拦截再人工审核?(涉及自动化力度) | **P0** |
125|| R-03 | 弱关联的「观察期」多长?观察期过后是自动解除还是必须人工确认?观察期内用户继续参与互动如何处理? | P1 |
126|| R-04 | 风险判断中「IP 单独命中」列为弱关联——IP 从哪里获取JOYHUB APPEDM 邮件头?客服系统?)不同来源的 IP 可靠性不同 | P1 |
127|
128|### 5.2 双重退款4 项)
129|
130|| # | 问题 | 优先级 |
131|| --- | --- | --- |
132|| R-05 | Amazon 退款数据如何获取SP-API 实时拉取T+1 同步?手动导入 CSV同步频率决定检测时效 | **P0** |
133|| R-06 | OA 返款系统是哪个?是否有 API如果没有 API返款记录怎么录入财务手动录入CSV 导入?) | **P0** |
134|| R-07 | 「双重退款」比对的关键字段是什么?(订单号?金额?用户?时间窗口?)匹配精度?(金额完全相等还是 ±X%?时间窗口多宽?) | P1 |
135|| R-08 | 确认重复退款后,阻止后续返款——「阻止」是指系统自动拦截返款指令,还是只发告警让人工决定? | P1 |
136|
137|### 5.3 黑名单管理3 项)
138|
139|| # | 问题 | 优先级 |
140|| --- | --- | --- |
141|| R-09 | 黑名单是否有过期/申诉/解除机制?(例如用户被误标后如何申诉?谁有权解除?) | P1 |
142|| R-10 | 黑名单是否需要与外部系统同步?(例如 JOYHUB 的黑名单Amazon 的欺诈标记?)同步方向? | P1 |
143|| R-11 | 黑名单的粒度——是标记「真实人」还是「某个维度的值」?(标记的是真实人 ID 还是具体的邮箱/设备?) | P1 |
144|
145|### 5.4 风险可见性3 项)
146|
147|| # | 问题 | 优先级 |
148|| --- | --- | --- |
149|| R-12 | 文档要求「客服、审核、退款等环节必须都能看到风险提醒」——风险提醒的展现形式是什么?(红色标签?弹窗?工单页顶部横幅?) | P1 |
150|| R-13 | 风险状态的「提醒」通过什么通道发送audit 通知中心IM 消息?系统内消息?) | P1 |
151|| R-14 | 风险人员角色是否需要独立的风险控制台前端?该前端需要哪些功能?(事件列表/审核工作台/黑名单管理/统计报表?) | P2 |
152|
### 5.5 高级风险检测能力4 项)
| # | 问题 | 优先级 |
| --- | --- | --- |
| R-15 | 是否需要行为速度检测?(同一真实人短时间内大量注册/大量申请退款/大量提交评价→触发异常行为告警?) | P1 |
| R-16 | 是否需要设备指纹/浏览器指纹?(识别同一设备换账号、模拟器、虚拟机等欺诈行为?) | P2 |
| R-17 | 是否需要地理位置异常检测?(同一账号短期内从不同国家/城市登录→触发告警?) | P2 |
| R-18 | 风险评分模型——是否需要一个综合风险分数0-100而非二元判断强/弱/无)?评分模型的因子和权重? | P1 |
### 5.6 风险事件处理流程3 项)
| # | 问题 | 优先级 |
| --- | --- | --- |
| R-19 | 风险事件的优先级P0/P1/P2如何定义双重退款确认→P0单次弱关联→P2不同优先级的响应 SLA | P1 |
| R-20 | 风险人员的工作台——是否需要「待审核队列」「审核中」「已处理」等看板视图?是否需要分配给具体审核人? | P1 |
| R-21 | 同一个人短时间内触发多次风险信号——是每次生成新事件还是合并到已有事件?合并规则? | P1 |
### 5.7 黑名单管理补充3 项)
| # | 问题 | 优先级 |
| --- | --- | --- |
| R-22 | 黑名单的生效范围——加入黑名单后是「全系统拦截」还是「只拦截某些操作」?(是否还允许正常购买?只拦截测评参与?) | P1 |
| R-23 | 黑名单是否需要分级?(一级黑名单→全拦截 / 二级黑名单→降频+人工审核 / 三级黑名单→仅标记提醒) | P1 |
| R-24 | 黑名单是否需要与外部欺诈数据库同步如行业共享的欺诈黑名单Amazon 的 abuse 标记?) | P2 |
### 5.8 非 APP 用户风险盲区2 项)
| # | 问题 | 优先级 |
| --- | --- | --- |
| R-25 | 文档已明确「非 APP 用户识别能力下降」——是否需要额外的风控措施?(例如非 APP 用户的返款额度降低?首次返款必须人工审核?) | P1 |
| R-26 | 是否计划引导非 APP 用户注册 APP 以补全风险画像EDM/客服主动引导注册——注册转化跟踪?) | P2 |
### 5.9 实施层面3 项)
| # | 问题 | 优先级 |
| --- | --- | --- |
| R-27 | 风险判断的实时性要求——每次互动时实时调用 risk API性能 overhead需要缓存策略 | P1 |
| R-28 | 双重退款检测的时效——Amazon 退款数据(外部)同步延迟 vs OA 返款实时——T+N 的延迟是否可接受? | P1 |
| R-29 | 风险事件的数据保留策略?(已解决的诈骗案件数据保留多久?用于后续模型训练还是定期清理?) | P2 |