本体协作平台
M 2 · DOC-2026-010 · extracted

06-转分期

原文 · 20 段(高亮 = 已被卡片引用)
p1# 06 · 转分期(Convert to Installment / Tenoring)
p2> 初稿 · 事实来源 = SDK 代码仓 `ifes-resm`。费率/期数以最新 PRD/PM 为准。
p3## 模块定位
p4用户把**一笔已有借据/欠款主动摊成更多期**偿还(tenoring),降低单期压力(收费)。与"账单分期""逾期重组"是**三个不同能力**,易混,见下方辨析。
p5## 业务视角:给"单笔月供压力大"用户的摊期工具
p6> 每条规则的代码证据见下方 D 节。
p7- **给谁**:风险标签 `ZQ01`(借据展期资格)圈选的用户——不是所有人可见;圈选规则在风控侧。 - **用户旅程**:可转借据列表(哪些借据能转由后端直接给出)→ 选某笔 → 看"当前每期 vs 新每期"对照(**新期数档与费用由定价引擎实时返回**,默认预选最长期)→ 确认页费用摊开(总管理费/每月管理费/服务费)→ PIN(IM3/BIMA 走 OTP)→ 结果三态,失败可 Try Again。 - **代价**:收费——每月管理费按新期数计,消费类借据首期还可能有服务费;本质是"用费用换时间"。 - **经营关注点**:某笔借据期数不可改时(后端 `80530300`),用户被提示后退回列表——"哪些借据可转"完全是后端/风控口径,前端不做二次过滤,运营侧若配置错误用户会在选期页才被弹回。
p8## 核心能力
p9| 步骤 | 路由 | 文件 | |---|---|---| | 可转列表 | `PAY_LATER_SERVICE_CONVERT_LIST` | `service/convert/List.vue`(列出可转分期的借据)| | 选期数 | `PAY_LATER_SERVICE_CONVERT_SELECT` | `service/convert/Select.vue`(期数由后台动态返回,见下)| | 确认 | `PAY_LATER_SERVICE_CONVERT_CONFIRM` | `service/convert/Confirm.vue`(费用拆解 + 密码)| | 结果 | `COMMON_CONVERT_RESULT` | `result/ConvertResult.vue` |
p10**门槛/字段**: - 准入:`riskCode ∋ ZQ01`(`PaylaterUserType.ConvertInstallmentUser`;ZQ01 = 借据展期,底层走 `TXN_CODE=EXTENSION`,产品侧"转分期"即指此能力)。 - 埋点分区:`convert_installment`。
p11**期数来源**:选期数页的可选期数由后台 `coreTransTryLoan` 返回的 `LOAN_LIST` 动态驱动(`service/convert/Select.vue:222`),非前端写死;页面默认预选最大一期。
p12**底层交易能力(与 05 展期同源)**:转分期在底层走 `TXN_CODE=EXTENSION`,并以 `TRANSACTION_TYPE='EX'` 拉取可转借据(`service/convert/Select.vue:206`、`service/convert/List.vue:84`)。这与 [05 灵活还款](05-灵活还款.md) 中的「展期入口」是**同一个 EXTENSION(展期)能力的不同入口**——本篇是"主动把借据摊期"的独立入口,05 展期入口是账单当期为 0、下月有未出账时在还款模块内的展期入口,二者复用同一笔后台交易。
p13**可转范围 / 服务费展示条件**:选期数页对"哪些借据可转、各期数对应服务费如何展示"的条件在代码中落实(`service/convert/Select.vue:228-231`,按后台 `LOAN_LIST` 各档逐期渲染费用)。现网具体费率为后台运行时值。
p14## 三者辨析(重要)
p15| 能力 | 触发场景 | 本质 | 准入 | |---|---|---|---| | **转分期(本篇)** | 用户主动把已有借据摊期 | 已有欠款 → 拉长期数(收费)| `riskCode ZQ01` | | **账单分期**(见 [05](05-灵活还款.md))| 还款时选"分期还" | 本月全额结清当期 + **同时生成新借据**按期还(本月不还、下月起)| `repayByInstallmentSwitch=Y` | | **逾期重组**(见 [05](05-灵活还款.md))| 逾期/有压力 | 多笔借据**合并**成一笔更长期新贷、降月供,逾期入口免息免罚 | `flexCode第19位∈{1,2} + loanRestructuringSwitch=Y` |
p16## D. 转分期提交链(代码查实,2026-07-16)
p17> 源:`service/convert/{List,Select,Confirm}.vue` + `result/ConvertResult.vue`,分支 `vibe-coding-case/K-S-2607-opt-20260710`。
p18- **列表**:`coreTransQueryTransactionList{TRANSACTION_TYPE:'EX'}` 按月分组;**前端不叠加过滤,后端返回即可转**(`List.vue:80-103`)。 - **选期**:并发 `coreTransQueryLoanReceipt{REF_NBR_LIST}` + `coreTransTryLoan{TXN_CODE:'EXTENSION', REF_NBR}`;`ret_code=80530300` = 该借据期数不可改,提示后回退(`Select.vue:196-238`);服务费展示条件 = 消费类借据(S/T)且当前期数为 0。 - **确认与提交**:展示当前/新每期额与剩余期、剩余额、总管理费 `TOTAL_INST_HANDLE_FEE`、每月 `MONTH_INST_HANDLE_FEE`;PIN(category=EXTENSION)后提交 **`coreTransExtensionApply{loanReorgList:[{refNbr, currTotalTerm}], session, contractInfo{contractBase[{name,version,signDatetime}], contractDecisionTime}}`**——合同版本随单存档(`Confirm.vue:166-250`)。 - **结果**:轮询 `coreTransQueryTransactionDetail{TRANSACTION_TYPE:'EX'}` 2s×5,`P` 继续;映射 `extensionStatus` 三态 success/inprocess/failed,失败页有 **Try Again**(`Confirm.vue:266-308`、`ConvertResult.vue:80-156`)。
p19## 待确认 / 风险
p20- 转分期的**现网费率值**为后台运行时下发,待以 PM/后端口径核对(可转借据范围与服务费展示条件本身已在代码中明确,见上)。 - 转分期与"账单分期"在产品口径上是否合并,待 PM 确认。 - ZQ01 人群的圈选规则待补。
抽出的卡片 · 15
定义DOC-2026-010#p4pending_review

