现金贷业务时序与接口落地 — 总览
按现金贷业务旅程逐阶段,映射现网代码真实接口与调用时序,标注能否跑通。各阶段见本目录
01–07。梳理方法与进展见 README。
图例
| 状态 | 含义 |
|---|---|
| ✓ 现网具备 | 接口存在且链路接通 |
| △ 需改造 | 接口在但被注释/禁用/半成品,或语义需调整 |
| ✗ 缺失 | 接口/能力不存在,或依赖的服务不在代码库 |
调用链路读法
前端 H5 → 业务网关(Spring Cloud Gateway,按路径前缀路由 /bns→bns、/fcs→fcs…,做 Token/AES/日志)→ bns service-api(@RequestMapping 端点)→ bns business 层(编排核心)→ facility/outgoing 的 Feign 客户端调下游服务。
服务名映射(代码仓库 → 本篇简称)
| 代码仓库 | 简称 | Eureka 服务名 | 角色 |
|---|---|---|---|
| business-gateway | GW | blc-service | 业务网关(C 端前端入口,路由 /bns /agg /crs /fcs,Token/AES) |
| middle-gateway(infrgateway) | MGW | — | 中台网关(模块代码 middle-infr):绑卡(ims)+支付中台(pmt)网关,负责三方交互鉴权 + Eureka 路由 + 脱敏/加解密(/inner 特殊) |
| business-system | BNS | bns-service | 业务编排(前端入口逻辑都在此) |
| fund-control | FCS | cfk-service | 账务/借据/额度/还款/试算 |
| product-factory | PFS | bfs-service | 产品/费用/合同配置 |
| fraud-detection | FDS | fds-service | 黑灰名单/冻结/案件/人审 |
| cardbind-middle | IMS | ims-service | 绑卡/银行卡校验 |
| payment-middle | PMT | plutus-pmt-service | 支付通道/放款/扣款 |
| credit-reporting | CRS | crs-service | 征信/KYC(空壳,主链路未接入) |
| agg-vars | AGG | agg-service | 风控变量(空壳,未接入) |
| dynamic-serial | IDG | — | 流水号生成 |
| business-base | — | — | 共享基础库(TxnType 等枚举在此) |
—(外部 bridge-service) | Bridge | — | fcs 的 Transsnet 外部桥(com.transsnet.bridge.api,环境变量 TANK_BRIDGE_SERVICE)。fcs 接 4 个 Feign:风控/优惠券整文件注释、大数据空壳无方法、发布生效;实际只用发布 saveEventLog(放款/还款上报事件日志)。bns 不接 bridge |
结构性发现 1:现金贷的风控决策、大数据 BVN/互斥、人脸核验当前全部注释——逻辑都在 bns(
RiskPriceBusiness.riskPrice、BvnBusiness.queryBigdataBvn、LoanBusiness.applyExclusionRule、ApplyBusiness.uploadFaceImageforBvn),连客户端字段/import 都在注释块里。注释里它们的目标是大数据 / crs / res,不是 bridge。bridge(bridge-service)只在 fcs,且只剩发布saveEventLog在用(见服务表 Bridge 行)。结构性发现 2:两层网关——
business-gateway(C 端入口,路由 /bns /agg /crs /fcs)+middle-gateway/infrgateway(中台/服务网关,经 Eureka 路由 blc/ims/bfs/cfk/mkt/hapmt/plutus-pmt,每条路由套脱敏加解密)。故”中台服务前端不直连”仅对 business-gateway 成立;中台服务经 middle-gateway 可达(带脱敏)。系统用 Eureka 服务发现。结构性发现 3:风控决策模块
res(决策引擎,改造中)不在已拉取代码(本地无 res 目录)。bns 与 fcs 的风控决策调用riskPrice均注释,自建替代即res——授信/借款/放款反复出现的”风控决策”缺口,归属模块是 res,不是 bridge。未就绪的三个模块 agg(空壳)/crs(空壳)/res(未拉取·改造中) 正对应缺失的风控变量 / KYC 核验 / 风控决策。dynamic-serial的模块代码为comet(雪花算法序列号)。
缺口总览(随阶段补充)
| 缺口 | 阶段 | 类型 | 代码证据 |
|---|---|---|---|
| 验证码短信发送出口缺失 | ① 注册登录 | ✗ | bns 无短信 Feign 客户端 |
| BVN/KYC 核验空转、真实调用注释 | ② 授信 | ✗ | 活跃 kycBvnMatch/kycDataPocket 仅构造本地对象不外呼;真实 queryBigdataBvn(大数据)/bankBvnMatch(银行卡) 整段注释 |
| 人脸比对被禁用 | ② 授信 | ✗ | bigDataFaceDetection 整段注释 |
| 授信风控决策未接通 | ② 授信 | ✗ | IRiskClient 注释、ApplyBusiness:901 callFace TODO |
| CRS(征信/KYC)未进主链路 | ② 授信 | ✗ | bns outgoing 无 crs 客户端 |
| 借款大数据互斥/排除规则未执行 | ③ 借款 | ✗ | LoanBusiness.applyExclusionRule 整段注释 |
| 借款不通知 agg 算变量 | ③ 借款 | ✗ | sendKafka 调用已注释 |
| 放款触发的跨服务调用方未定位 | ④ 放款 | △ | 放款链路本身通;loanApplyCallBack 的调用方在风控审批回调侧(跨服务,归属 res 决策),待确认 |
| 完整催收作业系统缺失 | ⑤ 还款 | △ | fds 仅案件+电核/外访;锁机与系统化催收 Phase 2 |
| 优惠券减免(fcs 试算)不可用 | 旁路 | ✗ | AdjustBusiness.couponDerateCalc + fcs ICouponClient(bridge) 整段注释;现网优惠券实走 mkt 营销中台(见旁路-优惠券) |
| 超额还款”申请/查借据”未实现 | 旁路 | ✗ | queryLoanForOverFlowRepay/applyOverFlowRepay 实现为 return null(仅余额查询可用) |
| fcs-service 同名空壳接口(接口选择陷阱) | ⑤/旁路 | △ | return null:activeRepayment / singleAtvRepayment / manualRepayment / manualWithhold / singleActiveRepaymentCalc / isOrderExist / queryRuleResult / sendSmsKafka。能力不缺(有活跃替代),但选接口须避开 |
| 减免运营台交互类注释 | 旁路 | ✗ | derateCommit/manualPosting 等注释,因无运营后台 |
能否跑通结论(随进展更新)
- 注册登录:本地齐备可跑,唯短信发送出口缺。
- 授信:信息采集端点齐全可跑,但核验与判断三大环节均不真实执行——BVN/KYC 核验空转(活跃方法不外呼,真实第三方调用注释)、人脸比对注释、风控决策注释/TODO。真实有效的仅信息采集落库 + FDS 冻结校验。授信无法独立闭环,需补 KYC/BVN 核验接入(crs)+ 风控决策接入(res)+ 大数据变量接入。
- 借款:试算/查产品/提现校验/冻结校验/绑卡/落申请单均可跑;风控互斥与 agg 变量通知被注释,判断仍缺,与授信同源(大数据/agg/res 未接通)。终点为 bns 提现申请单(applyStatus=C)。
- 放款:链路完整——
loanApplyCallBack(审批回调)→BeforePaymentLA.execute建账户/借据/计划/合同/放款订单 →laChannelPlutus/PlutusLoanApplyPublisher事件派发到 PMT → 通道 transfer → 回流激活。放款不存在派发缺口。唯一跨服务待确认:loanApplyCallBack的调用方(风控审批回调侧,归属 res 决策)。 - 还款:链路完整且通——计划/试算/主动还款/代扣调度/事件派发/扣款/回流/销账结清/逾期罚息均具备,fcs→pmt 同走事件桥。逾期罚息齐备;完整催收作业系统 Phase 2。
整体闭环判断(①–⑤ 汇总)
| 能力块 | 结论 |
|---|---|
| 信息采集 + 落库(注册/授信信息/借款申请/客户档案) | ✓ 完整 |
| 账务资金主链路(放款/还款/代扣/销账/结清/逾期罚息) | ✓ 完整且通,fcs↔pmt 经事件桥 |
| 核验类能力(BVN/KYC 核验 / 人脸比对) | ✗ 活跃路径空转、真实第三方调用注释,不做真实核验 |
| 判断类能力(授信风控决策 / 借款大数据互斥 / agg 变量) | ✗ bns 内整段注释(目标 res / 大数据 / agg),当前断的 |
| 外部依赖(res 风控决策、大数据变量/BVN、crs KYC/人脸、短信发送) | ✗/△ 模块未就绪或调用注释 |
| 完整催收作业 / 锁机 | △ Phase 2 |
核心结论:现金贷的资金与账务主链路完整可跑;缺口集中在三方向——①核验(BVN/KYC/人脸,空转或注释,归 crs/大数据)②判断(风控决策/互斥/变量,注释,归 res/大数据/agg)③外部能力接入(res/crs/短信/大数据)。bridge 仅 fcs 用于事件日志上报,非这些缺口的归属。注:注释掉的调用是真缺口,但”grep 不到”需先排除是否漏了事件桥/publisher 机制(见 README 教训)。
资金动作类型全集(TxnType,全局扫描发现)
TxnType 枚举实有 30+ 种(business-base TxnType),远不止下表。资金处理走两个工厂:BeforePaymentFactory(扣款/放款前构造,9 个 case:LA/AP/RP/CLP/CBP/BCP/RF/IP/DR)+ AfterPaymentFactory(回流销账,14+ case,按 TxnType 归类)。下表列主链路相关资金动作:
| TxnType | 含义 | 入口/触发 | 销账处理器(After) | 覆盖 |
|---|---|---|---|---|
| LA | Loan Application 放款 | loanApplyCallBack | afterPaymentLA | ✓ 04-放款 |
| MP | Manual Repayment 客户主动还款 | activeCustomerRepayment | afterPaymentMP | ✓ 05-还款 |
| MR | Manual Reformation 人工还款 | artificialRepay | afterPaymentMP | ✓ 05-还款 |
| RP | 代扣还款 | NormalWithholding/OverdueWithholding 调度 | afterPaymentRP | ✓ 05-还款 |
| CLP | Collection Repayment 部分/催收还款 | partialRepayment | afterPaymentCLP | ✓ 05-还款 |
| BCP | bigdata call repayment 大数据触发还款 | bigdataCallRepayment | afterPaymentBCP | ✓ 05-还款 |
| RF | refund 退款 | refund | afterPaymentRF | ✓ 05-还款(放款失败/超额) |
| OFR | Overflow Repay 超额还款 | — | afterPaymentOFR | ✓ 05-还款 / 07-旁路-超额还款 |
| VP | virtual sub account repayment 虚拟账户还款 | vitualAccountRepay | afterPaymentMP | ✓ 05-还款 |
| HP/PHP/PR/NC/TP | paystack web / plutus web / palmpay / normal / TP 渠道还款 | 各渠道回流 | 归 AP / MP 销账 | ✓ 05-还款 |
| OC | Overdue Charge 逾期计费 | dayend | afterPaymentOC | ✓ 05-还款 逾期 |
| DR | Manual Small Amount 人工小额还款 | — | afterPaymentDR | △ 运营旁路 |
| CBP | ChargeBack 拒付 | — | afterPaymentCBP | △ before 处理器空壳 |
| AP | Active Repayment(仅销账归类) | — | afterPaymentAP(PR/NC/HP/TP 归此) | △ before 空壳 |
| IP | Invite bonus 邀请奖励 | — | afterPaymentIP | — 邀请返现(已定不做) |
其余 TxnType(LR/PP/WC/OP/MRJ/RPR/FID/MFID/TU/BC/OM/EP/DP/CP/RW/RV/SRV/RT/RPJ 等)为内部细类/账务调整,主链路未涉及。
⚠ 校正:早期版本此表记为”9 种、主动还款=AP”——错误。实际枚举 30+ 种;主动还款 = MP(
activeCustomerRepayment),AP 仅作销账归类、其 before 处理器空壳。BeforePaymentFactory(9 case)与 AfterPaymentFactory(14+ case)分流口径不同。详见 05-还款 > 还款 TxnType 真实分流(核心校正)。