② 授信

产品定义:BVN/NIN 核验 → 个人信息 → 工作收入 → 紧急联系人 → 人脸识别 → 确认提交 → 授信审批。图例与服务名映射见 00-总览
真实分支见下方「分支清单」(出处 ApplyBusiness/BvnBusiness)。核验/判断环节多注释断裂——是本阶段核心结论。

时序

sequenceDiagram
    autonumber
    actor C as 客户
    participant App as 客户端 H5/原生
    participant GW as 业务网关
    participant BNS as BNS 业务编排
    participant FDS as FDS 反欺诈
    participant EXT as 外部三方(Smile/Google)
    participant MISS as 未接下游(res/大数据/crs·注释)

    Note over C,MISS: ① 身份核验(verifyPersonalInfo)
    C->>App: 输入 BVN 或 NIN + 个人信息
    App->>GW: POST /bns/apply/verifyPersonalInfo
    GW->>BNS: ApplyBusiness.verifyPersonalInfo
    alt 已认证(authIdentity 非空)
        Note over BNS: 直接 buildResponse 返回(含 creditStage),不可再认证
    else 未认证
        Note over BNS: 活跃 kycBvnMatch/kycDataPocket 仅构造本地 BnsBvnInfo, 不外呼
        Note over BNS: ✗ 真实核验 queryBigdataBvn(大数据:127)/bankBvnMatch(银行卡:275) 整段注释
        alt 自填姓名为空
            Note over BNS: updateBvnInfoUser(BVN 回填)
        else 自填姓名非空(NIN 场景)
            Note over BNS: updateUser(身份类型 NIN, Goldman 页)
        end
    end

    Note over C,MISS: ② 人脸(faceDetection→applyFaceRecognition)
    C->>App: 活体 + 人脸
    App->>GW: POST /bns/apply/faceDetection
    alt 已认证且非 FACE_CHECK 场景
        Note over BNS: 直接返回
    else
        Note over BNS: 人脸次数超限→BVN_FACE_FAILD,在途人脸 P 态→拒
        Note over BNS: 设备检查 UF→faceScene=DEVICE_CHECK
        opt Google 审核员名单
            Note over BNS: 跳过人脸检查, 直接建客
        end
        Note over BNS: ✗ 人脸增强 enhanceFace 整段注释
        BNS->>EXT: 活体检测(Smile 默认 / Google 渠道)
        alt 活体失败
            Note over BNS: FAILED + CREDIT_STAGE_1
        else 成功
            Note over BNS: invokeCreateCustByFace 本地建客(BnsCust + 人脸记录)
            Note over MISS: ✗ 人脸风控图 uploadFaceImageforBvn 注释(目标 大数据/crs)
            Note over BNS: faceScene 非 FACE_CHECK 且非 DEVICE_CHECK 才 updateBlcUserInfo
            Note over BNS: 身份类型 NIN/BVN 分流,返回 creditStage
        end
    end

    Note over C,MISS: ③ 保存信息 + 发起授信(saveBaseInfo)
    C->>App: 工作/联系人等 + 提交
    App->>GW: POST /bns/apply/saveBaseInfo
    BNS->>FDS: queryAccountIsFreeze(冻结校验, 内部闭环) ✓
    Note over BNS: saveApply 落 BnsApplyMainCredit applyStatus=N(内部, 不进 FCS)
    BNS->>MISS: 风控决策 riskPrice
    Note over MISS: ✗ riskPrice 整段注释/TODO, 决策未接通(归 res)

分支清单(穷举授信全部分支)

出处 ApplyBusiness / BvnBusiness。状态:✓ 活跃 / ✗ 注释或缺失 / △ 外部依赖 / 待确认。

