微信日均支付笔数超 10 亿,涉及转账、收款、扫码、提现等多场景。
在黑灰产眼中,支付系统就是现金流通道,攻击目标明确:薅羊毛、盗号洗钱、交易撞库...
微信如何构建实时、精准、低误杀率的风控体系?
一、风控系统总览架构图

整套流程严格控制在 50ms 内完成,核心在于模型分层 + 异步补偿。
二、交易评分引擎:特征 + 模型 + 分数
模型核心逻辑示意:
csharp
def score_transaction(tx):
score = 0
if tx['amount'] > 5000:
score += 30
if is_black_device(tx['device_id']):
score += 50
if is_new_user(tx['user_id']):
score += 20
if check_ip_risk(tx['ip']):
score += 40
return score
得分分布(规则+模型融合):
风险等级 | 分数范围 | 风控动作 |
---|---|---|
正常 | 0-60 | 放行 |
可疑 | 61-80 | 行为验证 + 频控 |
高危 | 81-100 | 拦截 + 上报 |
三、行为图谱:多维构图分析
以用户为中心构建设备-账号-交易图:
css
graph LR
A[手机号A] --> B[设备ID_X]
A --> C[IP地址_P]
D[手机号B] --> B
D --> E[交易ID_Y]
style A fill:#f9f,stroke:#333,stroke-width:2px
style D fill:#faa,stroke:#333,stroke-width:2px
风控引擎基于图谱关系判断可疑团伙行为,如"共享设备 + 大额交易 + 短时多账号操作"。
四、实时 CEP 风控规则(Kafka + Flink 实现)
CEP(复杂事件处理)用于识别"短时间内反常交易组合":
sql
-- 示例:用户 5 分钟内交易 3 笔大额转账
SELECT user_id
FROM transaction_stream
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY event_time
MEASURES A.tx_id AS tx1, B.tx_id AS tx2, C.tx_id AS tx3
ONE ROW PER MATCH
AFTER MATCH SKIP TO NEXT ROW
PATTERN (A B C)
WITHIN INTERVAL '5' MINUTE
DEFINE
A AS A.amount > 2000,
B AS B.amount > 2000,
C AS C.amount > 2000
)
匹配即触发风控动作,如临时冻结账户 + 触发人机验证。
五、风控验证模块:动态验证码 + 人脸 + 声纹
当评分系统判定为"可疑交易"时,引导用户通过"分级验证"方式继续:
php
// 微信前端 JSBridge 验证流程
wx.invoke('requestRiskAuth', {
scene: 'PAY_VERIFY',
user_id: uid,
type: ['face', 'sms']
}, res => {
if (res.err_msg === 'requestRiskAuth:ok') {
proceedPayment()
} else {
alert("验证未通过")
}
})
根据行为画像动态调整验证方式权重:设备新 + IP偏远 → 首选"人脸识别"。
六、日志追踪与拦截溯源
所有风控事件通过链路日志上传:
json
{
"trace_id": "pay-risk-238934",
"user_id": "u238",
"scene": "TRANSFER",
"score": 87,
"verify": "fail",
"action": "block"
}
接入 ELK 系统,支持:
- 📈 实时大盘监控:高风险拦截率曲线
- 📊 异常账号聚类分析:设备分布/行为路径
- 📬 误杀反馈自动修正:进入下次模型训练数据
七、实测数据(腾讯安全团队披露)
指标 | 数值 |
---|---|
高危账号拦截率 | > 97.2% |
误杀率 | < 0.002% |
每日交易实时评分数 | 超 12 亿次 |
人脸验证日调用 | 超 8000 万次 |
模型命中成功率 | 提升 21.4% |
八、拆解对比
模块 | 微信做法 | 普通公司常见做法 |
---|---|---|
模型训练 | 深度图模型 + 高频更新 | 离线 XGBoost/逻辑回归 |
实时处理 | Kafka + Flink CEP 实时流 | 单机规则引擎 |
数据建模 | 用户-设备-IP 多维图谱建模 | 仅用户行为统计 |
验证系统 | JSBridge 接入动态验证类型 | 静态验证码 + 拦截 |
追踪与反馈 | trace_id + 可观测链路日志 + 回溯系统 | 无闭环 |
📌 总结:
"微信支付不是简单的交易系统,而是一个行为建模与决策引擎驱动的金融风控战场。精准、毫秒级、低误杀,是它多年进化的铁律。"