看得见的架构,读得到的代码
四个系统如何协作、第三方服务如何接入、核心规则如何实现。代码窗口里是从核心平台抽取的真实片段,已脱敏并逐一人工审核。
系统架构
Veloziq Core 是核心平台,H5、落地页和监管端都通过 API 与它通信;第三方服务的回调全部经过验签。
代码导览
从文件树选一个文件,按步骤阅读关键逻辑。高亮的是当前步骤讲到的行。
KYC 四层评分主流程
Didit 的状态先做预处理:直接拒绝、标记人工审核,或进入下一层。
分数 → 额度
高分段、低分段自动通过并计算额度,人工审核段和拒绝段不计算额度。
风控补充规则(结构)
同一证件号已被其他用户通过认证则拒绝。
机器人审核:加权风险分
每条规则的得分乘以权重累加,出错的规则跳过。
4 种逾期模式
月、年期限按日历同日累加,天期限可选放款当天计入。
自动放款流水线
单个租户失败不会影响其他租户。
放款前校验
失败次数达到上限后跳过,转人工处理,避免失败记录堆积。
瀑布销账
逾期费 → 罚息,顺序固定。
还款计划生成
等额本息、先息后本、等额本金分别生成。
提额规则匹配
满足门槛的规则里取提额比例最高的一条,并列取 id 最小。
按域名识别租户
优先读 X-Tenant-Domain 头,打包成 App 后也能识别租户。
Curlec 回调校验
用渠道密钥按规定字段重新计算。
Didit Webhook 验签
对原始请求体计算 HMAC-SHA256,用 hash_equals 与 X-Signature-V2 比较。
RAFFTECH 信封加密
请求报文先用 AES 加密。
定时任务一览
每小时检查逾期贷款,更新逾期天数与罚息。
- 代码摘自核心平台,已脱敏:风控阈值等参数替换为配置项。
技术栈
核心平台
- PHP 8.2+
- Laravel 12
- Filament 4
- Octane
- Sanctum
- Scribe
- spatie/activitylog
- PostgreSQL
- Redis
前端
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- shadcn/ui
- next-intl
- Zustand
- PWA
基础设施
- AWS S3
- Nginx
- Cloudflare
- Laravel Scheduler
- Queues
- Blade (Supervisor)
集成
- Didit
- Curlec Payout
- Razorpay
- RAFFTECH
- AWS SES
- AWS SNS
- Web Push
- BlueBird
- NXCloud
自动化任务
Laravel Scheduler 驱动的定时任务,全部 withoutOverlapping,关键任务 onOneServer。
自动放款流水线每分钟
自动放款扫描每 3 分钟
RAFFTECH 签署对账每 5 分钟
逾期检查每小时
清理操作日志每天 01:00
清理服务用量日志每天 01:30
全局统计更新每天 02:00
清理过期 OTP 日志每天 03:00
清理 RAFFTECH 日志每天 03:00
缓存预热每天 04:00
清理过期合同每天 05:00
还款提醒每天 09:00
API 概览
约 100 个 REST 端点,按 27 个业务分组组织,文档由 Scribe 生成。
认证
Authentication
用户
User-Management
KYC
KYC
人脸识别
Face-Recognition
贷款产品
Loan-Products
贷款申请
Loan-Application
借款订单
Loan-Management
贷款协议
Loan-Agreement
流程分流
Loan-Flow-Choice
贷款咨询
Loan-Consultation
电子合约
Contract
签署视频
Sign-Video
还款
Repayment
支付
Payment
银行卡
Bank-Cards
地址
Address
通知
Notification
推送
Push-Notification
验证码
OTP
注册配置
Registration
主题
Theme
语言
Language
平台条款
Platform-Terms
服务配置
Service-Config
客服
Customer-Service
图片上传
Image-Upload
S3 上传
S3-Upload
安全设计
加密
敏感字段加密存储并建立哈希索引,监管端使用 AES-256。
签名校验
Didit HMAC-SHA256 与 Curlec checksum 用 hash_equals 常量时间比较,RAFFTECH 报文附带 MAC 完整性校验。
限流
OTP、登录、表单等接口按 IP 与租户限流。
租户隔离
模型全局作用域按 tenant_id 过滤,平台可以模拟登录租户排查问题。
审计
操作日志、管理员访问日志与贷后调整日志,全部可追溯。
