审核队列 · 1,415 条待审
出处硬校验:锚点须在 K0 命中;手填出处强制 inferred。批量通过:规则类直接入 rules.yaml(一个 commit); 定义类需人工归簇请单张过。
建模纪律 · 知识分类骨架(11 类)—— 判不准时点开对锚点
没通过实体四条的,不是扔掉,是归位。每类锚在不同的数据形态上——锚不对就是归错了。
速判:占一张实体表 → 实体;按时间追加流水 → 事件;某实体会流转的取值 → 状态维;静态描述值 → 属性; 一组可选值 → 枚举;连两个实体 → 关系;多事件编排 → 流程;「如果…就…」→ 规则;施加的操作 → 动作;算出来的量 → 指标。 全文见仓库 建模纪律.md「纪律 2」。
深链分发中 ALLO_PAY 映射到 SERVICE_PAYMENT(钱包支付),但该路由未注册,导航必失败。
"`ALLO_PAY` → `SERVICE_PAYMENT`(钱包支付,**路由未注册,导航必失败**"
深链路由不可达时直接调用 closeSDK() 退出。
"路由不可达时直接 `closeSDK()` 退出"
支付金额不由 URL 调起参数传入,进入页面后由订单接口返回。
"**金额不由 URL 传入**——进入页面后由订单接口返回"
调起参数 app_id 白名单仅包含 ALLO、BIMA、IM3。
"`app_id`(白名单仅 ALLO/BIMA/IM3)"
拉订单接口返回的 totalAmt 缺失时,toast "order error" 并 closeSDK() 退出,以防外部传入金额与后台不一致。
"`totalAmt` 缺失 → toast "order error" → `closeSDK()` 退出(防外部传入金额与后台不一致)"
页面第一步并发拉订单与积分余额(amsCardpointQueryPointBal 返回 avlScoreAmount 可用积分)。
"并发拉订单 + 积分余额 `amsCardpointQueryPointBal`(返回 `avlScoreAmount` 可用积分)"
用积分档试算时 AMOUNT = 订单总额 − 积分,即积分先抵扣,分期只对剩余部分试算。
"用积分档:`AMOUNT = total − 积分`(积分先抵扣,分期只对剩余部分试算)"
use_allo_points 开关默认开启,只切换展示哪套试算结果,不重新请求试算接口。
"`use_allo_points` 开关(默认开)**只切换展示哪套结果,不重新请求**"
选档时后端 LOAN_LIST 按返回顺序渲染,前端不排序,默认选中首档。
"后端 `LOAN_LIST` 按返回顺序渲染(前端不排序),**默认选首档**"
分期档位无免息档特殊标识,0% 只表现为 "0% admin fee" 文本。
"**无免息档特殊标识**——0% 只表现为 "0% admin fee" 文本"
消费支付的 PIN 验密只是门禁,验密 session 不进支付接口;与取现不同,取现的 session 随 coreTransApplyLoan 上送。
"PIN 校验只是门禁,**验密 session 不进支付接口**(与取现不同——取现的 session 随 `coreTransApplyLoan` 上送)"
组合支付 coreTransPayUnionPay 入参 totalAmt 须等于积分、钱包、PL 三者之和。
"`totalAmt`(须 = 积分 + 钱包 + PL 三者之和)"
组合支付 PAYMENT_STATUS 三态:0000 成功进入轮询确认;0004 需刷脸,刷脸成功回轮询、失败进失败页;异常进失败页。
"`0000` 成功 → 轮询确认;`0004` 需刷脸 → `COMMON_FACE`(scene=LOAN),**刷脸成功后续回轮询**、失败进失败页;异常 → 失败页"
轮询 coreTransPayUnionPayQuery 2s 间隔最多 10 次:0000 成功页、0002 失败页、第 10 次仍 0003 进「Processing」处理中页。
"2s 间隔 × 最多 10 次;`0000`→成功页、`0002`→失败页、第 10 次仍 `0003`→「Processing」处理中页"
成功/失败/处理中三个结果页按钮均为无参 closeSDK(),SDK 只关闭返回宿主不回传状态/金额参数,商户须自行查单确认结果。
"成功/失败/处理中三个结果页的按钮都是**无参 `closeSDK()`**——SDK 只关闭返回宿主,不回传任何状态/金额参数,**商户须自行查单确认结果**"
支付失败不可页内重试,失败页唯一按钮回宿主,用户需从商户侧重新发起。
"**失败不可页内重试**:失败页唯一按钮回宿主,用户需从商户侧重新发起"
payment 页无任何前置准入,不校验可用额度/账户状态/单笔限额,唯一门禁是 PIN,额度是否足够完全由后端 coreTransPayUnionPay 判定。
"**payment 页无任何前置准入**:不调 `checkAccountBeforeWithdrawAndPay`、不校验可用额度/账户状态/单笔限额,唯一门禁是 PIN"
消费支付前端流程不含券逻辑,提交无 couponId,立减券/免息券的应用不在本前端流程(SMP 立减在收单侧)。
"**消费支付流程不含券逻辑**:`service/payment/` 目录 grep coupon/免息零业务命中,提交无 couponId——立减券/免息券的应用不在本前端流程(SMP 立减在收单侧)"
「用 PayLater 支付」引导页三个出口,先 checkBeforePay()(含 checkAccount 与额度>0)再 closeSDK({params}) code=103 带目标地址跳转。
"三个出口,先 `checkBeforePay()`(含 checkAccount + 额度>0)再 `closeSDK({params})`(code=103 带目标地址)"
消费交易详情的 Repay 按钮仅在交易 SUCCESSFUL 且有未还期时出现,点击进入提前还款流 EARLY_REPAYMENT。
"**Repay 按钮**仅交易 SUCCESSFUL 且有未还期时出现 → 提前还款流(`EARLY_REPAYMENT`)"
消费交易详情页 query 契约为 type(S/T)、orderId(BIZ_SEQ_NO)、partnerOrderId(MER_BIZ_NO)、receiptId(可选),缺参不请求。
"query 契约 `type(S/T)/orderId(BIZ_SEQ_NO)/partnerOrderId(MER_BIZ_NO)/receiptId(可选)`,缺参不请求"
Instant Cash(取现)是 SDK 内的主借款产品:用户在取现额度内申请一笔现金借款,选分期、读 RIPLAY 合同、密码确认后资金到账 Allo Wallet,随后按期数×每月应还分期偿还并生成借据。
"Instant Cash(取现)是 SDK 内的**主借款产品**:用户在取现额度内申请一笔现金借款,选分期、读合同(RIPLAY)、密码确认后,资金到账 Allo Wallet,随后按"期数 × 每月应还"分期偿还并生成借据。"
取现的产品形态为:主动发起、金额自定、一次放款、固定分期。
"形态 = **主动发起、金额自定、一次放款、固定分期**。"
首借用户(从没借过)进入取现时先看一页产品介绍(Intro),点“Get Cash Now”才进入流程。
"**首借用户**(从没借过) | 先看一页产品介绍(Intro),点"Get Cash Now"才进流程"
持低价券用户进入取现时先进入利率档选择页(0%/0.5% 等档位任选),再进金额页。
"**持低价券用户** | 先进**利率档选择页**(0% / 0.5% 等档位任选),再进金额页"
点入口时有准入闸门:账户冻结的用户被静默拦下(不弹窗);额度低于门槛的用户被告知额度不足。
"账户冻结的用户静默拦下(产品口径不弹窗);额度低于门槛的用户被告知额度不足。"
取现入口门槛分层:普通用户最低 10 万卢比才可进入,持低价券用户 2 千卢比即放行。
"门槛本身是**分层的**——普通用户最低 10 万卢比才可进入,**持低价券用户 2 千卢比就放行**"
从额度首页进入的用户经过五道账户检查:邮箱未验证→去验证、证件待重传→去重传、冻结/审核中→告知、已逾期→引导先还款,每种拦截给出明确下一步动作。
"从额度首页进入的用户还会经过五道账户检查(邮箱未验证→去验证、证件待重传→去重传、冻结/审核中→告知、已逾期→引导先还款),每种拦截都给出明确的下一步动作。"
取现金额可取上限=可用额度与取现额度中较小者;下限统一 2 千。
"可取上限 = 可用额度与取现额度中较小者;下限统一 2 千。"