现金贷前端交互时序 — 总览
自底向上汇总 01–05 五阶段的真实前后端交互,还原现金贷前端如何驱动系统运转。各阶段含「分支清单」,方法/进展见 README。静态结构见 12-前端现状,后端时序见 00-总览。
核心结论
- 混合架构:原生 Android 壳(roovault)+ 内嵌 WebView 加载 H5 业务页(wp_h5,Vue2)。非 Flutter。
- blc-service 是单一主入口:原生与 H5 几乎所有业务接口都经 blc-service(含登录
user/、KYC apply/bank/、查询 query/、提现还款 cust/plutus/、重授信 recredit/)。唯一直连例外:还款支付结果轮询直打 cfk-service(fcs)。
- 三大跳转子流程是前端的共性模式:绑卡、还款支付、重授信都走「跳外部页/异步发起 → 回跳或轮询确认」。
- 接口当前为混淆前明文,梳理无需去混淆(两层混淆见下)。
全景图
flowchart LR
U[用户]
subgraph 前端
NAT[原生壳 roovault]
H5[H5 wp_h5 WebView]
end
subgraph 后端
BLC[blc-service 主入口/BFF]
FCS[cfk-service fcs]
BIG[大数据 SDK 平台]
end
subgraph 外部/系统
SYS[系统:SMS Retriever/定位/Firebase]
FACE[人脸 SDK Smile/Google]
CHAN[支付通道托管页]
PAY[Plutus 收银台]
end
U --> NAT
U --> H5
NAT -->|登录/KYC/人脸/绑卡/采集/人脸提额| BLC
H5 -->|提现/还款/复借/重授信/提额| BLC
H5 -.还款支付结果直连.-> FCS
NAT -->|设备采集/埋点| BIG
H5 -->|增信资料/客诉/S3| BIG
NAT --> SYS
NAT --> FACE
H5 -.绑卡跳转.-> CHAN
H5 -.还款支付跳转.-> PAY
NAT -->|拉起 WebView| H5
H5 -.JSBridge 回原生.-> NAT
后端归属(前端实证)
| 后端 | 角色 | 前端怎么用 |
|---|
| blc-service(=bns-gateway) | 业务主入口/BFF | 原生 + H5 几乎全部业务接口;登录也收敛于此(user/+token) |
| cfk-service(fcs) | 账务 | 直连例外:cfk-service/inner/v1/activeQueryPlutusPaymentResult(还款支付结果,见 04-还款) |
| 大数据 SDK 平台 | 采集/风控 | sdk-service/upload/*(设备采集)、dc/(埋点)、ccs/(增信/客诉/S3)、sdk-adapter/credit(大数据授信) |
| 系统/外部 | 设备侧/三方 | SMS Retriever、定位、Firebase、人脸 SDK(Smile/Google)、支付通道托管页、Plutus 收银台 |
快照差异:12-前端现状记的「独立 auth 服务 + TGT/ST」当前不成立——登录已并入 blc-service user/(tudcAux 暗示 BFF 内部接 TUDC)。
三大跳转子流程(共性模式)
前端凡涉及外部交互/异步结果,都用「跳转/发起 → 回跳或轮询确认」:
| 子流程 | 发起 | 外部页 | 回收 | 出处 |
|---|
| 绑卡跳转 | routeRedirect(scene=2) | 支付通道托管页 | redirect 回跳 /addBankAccount → 刷新账户 | 03-借款提现 |
| 还款支付 | generatePlutusWebOrder4nc | Plutus 收银台 | redirect 回跳 /afterRepayment → 轮询 activeQueryPlutusPaymentResult(cfk) | 04-还款 |
| 重授信 | recredit/trigger | (无外部页) | 轮询 recredit/report → recreditResult | 05-提额复借重授信 |
绑卡还有后端层回调(通道→IMS→bns bindCardCallBack)与前端 redirect 是两层,别混(见 03)。
原生 ↔ H5 分工
| 端 | 承载 |
|---|
| 原生(roovault) | 登录注册、BVN/NIN 核验、人脸活体、设备采集、人脸提额、绑卡通道交互、结果页壳 |
| H5(wp_h5) | 提现、还款、复借、重授信、提额(增信/调额)、合同、补件、紧急联系人更新 |
| 切换 | 原生壳拉起 WebView;H5 经 JSBridge(H5JsInterface / native.js gotoHomeActivity)回原生;绑卡/支付经浏览器 redirect 回跳 |
阶段索引
| 阶段 | 文件 | 一句话 | 分支 |
|---|
| ① 注册登录 | 01-注册登录 | 手机号 OTP(SMS/语音)+人脸登录 → blc user/+token | 18 |
| ② 实名与进件 | 02-实名与进件 | BVN/NIN 核验+建客+人脸+采集,stage 驱动 | 22 |
| ③ 借款提现 | 03-借款提现 | H5 提现 + 设备检测/用途/PIN/绑卡跳转 | 20 |
| ④ 还款 | 04-还款 | Plutus 网页支付 + 还款并复借 + 支付三态 | 21 |
| ⑤ 提额复借重授信 | 05-提额复借重授信 | 提额三路径/复借两类/重授信轮询 | 19 |
接口路径事实(两层混淆)
- 当前快照为混淆前明文:android
MappedApi.java、H5 basePath.js 均真实路径,Retrofit/请求层直接用,无运行时映射。梳理以明文源码为准。
- 两层混淆区分:① 前端源码字符串加密(发布构建 StringFog xor + proguard,防逆向,源码仍明文)② 后端网关路径↔token 映射(在 Apollo,前端查不到)。
- 多包:PC=Palmcredit / NC=NewCredit,接口有
4nc/4merge 包专属变体。
关键发现汇总
| 发现 | 说明 | 出处 |
|---|
| 登录收敛进 blc-service | 当前无独立 auth/TGT/ST,token 机制(快照差异) | 01 |
| cfk-service 直连例外 | 还款支付结果绕过 blc 直打 fcs | 04 |
| bank/bvnMatch 死接口 | 前端定义无调用;BVN 核验实走 apply/verifyPersonalInfo(与后端注释呼应) | 02 |
| 还款主路径校正 | 走 generatePlutusWebOrder4nc,submitRepayRequestion 仅还款反馈用 | 04 |
| 三大跳转子流程 | 绑卡/支付/重授信统一「跳转→回跳/轮询」 | 03/04/05 |
| 设备采集贯穿 | 登录后 init + 进件节点 → 大数据 SDK(非 blc) | 02 |
| 当前未启用 | 社交登录、自动登录(字段/组件在但注释/无调用) | 01 |
| 待确认 | 再进件 30 天带出(产品定义有,前端未核实到实现) | 02 |
图例
| 标记 | 含义 |
|---|
实线 --> | 前端直接 HTTP 调用 |
虚线 -.-> | 跳转/回跳/直连例外/JSBridge |
| 已展开 / 链出 / 暂略 / 待确认 | 各阶段分支清单的处理状态 |