乐敬 发表于 2025-9-30 11:54:01

贷超系统的业务流程与系统设计

一、引言

本文介绍了贷超系统的业务流程、系统设计相关内容。主要是对自己之前参与设计、开发贷超系统的一点记录
二、核心业务流程设计

2.1 渠道用户注册流程

联登:用户在渠道方传入手机号 → 渠道方调用我方注册接口 → 我方将用户手机号注册,并与渠道方进行绑定 → 返回下载页链接撞库联登:用户在渠道方传入手机号md5 → 渠道方调用我方撞库接口 → 我方查询用户是否已注册 → 如果已注册,则返回撞库失败;如果未注册,则返回撞库通过 → 渠道方调用我方注册接口 → 返回下载页链接2.2 用户认证流程

用户登录 → 身份认证 → 三要素核验 → 基本信息录入 → 详细资料录入 → 人脸认证 → 确认匹配产品2.3 授信申请流程

确认匹配产品 → 按产品进行前筛过滤 → 调用产品方撞库API → 我方风控审核 → 调用产品方进件申请API → 查询产品方进件审核结果 → 展示进件审核通过产品详细步骤:

[*]风控审核阶段

[*]前置筛选:基础条件验证
[*]反欺诈检测:设备指纹、行为分析
[*]征信查询:央行征信、第三方征信
[*]风险评分:综合评分模型

[*]授信资料推送产品方

[*]基础信息:姓名、身份证、手机号
[*]工作信息:公司名称、职位、收入
[*]联系人信息:紧急联系人、关系
[*]补充材料:银行流水、工作证明等

2.4 借款申请流程

借款申请流程,目前平台对接的所有产品均为API模式,只是后续借款时的流程不同,目前主要分为三种:

[*]半流程下载:用户授信通过后,点击提现申请,跳转到产品方APP的下载页,下载对方APP进行借款申请。
[*]全流程H5: 用户授信通过后,点击提现申请,跳转到产品方H5页面进行申请。产品方H5页面全程嵌套在贷超APP中,用户无需单独下载APP。目前这种方式在对接成本、转化率方面比其他两种方式更优。
[*]全流程API:用户授信通过后,点击提现申请,用户在贷超APP进行绑卡、借款申请等流程,我方与产品方通过API接口进行数据交互,用户所有操作均在APP内完成。
2.5 还款管理流程

还款流程与借款流程基本一致。
三、系统架构设计

3.1 整体架构

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   前端应用层   │    │   移动端应用   │    │   渠道接入层   │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                              │
┌─────────────────────────────────────────────────────────────────┐
│                        API网关层                              │
└─────────────────────────────────────────────────────────────────┘
                              │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│用户服务    │ │产品服务    │渠道服务   │风控服务      │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│订单服务    │ │推送服务   │ │消息服务    │统计服务      │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
                              │
┌─────────────────────────────────────────────────────────────────┐
│                      数据存储层                                  │
│MySQL集群│Redis集群│MongoDB│Elasticsearch         │
└─────────────────────────────────────────────────────────────────┘3.2 核心模块设计

用户管理模块(daichao-user)


[*]用户注册登录:手机号注册、短信验证、登录状态管理
[*]用户认证:身份证认证、人脸识别、银行卡认证
[*]用户画像:基础信息、行为数据、风险标签
产品管理模块(daichao-product)


[*]产品配置:产品基础信息、申请条件、费率设置
[*]产品上下架:产品状态管理、定时上下架
[*]产品匹配:根据用户画像匹配合适产品
渠道管理模块(daichao-channel)


[*]渠道接入:API接入、H5页面、小程序等多种接入方式
[*]流量分发:智能分发、A/B测试、流量控制
[*]结算管理:渠道费用结算、数据统计
风控模块(daichao-risk)


[*]规则引擎:可配置的风控规则
[*]评分模型:机器学习评分模型
[*]反欺诈:设备指纹、行为分析、黑名单
第三方服务模块(daichao-push)


[*]消息推送:短信、邮件、推送通知
[*]产品推送:授信、放款、还款通知
系统管理模块(daichao-manage)


[*]用户权限管理:角色权限、菜单权限
[*]系统配置:参数配置、字典管理
[*]数据统计:业务数据统计、报表生成
四、系统安全设计

4.1 数据安全

敏感数据加密


[*]身份证号:AES加密存储
[*]手机号:明文+MD5双重存储
[*]银行卡号:脱敏显示,加密存储
[*]密码:BCrypt加密
数据脱敏

// 手机号脱敏:138****8888
public String maskPhone(String phone) {
    return phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}

// 身份证脱敏:110101********1234
public String maskIdCard(String idCard) {
    return idCard.replaceAll("(\\d{6})\\d{8}(\\d{4})", "$1********$2");
}4.2 接口安全

接口限流

@RateLimiter(value = 100, timeout = 1000) // 每秒最多100次请求
public Result<String> sendSmsCode(String phone) {
    // 发送短信验证码逻辑
}4.3 权限控制

RBAC权限模型

用户(User) → 角色(Role) → 权限(Permission) → 资源(Resource)数据权限控制

// 数据权限注解
@DataPermission(type = "CHANNEL", field = "channelId")
public List<UserInfo> getUserList(UserQueryReq req) {
    // 根据用户权限自动过滤数据
}五、开发设计

5.1 状态机设计

授信状态流转

申请中 → 审核中 → 已授信
   │      │      │
   └─→ 已拒绝 ←─────┘放款状态流转

申请中 → 审核中 → 放款中 → 已放款
   │      │      │
   └─→ 已拒绝 ←─────┘还款状态流转

待还款 → 已还款
   │
   └─→ 已逾期 → 已还款5.2 系统监控设计

业务监控


[*]关键指标监控:注册量、申请量、通过率等
[*]异常告警:业务异常及时告警
[*]性能监控:接口响应时间、数据库性能
日志管理


[*]操作日志:记录关键业务操作
[*]错误日志:记录系统异常信息
[*]审计日志:满足合规要求
本文主要是作者在工作中,对贷超系统设计开发的一些记录。欢迎有兴趣的朋友沟通交流vx:EasonChean

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 贷超系统的业务流程与系统设计