#分支触发条件处理出处状态
1未登录uid 无 userNOT_LOGINApplyBusiness:142
2已认证直返authIdentity 非空buildResponse(含 creditStage), 不可再认证:148
3BVN 核验-活跃路径未认证kycBvnMatch/kycDataPocket 仅构造本地 BnsBvnInfoBvnBusiness:259✗ 不外呼
4BVN 真实核验-大数据iBigdataClient.queryBigdataBvnBvnBusiness:127✗ 注释
5BVN 真实核验-银行卡imsServiceClient.bankBvnMatchBvnBusiness:275✗ 注释
6回填 vs 自填自填姓名空/非空updateBvnInfoUser(BVN 回填) / updateUser(自填)ApplyBusiness:158
7身份类型 BVN/NINcustId NIN 前缀identityType=NIN + Goldman 页(goldman_page_url_map/enable_goldman_page_switch)QueryBusiness:386、ApplyBusiness:633
8NIN 实名核验细节NIN 场景疑经 Goldman 页/前端 NINIdentify(bank/ninMatch)待确认
9BVN 无数据异常核验超时/异常MAKE_SURE_YOUR_BVN_NO_DATAApplyBusiness:167
10人脸-已认证直返authIdentity 非空且非 FACE_CHECK直接返回ApplyBusiness:198
11人脸次数超限当日 > faceNumberBVN_FACE_FAILD(DEVICE_CHECK 豁免):661
12在途人脸记录最新记录 faceStatus=P拒(存在在途):673
13设备检查 UFdeviceCheckRecord=UFfaceScene=DEVICE_CHECK:209
14Google 审核员uid 在 googleReviewerUid 名单跳过人脸检查直接建客:567
15人脸增强isNeedToCheckFaceenhanceFace(beforeFaceDetection):576✗ 整段注释
16活体渠道LiveDetectionWayGoogle(liveDetectionChannel=Google) / 默认 Smile:690
17活体失败createVerifyFaceReq 异常FAILED + CREDIT_STAGE_1:598
18人脸建客活体成功invokeCreateCustByFace(bns 本地建客)→ resp null 则 FAILED:616✓ 本地
19建客后更新用户faceScene 非 FACE_CHECK 且非 DEVICE_CHECKupdateBlcUserInfo:627
20建客身份类型custId NIN/BVN 前缀设 identityType + nin/bvn:633
21creditStage 返回建客成功setStage(resp.creditStage), 阶段码 1/8/9/10:645、buildResponse:431
22设备检查建客UF 场景建客verifyToCreateNewCustByFace:750
23冻结校验saveBaseInfoqueryAccountIsFreeze(FDS)saveBasicInfo
24落授信申请saveApplyBnsApplyMainCredit applyStatus=N(内部, 不进 FCS):1210
25风控决策发起授信riskPrice(是否通过/给多少额度)res✗ 注释/TODO

接口落地

#业务步骤服务真实接口类型现状说明
1身份核验+OTPBNSIApplyService.verifyPersonalInfo POST /bns/apply/verifyPersonalInfo端点ApplyBusiness.verifyPersonalInfo;已认证直返(含 creditStage)
2BVN 核验(活跃路径)BNSBvnBusiness.kycBvnMatch/kycDataPocket/kycBankNameMatch内部仅构造本地 BnsBvnInfo,不外呼无真实核验
3BVN 真实第三方核验大数据/IMSIBigdataClient.queryBigdataBvn(大数据:127) / IImsServiceClient.bankBvnMatch(银行卡:275)下游两处真实调用整段注释
4身份类型 NIN 分支BNSidentityType=NIN + goldman_page_url_map/enable_goldman_page_switch内部NIN 走 Goldman 页;实名核验细节待深入
5人脸活体外部IApplyService.faceDetectionapplyFaceRecognition → Smile/Google端点+渠道活体渠道 Smile(默认)/Google;本地 verifyFaceRule 次数/在途校验
6人脸增强enhanceFace内部整段注释
7人脸建客 / 人脸风控图BNS 本地 / 大数据invokeCreateCustByFace(本地建客);uploadFaceImageforBvn(大数据人脸风控,注释)内部+下游建客本地活跃;人脸风控外呼注释
8冻结校验FDSqueryAccountIsFreezeIFdsServiceClient下游saveBasicInfo 内真实调用
9保存信息+发起授信BNSIApplyService.saveBaseInfo POST /bns/apply/saveBaseInfo端点saveApply 落本地 BnsApplyMainCredit(applyStatus=N),不调 FCS
10授信风控决策resriskPrice(bns RiskPriceBusiness / fcs IRiskClient 均注释;ApplyBusiness callFace TODO)下游风控决策整体注释/TODO,未接通

缺口小结

授信阶段缺口集中且严重——信息采集与分支齐全,但核验与判断环节基本空转/注释

  • BVN/KYC 核验当前不做真实核验:活跃路径只构造本地对象不外呼;真实第三方调用(大数据 queryBigdataBvn:127、银行卡 bankBvnMatch:275)整段注释。与改造方案”KYC/BVN 需在 crs 新建”一致。
  • 身份类型 BVN/NIN 双分支真实存在(identityType 分流 + Goldman 页),但 NIN 实名核验细节(是否经 Goldman/前端 ninMatch)待深入——这是 13 早期版漏画的分支。
  • 人脸:活体 Smile/Google 双渠道;invokeCreateCustByFace 是 bns 本地建客(非外部 Bridge);人脸增强 enhanceFace、人脸风控图 uploadFaceImageforBvn(目标大数据/crs)均注释;Google 审核员可跳过人脸;设备检查 UF 走 DEVICE_CHECK 场景。
  • creditStage 状态机(CREDIT_STAGE_1/8/9/10)贯穿核验/建客/返回——早期版未提。
  • 风控决策注释/TODOiRiskClient/callFace)——“是否通过/给多少额度”当前是断的。
  • 真实有效的只有:信息采集落库 + FDS 冻结校验 + 身份类型/人脸场景分流。授信申请只落 bns 本地表(applyStatus=N),不进 FCS
  • 综合:现金贷授信采集与分支完整,但 BVN 核验/人脸比对/风控决策三大环节均不真实执行——评估授信能否独立跑通的核心结论。