现金贷业务时序与接口落地 — 总览

按现金贷业务旅程逐阶段,映射现网代码真实接口与调用时序,标注能否跑通。各阶段见本目录 0107。梳理方法与进展见 README

图例

状态含义
✓ 现网具备接口存在且链路接通
△ 需改造接口在但被注释/禁用/半成品,或语义需调整
✗ 缺失接口/能力不存在,或依赖的服务不在代码库

调用链路读法

前端 H5 → 业务网关(Spring Cloud Gateway,按路径前缀路由 /bns→bns、/fcs→fcs…,做 Token/AES/日志)→ bns service-api@RequestMapping 端点)→ bns business 层(编排核心)→ facility/outgoing 的 Feign 客户端调下游服务。

服务名映射(代码仓库 → 本篇简称)

代码仓库简称Eureka 服务名角色
business-gatewayGWblc-service业务网关(C 端前端入口,路由 /bns /agg /crs /fcs,Token/AES)
middle-gateway(infrgateway)MGW中台网关(模块代码 middle-infr):绑卡(ims)+支付中台(pmt)网关,负责三方交互鉴权 + Eureka 路由 + 脱敏/加解密/inner 特殊)
business-systemBNSbns-service业务编排(前端入口逻辑都在此)
fund-controlFCScfk-service账务/借据/额度/还款/试算
product-factoryPFSbfs-service产品/费用/合同配置
fraud-detectionFDSfds-service黑灰名单/冻结/案件/人审
cardbind-middleIMSims-service绑卡/银行卡校验
payment-middlePMTplutus-pmt-service支付通道/放款/扣款
credit-reportingCRScrs-service征信/KYC(空壳,主链路未接入)
agg-varsAGGagg-service风控变量(空壳,未接入)
dynamic-serialIDG流水号生成
business-base共享基础库(TxnType 等枚举在此)
—(外部 bridge-serviceBridgefcs 的 Transsnet 外部桥(com.transsnet.bridge.api,环境变量 TANK_BRIDGE_SERVICE)。fcs 接 4 个 Feign:风控/优惠券整文件注释、大数据空壳无方法、发布生效;实际只用发布 saveEventLog(放款/还款上报事件日志)。bns 不接 bridge

结构性发现 1:现金贷的风控决策、大数据 BVN/互斥、人脸核验当前全部注释——逻辑都在 bnsRiskPriceBusiness.riskPriceBvnBusiness.queryBigdataBvnLoanBusiness.applyExclusionRuleApplyBusiness.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)覆盖
LALoan Application 放款loanApplyCallBackafterPaymentLA04-放款
MPManual Repayment 客户主动还款activeCustomerRepaymentafterPaymentMP05-还款
MRManual Reformation 人工还款artificialRepayafterPaymentMP05-还款
RP代扣还款NormalWithholding/OverdueWithholding 调度afterPaymentRP05-还款
CLPCollection Repayment 部分/催收还款partialRepaymentafterPaymentCLP05-还款
BCPbigdata call repayment 大数据触发还款bigdataCallRepaymentafterPaymentBCP05-还款
RFrefund 退款refundafterPaymentRF05-还款(放款失败/超额)
OFROverflow Repay 超额还款afterPaymentOFR05-还款 / 07-旁路-超额还款
VPvirtual sub account repayment 虚拟账户还款vitualAccountRepayafterPaymentMP05-还款
HP/PHP/PR/NC/TPpaystack web / plutus web / palmpay / normal / TP 渠道还款各渠道回流归 AP / MP 销账05-还款
OCOverdue Charge 逾期计费dayendafterPaymentOC05-还款 逾期
DRManual Small Amount 人工小额还款afterPaymentDR△ 运营旁路
CBPChargeBack 拒付afterPaymentCBP△ before 处理器空壳
APActive Repayment(仅销账归类afterPaymentAP(PR/NC/HP/TP 归此)△ before 空壳
IPInvite 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+ 种;主动还款 = MPactiveCustomerRepayment),AP 仅作销账归类、其 before 处理器空壳。BeforePaymentFactory(9 case)与 AfterPaymentFactory(14+ case)分流口径不同。详见 05-还款 > 还款 TxnType 真实分流(核心校正)