转分期是指用户把一笔已有借据/欠款主动摊成更多期偿还,以降低单期还款压力,并收取费用。

"用户把**一笔已有借据/欠款主动摊成更多期**偿还(tenoring),降低单期压力(收费)"

边界DOC-2026-010#p4pending_review

转分期与账单分期、逾期重组是三个不同的能力。

"与"账单分期""逾期重组"是**三个不同能力**"

动作条件DOC-2026-010#p7pending_review

转分期只对被风险标签ZQ01(借据展期资格)圈选的用户可见,并非所有人可见。

"风险标签 `ZQ01`(借据展期资格)圈选的用户——不是所有人可见"

规则DOC-2026-010#p7pending_review

转分期收费,每月管理费按新期数计算,消费类借据首期还可能收取服务费。

"每月管理费按新期数计,消费类借据首期还可能有服务费"

动作条件DOC-2026-010#p7pending_review

当某笔借据期数不可改时(后端返回80530300),用户被提示后退回可转列表。

"某笔借据期数不可改时(后端 `80530300`),用户被提示后退回列表"

规则DOC-2026-010#p10pending_review

转分期的准入条件为riskCode包含ZQ01。

"准入:`riskCode ∋ ZQ01`"

规则DOC-2026-010#p11pending_review

选期数页的可选期数由后台coreTransTryLoan返回的LOAN_LIST动态驱动,非前端写死,页面默认预选最大一期。

"选期数页的可选期数由后台 `coreTransTryLoan` 返回的 `LOAN_LIST` 动态驱动(`service/convert/Select.vue:222`),非前端写死;页面默认预选最大一期"

规则DOC-2026-010#p12pending_review

转分期在底层走TXN_CODE=EXTENSION,并以TRANSACTION_TYPE='EX'拉取可转借据。

"转分期在底层走 `TXN_CODE=EXTENSION`,并以 `TRANSACTION_TYPE='EX'` 拉取可转借据"

规则DOC-2026-010#p18pending_review

可转列表前端不叠加过滤,后端返回的借据即为可转。

"**前端不叠加过滤,后端返回即可转**"

动作条件DOC-2026-010#p18pending_review

服务费展示条件为消费类借据(S/T)且当前期数为0。

"服务费展示条件 = 消费类借据(S/T)且当前期数为 0"

状态DOC-2026-010#p18pending_review

返回码80530300表示该借据期数不可改。

"`ret_code=80530300` = 该借据期数不可改"

状态DOC-2026-010#p18pending_review

转分期结果由extensionStatus映射为三态:success、inprocess、failed。

"映射 `extensionStatus` 三态 success/inprocess/failed"

流程步骤DOC-2026-010#p7pending_review

转分期用户旅程:可转借据列表→选某笔借据→看当前每期与新每期对照(默认预选最长期)→确认页费用摊开(总管理费/每月管理费/服务费)→PIN(IM3/BIMA走OTP)→结果三态,失败可Try Again。

"可转借据列表(哪些借据能转由后端直接给出)→ 选某笔 → 看"当前每期 vs 新每期"对照(**新期数档与费用由定价引擎实时返回**,默认预选最长期)→ 确认页费用摊开(总管理费/每月管理费/服务费)→ PIN(IM3/BIMA 走 OTP)→ 结果三态,失败可 Try Again"

边界DOC-2026-010#p15pending_review

账单分期在还款时选择分期还,本质是本月全额结清当期并同时生成新借据按期还(本月不还、下月起),准入为repayByInstallmentSwitch=Y。

"本月全额结清当期 + **同时生成新借据**按期还(本月不还、下月起)"

边界DOC-2026-010#p15pending_review

逾期重组是在逾期/有压力场景把多笔借据合并成一笔更长期新贷、降月供,逾期入口免息免罚,准入为flexCode第19位∈{1,2}且loanRestructuringSwitch=Y。

"多笔借据**合并**成一笔更长期新贷、降月供,逾期入口免息免罚"