② 实名与进件

登录后经 CreditRouteUtil.startIdentity() 进入。原生为主,按后端返回 stage 驱动分步。分支见下方「分支清单」。设备采集贯穿上报大数据 SDK 平台。

概述

内容
起点登录成功 → startIdentity
终点进件提交,进入审批/绑卡/额度
发起端原生(IdentifyIdStatus / NINIdentify / FaceIdentify / Step2 / Step4 / SupplementInfo)+ 本地人脸 SDK
后端blc-service(apply/bank/user/query/)+ 大数据 SDK 平台
驱动后端返回 stage 决定下一步

时序图

sequenceDiagram
    autonumber
    actor U as 用户
    participant APP as 原生 App
    participant FACE as 人脸 SDK(Smile/Google)
    participant BLC as blc-service
    participant BIG as 大数据 SDK 平台

    Note over U,BIG: 进件入口(按 hasBvn 分支)
    APP->>APP: CreditRouteUtil.startIdentity()
    alt 有 BVN
        U->>APP: IdentifyIdStatus 输 BVN/银行账户/性别
        APP->>BLC: user/v1/isBvnBindPhone4nc(查绑定)
        APP->>BLC: apply/verifyPersonalInfo(BVN 核验)
        BLC-->>APP: 通过 + 回填姓名/生日/照片
    else 无 BVN
        U->>APP: NINIdentify 输 NIN/姓名/生日
        APP->>BLC: bank/ninMatch(NIN 核验, Goldman)
        BLC-->>APP: 通过
    end

    opt 需 BVN OTP(Flutterwave)
        APP->>BLC: user/v1/flwSendBvnOtp4nc + flwVerifyBvnOtp4nc
    end
    APP->>BLC: user/v1/verifyToCreateNewCust4nc(建客户 + 验证码)
    BLC-->>APP: stage + encCustomerId

    Note over U,BIG: 人脸活体(失败重试)
    APP->>FACE: 活体检测(本地)
    FACE-->>APP: 活体数据
    APP->>BLC: apply/faceDetection
    alt 通过
        BLC-->>APP: 成功, stage 推进
    else 失败
        APP->>U: DetectBvnFaceFailedActivity(重试)
    end

    Note over U,BIG: 按 stage 分流
    alt stage = NO_CREDIT
        U->>APP: Step2 工作收入 + Step4 紧急联系人(F/O)
        APP->>BLC: apply/saveBaseInfo(工作+个人+contactList)
    else stage = NO_BINDBANKACCOUNT
        APP->>APP: 转绑卡(见 03)
    else stage = REVIEWING(U)
        APP->>U: WaitReviewActivity 等待审核
    else 通过/拒绝/冻结
        APP->>U: SuccessOfApproval / 拒绝 / 冻结(freeze_days)
    end

    Note over U,BIG: 大数据授信 + 设备采集(贯穿)
    APP->>BIG: sdk-adapter/credit(激活大数据授信)
    APP-)BIG: sdk-service/upload/*(设备/短信/通讯录/applist/wifi/gps)

分支清单(穷举进件全部分支)

出处 ui/applyinfo、ui/applycredit(除注明)。

#分支触发条件处理接口/出处状态
1进件入口-有 BVNhasBvn(来自 loanAPPConfig)IdentifyIdStatusActivityCreditRouteUtil:42已展开
2进件入口-无 BVN!hasBvnNINIdentifyActivity(首次)CreditRouteUtil:48已展开
3BVN 核验输入 BVNapply/verifyPersonalInfo(回填姓名/生日/照片)IdentifyIdStatusActivity已展开
4NIN 核验无 BVNbank/ninMatch(Goldman)NINIdentifyActivity已展开
5BVN OTP后端要求flwSendBvnOtp4nc + flwVerifyBvnOtp4nc(Flutterwave)Api已展开(opt)
6建客户核验通过verifyToCreateNewCust4nc(返回 stage)MsgNamePresenter已展开
7人脸活体建客后/stageapply/faceDetection(Smile/Google)FaceDetectionV3Model已展开
8人脸失败重试faceDetection 失败/30s 超时DetectBvnFaceFailedActivityFaceIdentifyActivity:44/BaseFaceIdentify:758已展开
9stage=NO_CREDIT建客返回Step2 工作 + Step4 联系人 → saveBaseInfoTrustworthinessBoundInfoModel已展开
10stage=NO_BINDBANKACCOUNT建客返回转绑卡链出 → 03-借款提现链出
11stage=REVIEWING(U)建客返回WaitReviewActivity 等待审核AppConstant:675已展开
12审批-通过审批结果SuccessOfApprovalActivity(额度生效)ui/applycredit已展开
13审批-拒绝/冻结审批结果拒绝原因 / 冻结(freeze_days)SuccessOfApproval:CREDIT_FREEZE_DAYS已展开
14stage=HAVE_CREDIT已授信进首页/额度CreditRouteUtil已展开
15补件进件需补充SupplementInfoActivity(apply/verifyPersonalInfo 重核)IdentifyIdStatus:1124已展开
16紧急联系人-进件Step4双联系人(F/O) 并入 saveBaseInfo.contactListStep4Activity:1416已展开
17紧急联系人-单独更新贷后/补件H5 apply/v1/saveContactListH5 updateEmergencyContact已展开
18设备采集登录后 init + 进件节点sdk-service/upload/*(短信/通讯录/applist/wifi/gps)DataCollectUtil已展开(贯穿)
19大数据授信激活进件中/完成sdk-adapter/creditSdkAdapterCreditModel已展开
20字典采集页queryDict4nc(性别/行业/关系)GetInfoDictModel已展开
21增信(银行流水)提额/补充资料increase-credit + ccs/credit_investigation_upload_v2链出 → 05-提额复借重授信链出
22再进件带出30 天内有进件记录产品定义有;前端未核实到明确实现待确认

接口落地

步骤接口(真实路径)发起目标后端
查 BVN 绑定user/v1/isBvnBindPhone4ncBvnBindInfoModelblc-service
BVN 核验apply/verifyPersonalInfoIdentifyIdStatus/SupplementInfoblc-service
NIN 核验bank/ninMatchNINIdentifyActivityblc-service
建客户user/v1/verifyToCreateNewCust4ncMsgNamePresenterblc-service
BVN OTPuser/v1/flwSendBvnOtp4nc / flwVerifyBvnOtp4ncApiblc-service
人脸活体apply/faceDetectionFaceDetectionV3Modelblc-service
保存工作+个人+联系人apply/saveBaseInfoTrustworthinessBoundInfoModelblc-service
紧急联系人单独更新apply/v1/saveContactListH5blc-service
补件查询/提交offline/replenishStatus / replenishMaterialH5blc-service
增信触发apply/v1/increase-creditH5/原生blc-service
增信资料上传ccs/credit_investigation_upload_v2H5大数据 SDK
字典query/v1/queryDict4ncGetInfoDictModelblc-service
进件阶段query/v1/queryStageInfo4ncApiblc-service
大数据授信激活sdk-adapter/creditSdkAdapterCreditModel大数据 SDK
设备采集sdk-service/upload/*DataCollectUtil大数据 SDK
埋点dc/buriedPointBatch/v2datacollect大数据 SDK

要点与缺口

  • BVN 核验走 apply/verifyPersonalInfo,不走 bank/bvnMatch:后者仅 MappedApi 定义、无调用点(死接口),与后端 13 中 bns bankBvnMatch 注释呼应。
  • 进件入口按 hasBvn 分支(来自 loanAPPConfig):有 BVN→BVN 核验,无 BVN→NIN(Goldman)。
  • stage 驱动:建客返回 stage(NO_CREDIT / NO_BINDBANKACCOUNT / REVIEWING=U / 通过 / 拒绝/冻结 / HAVE_CREDIT),CreditRouteUtil 按 stage 路由,进件非固定线性。
  • 人脸失败有重试页(DetectBvnFaceFailedActivity);人脸渠道 Smile/Google(FaceConfigBean)。
  • 紧急联系人两入口:进件 Step4 并入 saveBaseInfo.contactList(F 家庭/O 其他);H5 saveContactList 单独更新(贷后/补件)。
  • 增信(银行流水)是提额场景:increase-credit 触发 + ccs/credit_investigation_upload_v2 上传,归 05-提额复借重授信
  • 再进件 30 天带出:产品定义有此设计,前端代码未核实到明确实现——标待确认,不臆断(后端可能处理)。
  • 设备采集(风控关键):DataCollectUtil 登录后 init + 进件节点触发 → sdk-service/upload/*(大数据 SDK,不在 blc-service);大数据授信经 sdk-adapter/credit 激活。
  • NIN=Goldman、BVN OTP=Flutterwave,前端直连 blc-service,三方在后端侧。
  • 衔接:stage=NO_BINDBANKACCOUNT → 03-借款提现 绑卡;通过 → 额度/借款。