任务说明 — 现金贷前端交互时序
本文是工作笔记(定位/方法/进展)。给开发看的是同目录
00-总览+ 各阶段文件。重启会话从本文接续。
定位
从前端 ↔ 后端交互角度,按业务流程,完整、确切地还原现金贷前端如何驱动系统运转。即:每个业务动作,前端(原生 / H5)发起什么调用、打到哪个后端、回调与跳转如何串联。
与已有文档的分工:
- 12-前端现状 = 静态:模块构成、接口清单、技术栈。本篇 = 动态:业务流程里的调用时序。引用 12 不重抄接口清单。
- 13-现金贷后端时序 = 后端服务间时序(blc-service 之下)。本篇补前端→blc-service(及登录认证 / 大数据 SDK)这一段,两者在 blc-service 处衔接。
- 14-服务依赖 = 后端服务依赖拓扑。
代码源
frontend-cashloan/android/roovault(原生 Android,30+ Gradle 模块,包com.foo.cash/com.xloan.cash)frontend-cashloan/h5/wp_h5(Vue2 + Vant,WebView 业务页)
架构事实(贯穿,详见 12)
- 混合架构:原生 Android 壳(账户/KYC/绑卡/人脸/设备采集)+ 内嵌 WebView 加载 H5 业务页(提现/还款/合同等)。非 Flutter。
- 后端(前端实证,当前快照):
- blc-service(业务网关 / BFF,= bns-gateway)——原生与 H5 共用主入口;模块前缀 user/apply/query/cust/plutus/coupon/otp/offline/config/h5/inner/bank/tudcAux/…。登录注册当前也走此(
user/模块)+ token。 - 大数据 / SDK 平台——
/sdk-service/(设备采集)、/dc/(埋点)、/ccs/(客诉/增信/S3)、/file-upload-service/、/sdk-adapter/credit(大数据授信) - ⚠ 快照差异:12-前端现状记录的「独立 auth 服务 + TGT/ST +
api/login/v1」在当前快照已不成立——登录收敛进 blc-serviceuser/(tudcAux/user/exists暗示 BFF 内部仍接 TUDC,但前端只见user/封装,票据为 token 非 TGT/ST)。详见 01-注册登录。 - ⚠ 直连例外:前端绝大多数走 blc-service,但发现个别接口直连 cfk-service(fcs)——还款支付结果轮询
/cfk-service/inner/v1/activeQueryPlutusPaymentResult(见 04-还款)。即「前端不直连后端能力层」不绝对。
- blc-service(业务网关 / BFF,= bns-gateway)——原生与 H5 共用主入口;模块前缀 user/apply/query/cust/plutus/coupon/otp/offline/config/h5/inner/bank/tudcAux/…。登录注册当前也走此(
- 接口路径(当前快照为混淆前明文):android
MappedApi.java、H5basePath.js均真实路径,Retrofit/请求层直接用,无运行时映射。两层混淆区分:① 前端源码字符串加密(发布构建 StringFog xor + proguard,防逆向,源码仍明文)② 后端网关路径↔token 映射(在 Apollo,前端查不到)。梳理以明文源码为准,无需去混淆。详见 12-前端现状。 - 多包:PC=Palmcredit / NC=NewCredit,接口有
4nc/4merge/4os包专属变体。
方法(追踪到头,确切还原)
- 从前端业务页/原生页入口出发,读页面流转 + API 调用序列(不是只列接口,要还原顺序)。
- 每条交互标清三要素:发起方(原生 / H5)、目标后端(blc-service / 登录认证 / 大数据SDK)、真实接口(能反查则给真实路径,仅 token 则标 token-only)。
- 子流程展开到终点,不压成一行:绑卡跳转(原生→通道页→回调)、人脸活体 SDK、WebView 加载与原生回调、设备采集后台上报。
- 原生 ↔ H5 切换点必须画出:谁拉起 WebView、H5 完成后如何回原生。
- 不靠猜:混淆 token 无法反查真实路径的,标 token-only,不臆造语义(沿用 12 的去混淆限制)。
- 衔接后端:画到 blc-service 即与 00-总览 衔接,不重复后端服务间细节,必要处给链接。
参与者(时序图固定角色)
| 角色 | 说明 |
|---|---|
| 用户 | C 端客户 |
| 原生 App | roovault(原生 Android 壳) |
| H5 | wp_h5(WebView 内业务页) |
| blc-service | 业务网关 / BFF(后端主入口,含登录 user/ 模块) |
| 大数据SDK | 采集/埋点/增信/S3 平台 |
| 系统服务 | SMS Retriever / 定位 / Firebase 等设备侧能力 |
阶段划分(主要阶段;分析中发现新阶段即补充)
目标是完整还原——下表是已识别的主干,不预设封闭。分析过程中若发现独立子系统/旁路(如启动初始化、推送、客服、活动),按需新增阶段,不硬塞进现有阶段。
| 阶段 | 文件 | 内容(暂定) |
|---|---|---|
| 总览 | 00-总览 | 混合架构 + 三后端 + 混淆 + 启动/鉴权贯穿 + 图例 |
| ① 注册登录 | 01-注册登录 | 手机号 OTP(SMS/语音) + 人脸登录 → blc-service user/;社交登录/自动登录当前注释未启用 |
| ② 实名与进件 | 02-实名与进件 | BVN/NIN 核验、个人/工作/紧急联系人、人脸活体、设备采集 |
| ③ 借款提现 | 03-借款提现 | 额度/试算/产品/绑卡跳转/提现申请(原生→H5) |
| ④ 还款 | 04-还款 | 借据/试算/主动还款/合同/结清(H5 为主) |
| ⑤ 提额复借重授信 | 05-提额复借重授信 | 旁路(H5 重授信轮询等) |
| 贯穿 | (并入 00 或单列) | 启动初始化、设备采集上报、埋点、推送——待分析中定是否单列 |
进展
- 用户确认(建目录 + README + 阶段开放可补充)
标准:每阶段含「分支清单」穷举所有 CTA/后端分支,逐条标 已展开/链出/暂略/待确认,逐条读码核实。
- 01-注册登录(分支清单 18 条;登录走 blc-service
user/+token,OTP 仅 SMS/语音无 WhatsApp,社交/自动登录未启用) - 02-实名与进件(分支清单 22 条;BVN 核验走 apply/verifyPersonalInfo、bank/bvnMatch 死接口;人脸失败重试/审批结果/补件补全;再进件带出标待确认)
- 03-借款提现(分支清单 20 条;设备检测/用途/期限/PIN三分支/提现限制/绑卡跳转全展开)
- 04-还款(分支清单 21 条;Plutus 支付、还款并复借、部分还款、反馈挽留、逾期、支付三态;支付结果直连 cfk-service(fcs))
- 05-提额复借重授信(分支清单 19 条;提额三路径/复借两类/重授信轮询双段,收口 02/03/04 链出入口)
- 00-总览(自底向上汇总 01–05:全景图 + 后端归属 + 三大跳转子流程 + 原生/H5 分工 + 关键发现)
验收(完整且确切还原系统运转)
- 每个主要业务流程都有前后端交互时序,且追踪到头(发起方 + 目标后端 + 接口/子流程终点)。
- 原生 ↔ H5 切换点、绑卡跳转、设备采集等子流程都展开,未压成一行。
- 三后端分工清晰;混淆 token 该反查的反查、查不到的如实标 token-only,不臆造。
- 与 13 后端时序在 blc-service 处可衔接、无矛盾。
- 不懂代码者凭 00-总览能看懂「前端怎么和后端交互跑起来」。