2026-06-10 16:05:47 +08:00
|
|
|
|
# DWBG9FB3 个人风险档案 — 响应结构说明
|
|
|
|
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
|
|
|
|
|
|
|
`DWBG9FB3`(个人风险档案)本身是一个独立接口,接收三要素入参后,**并发**调用 12 个子产品处理器,将各子接口原始返回数据**直接拼接融合**为一个 JSON 对象返回。
|
|
|
|
|
|
|
|
|
|
|
|
- 不使用 `success` / `data` / `error` 等包装结构
|
|
|
|
|
|
- 顶层 key 为简短**英文单词**字段名
|
|
|
|
|
|
- 每个大字段的 value 即为对应子处理器的原始返回对象
|
|
|
|
|
|
- 子产品调用失败时,该字段值为 `null`,不影响其他字段
|
2026-06-10 17:47:36 +08:00
|
|
|
|
- 汇总时递归剔除上游流水号字段:`order_no`、`orderNo`
|
2026-06-10 16:05:47 +08:00
|
|
|
|
|
2026-06-10 17:47:36 +08:00
|
|
|
|
## 最终扁平结构(dwbg9FB3OutputSchema)
|
|
|
|
|
|
|
|
|
|
|
|
顶层共 **13 个 key**,由 `buildDWBG9FB3Response` 按 `dwbg9FB3OutputSchema` 构造:
|
|
|
|
|
|
|
|
|
|
|
|
| 序号 | 顶层 key | 产品编码 | 数据来源方法 | value 类型 |
|
|
|
|
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
|
|
|
|
| 1 | `RA` | — | `buildDWBG9FB3RA` | 对象(6 个评分字段) |
|
|
|
|
|
|
| 2 | `presence` | YYSYE7V5 | `ProcessYYSYE7V5Request` | 对象 / null |
|
|
|
|
|
|
| 3 | `duration` | YYSYP0T4 | `ProcessYYSYP0T4Request` | 对象 / null |
|
|
|
|
|
|
| 4 | `triple` | YYSYK9R4 | `ProcessYYSYK9R4Request` | 对象 / null |
|
|
|
|
|
|
| 5 | `identity` | IVYZN2P8 | `ProcessIVYZN2P8Request` | 对象 / null |
|
|
|
|
|
|
| 6 | `fraud` | JRZQV3HM | `ProcessJRZQV3HMRequest` | 对象 / null |
|
|
|
|
|
|
| 7 | `probe` | JRZQ4B6C | `ProcessJRZQ4B6CRequest` | 对象 / null |
|
|
|
|
|
|
| 8 | `rating` | JRZQ5E9F | `ProcessJRZQ5E9FRequest` | 对象 / null |
|
|
|
|
|
|
| 9 | `intent` | JRZQ3C7B | `ProcessJRZQ3C7BRequest` | 对象 / null |
|
|
|
|
|
|
| 10 | `special` | JRZQV7MD | `ProcessJRZQV7MDRequest` | 对象 / null |
|
|
|
|
|
|
| 11 | `complaint` | JRZQVT43 | `ProcessJRZQVT43Request` | 对象 / null |
|
|
|
|
|
|
| 12 | `behavior` | JRZQV0MD | `ProcessJRZQV0MDRequest` | 对象 / null |
|
|
|
|
|
|
| 13 | `judicial` | FLXG7E8F | `ProcessFLXG7E8FRequest` | 对象 / null |
|
|
|
|
|
|
|
|
|
|
|
|
### RA 子结构
|
|
|
|
|
|
|
|
|
|
|
|
| key | 计算方法 | 说明 |
|
|
|
|
|
|
| :--- | :--- | :--- |
|
|
|
|
|
|
| `ra_score` | `buildDWBG9FB3RA` | 综合安全分(千分制) |
|
|
|
|
|
|
| `ra_level` | `raLevelFromScore` | A-F 等级(每档 100 分) |
|
|
|
|
|
|
| `ra_fraud_score` | `calcRAFraudScore` | 欺诈维度安全分 |
|
|
|
|
|
|
| `ra_credit_score` | `calcRACreditScore` | 借贷维度安全分 |
|
|
|
|
|
|
| `ra_judicial_score` | `calcRAJudicialScore` | 司法维度安全分 |
|
|
|
|
|
|
| `ra_verify_score` | `calcRAVerifyScore` | 核验维度安全分 |
|
2026-06-10 16:05:47 +08:00
|
|
|
|
|
|
|
|
|
|
## 请求参数
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"id_card": "110101199001011234",
|
|
|
|
|
|
"name": "张三",
|
|
|
|
|
|
"mobile_no": "13800138000"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 响应结构
|
|
|
|
|
|
|
2026-06-10 17:47:36 +08:00
|
|
|
|
顶层为一个扁平对象,包含总体风险评估 `RA` 与 12 个子维度字段:
|
2026-06-10 16:05:47 +08:00
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
2026-06-10 17:47:36 +08:00
|
|
|
|
"RA": {
|
|
|
|
|
|
"ra_score": 495,
|
|
|
|
|
|
"ra_level": "F",
|
|
|
|
|
|
"ra_fraud_score": 890,
|
|
|
|
|
|
"ra_credit_score": 0,
|
|
|
|
|
|
"ra_judicial_score": 580,
|
|
|
|
|
|
"ra_verify_score": 850
|
|
|
|
|
|
},
|
2026-06-10 16:05:47 +08:00
|
|
|
|
"presence": { },
|
|
|
|
|
|
"duration": { },
|
|
|
|
|
|
"triple": { },
|
|
|
|
|
|
"identity": { },
|
|
|
|
|
|
"fraud": { },
|
|
|
|
|
|
"probe": { },
|
|
|
|
|
|
"rating": { },
|
|
|
|
|
|
"intent": { },
|
|
|
|
|
|
"special": { },
|
|
|
|
|
|
"complaint": { },
|
|
|
|
|
|
"behavior": { },
|
|
|
|
|
|
"judicial": { }
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-10 17:47:36 +08:00
|
|
|
|
## RA 总体安全评估(千分制,越高越安全)
|
|
|
|
|
|
|
|
|
|
|
|
| 字段 | 计算方法 | 说明 |
|
|
|
|
|
|
| :--- | :--- | :--- |
|
|
|
|
|
|
| `ra_fraud_score` | `calcRAFraudScore` | 欺诈/黑名单维度安全分 |
|
|
|
|
|
|
| `ra_credit_score` | `calcRACreditScore` | 借贷/逾期维度安全分 |
|
|
|
|
|
|
| `ra_judicial_score` | `calcRAJudicialScore` | 司法涉诉维度安全分 |
|
|
|
|
|
|
| `ra_verify_score` | `calcRAVerifyScore` | 身份/在网核验维度安全分 |
|
|
|
|
|
|
| `ra_score` | `buildDWBG9FB3RA` | 四维安全分加权汇总 |
|
|
|
|
|
|
| `ra_level` | `raLevelFromScore` | A 最安全,F 最不安全 |
|
|
|
|
|
|
|
|
|
|
|
|
综合分权重:`fraud 25% + credit 35% + judicial 25% + verify 15%`
|
|
|
|
|
|
|
|
|
|
|
|
等级划分:A(900-1000)、B(800-899)、C(700-799)、D(600-699)、E(500-599)、F(0-499)
|
|
|
|
|
|
|
|
|
|
|
|
各维度统计方式:先由 `*RiskPoints` 方法累计风险扣分,再 `安全分 = 1000 - 扣分`
|
|
|
|
|
|
|
|
|
|
|
|
详细规则见 [dwbg9fb3_ra.md](./dwbg9fb3_ra.md)
|
|
|
|
|
|
|
2026-06-10 16:05:47 +08:00
|
|
|
|
## 响应示例
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
2026-06-10 17:47:36 +08:00
|
|
|
|
"RA": {
|
|
|
|
|
|
"ra_score": 495,
|
|
|
|
|
|
"ra_level": "F",
|
|
|
|
|
|
"ra_fraud_score": 890,
|
|
|
|
|
|
"ra_credit_score": 0,
|
|
|
|
|
|
"ra_judicial_score": 580,
|
|
|
|
|
|
"ra_verify_score": 850
|
|
|
|
|
|
},
|
2026-06-10 16:05:47 +08:00
|
|
|
|
"presence": {
|
|
|
|
|
|
"status": "1",
|
|
|
|
|
|
"operator": "1"
|
|
|
|
|
|
},
|
|
|
|
|
|
"duration": {
|
|
|
|
|
|
"result": "3",
|
|
|
|
|
|
"desc": "在网时长12-24个月"
|
|
|
|
|
|
},
|
|
|
|
|
|
"triple": {
|
|
|
|
|
|
"state": "1",
|
|
|
|
|
|
"operator": "1"
|
|
|
|
|
|
},
|
|
|
|
|
|
"identity": {
|
|
|
|
|
|
"result": 0,
|
|
|
|
|
|
"desc": "一致",
|
|
|
|
|
|
"sex": "男",
|
|
|
|
|
|
"birthday": "1990-01-01",
|
|
|
|
|
|
"address": "北京市东城区"
|
|
|
|
|
|
},
|
|
|
|
|
|
"fraud": {
|
|
|
|
|
|
"hit": 0
|
|
|
|
|
|
},
|
|
|
|
|
|
"probe": {
|
|
|
|
|
|
"score": 650,
|
|
|
|
|
|
"risk_level": "B"
|
|
|
|
|
|
},
|
|
|
|
|
|
"rating": {
|
|
|
|
|
|
"score": 720,
|
|
|
|
|
|
"level": "A"
|
|
|
|
|
|
},
|
|
|
|
|
|
"intent": {
|
|
|
|
|
|
"apply_loan": {
|
|
|
|
|
|
"d7": { "id": 0, "cell": 1 },
|
|
|
|
|
|
"m1": { "id": 1, "cell": 2 }
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
"special": {
|
|
|
|
|
|
"hit": 0
|
|
|
|
|
|
},
|
|
|
|
|
|
"complaint": {
|
|
|
|
|
|
"hit": 0
|
|
|
|
|
|
},
|
|
|
|
|
|
"behavior": {
|
|
|
|
|
|
"hit": 0
|
|
|
|
|
|
},
|
|
|
|
|
|
"judicial": {
|
|
|
|
|
|
"judicial_data": {
|
|
|
|
|
|
"lawsuitStat": {
|
|
|
|
|
|
"count_total": 0,
|
|
|
|
|
|
"count_jie_total": 0,
|
|
|
|
|
|
"count_wei_total": 0
|
|
|
|
|
|
},
|
|
|
|
|
|
"breachCaseList": [],
|
|
|
|
|
|
"consumptionRestrictionList": []
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 部分失败示例
|
|
|
|
|
|
|
|
|
|
|
|
某个子产品查无记录或异常时,对应字段为 `null`,其余字段正常返回:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"presence": {
|
|
|
|
|
|
"status": "1",
|
|
|
|
|
|
"operator": "1"
|
|
|
|
|
|
},
|
|
|
|
|
|
"judicial": null
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 调用流程
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
flowchart LR
|
|
|
|
|
|
A[DWBG9FB3 请求] --> B[参数校验]
|
|
|
|
|
|
B --> C[并发调用 12 个子处理器]
|
|
|
|
|
|
C --> D1[presence]
|
|
|
|
|
|
C --> D2[duration]
|
|
|
|
|
|
C --> D3[triple]
|
|
|
|
|
|
C --> D4[identity]
|
|
|
|
|
|
C --> D5[fraud]
|
|
|
|
|
|
C --> D6[probe]
|
|
|
|
|
|
C --> D7[rating]
|
|
|
|
|
|
C --> D8[intent]
|
|
|
|
|
|
C --> D9[special]
|
|
|
|
|
|
C --> D10[complaint]
|
|
|
|
|
|
C --> D11[behavior]
|
|
|
|
|
|
C --> D12[judicial]
|
|
|
|
|
|
D1 --> E[拼接融合为一个对象]
|
|
|
|
|
|
D2 --> E
|
|
|
|
|
|
D3 --> E
|
|
|
|
|
|
D4 --> E
|
|
|
|
|
|
D5 --> E
|
|
|
|
|
|
D6 --> E
|
|
|
|
|
|
D7 --> E
|
|
|
|
|
|
D8 --> E
|
|
|
|
|
|
D9 --> E
|
|
|
|
|
|
D10 --> E
|
|
|
|
|
|
D11 --> E
|
|
|
|
|
|
D12 --> E
|
|
|
|
|
|
E --> F[返回 JSON]
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 实现说明
|
|
|
|
|
|
|
|
|
|
|
|
- 复用 `dwbg8b4d` 中的 `callProcessor`,通过 `CombService.GetProcessor` 按产品编码路由。
|
|
|
|
|
|
- 12 个 goroutine 并发执行,结果写入 `map[英文字段名]子处理器原始数据`。
|
|
|
|
|
|
- 子产品数据保持各处理器原有返回结构,不做二次转换。
|