10-会员与Premium
Premium(Allo Prime / Limit Up Premium)是面向 Y001(LimitUp)用户的付费会员,其权益包括月费权益、杠杆率提升和还款提额比例提升。
"面向 Y001(LimitUp)用户的付费会员(Allo Prime / Limit Up Premium)。会员权益 = 月费权益 + 杠杆率提升 + **还款提额比例提升**。"
产品对外统一命名为 Premium,所有涉及 member 的文案改为 premium,以 premium 作为产品名称。
"将所有涉及到 member 的文案改为 premium,以 premium 作为产品名称"
风控按可配流量比例将原 LimitUp 客群切分为"正常 LimitUp 用户"与"特殊(月费模式测试)用户",初始比例为 90%:10%。
"风控对原 LimitUp 客群按可配流量比例切出"正常 LimitUp 用户"与"特殊(月费模式测试)用户",初始比例 **90% : 10%**"
风险审批引擎新增出参用于用户标记,该字段仅用于 LimitUp 客户,其他客户赋默认值 -999。
"风险审批引擎新增出参做用户标记(该字段仅用于 LimitUp 客户,其他客户赋默认值 **-999**)"
特殊用户开户流程与正常 LimitUp 一致,差异在于:除质押提额外的提额功能需缴纳月费后才生效。
"特殊用户开户流程与正常 LimitUp 一致,差异在于:**除质押提额外**的提额功能需缴纳月费后才生效。"
用户 market code 可随时变更,支持把"需会员购买"批量改为"不需会员购买"。
"用户 market code 可随时变更,支持把"需会员购买"批量改为"不需会员购买""
market code 前两位为 01 表示会员模式测试用户,需判断会员是否在有效期内,生效中才允许提额。
"前两位 **01** → 会员模式测试用户,需判断会员是否在有效期内,生效中才允许提额;"
购买资格信号由 marketCode.substring(0,2) 决定:01=可买、00=不可买,对应 isMemberEnabled,表示能否购买会员。
"`marketCode.substring(0,2)`:`01`=可买 / `00`=不可买(`isMemberEnabled`)"
实际会员态信号由 payLaterAccount.member.status(getMember())决定,ACTIVE 表示会员有效,判断是否已是会员。
"`payLaterAccount.member.status`(`getMember()`):`ACTIVE`=有效"
isMember 判定为真需同时满足 isMemberEnabled 为真且 member.status 等于 ACTIVE。
"`isMember = isMemberEnabled && member.status==='ACTIVE'`"
legacy Home.vue 会员卡三态之一:即将到期(member.expireTime 距今 ≤ 7 天),展示续费卡。
"**即将到期**(`member.expireTime` 距今 ≤ 7 天)→ 续费卡"
legacy Home.vue 会员卡三态之一:生效中,展示 "Limit Up Premium" 与到期日。
"**生效中** → "Limit Up Premium" + 到期日"
legacy Home.vue 会员卡三态之一:未购买,展示激活/开通卡,CTA 跳转购买页。
"**未购买** → 激活/开通卡(CTA 去购买页)"
HomeV2.vue 的 memberCardState 四态之一:expiringSoon 表示即将到期(≤ 7 天),展示续费卡。
"`expiringSoon` — 即将到期(≤ 7 天),续费卡;"
HomeV2.vue 的 memberCardState 四态之一:inactive 表示未购买/已过期,展示开通/激活卡。
"`inactive` — 未购买/已过期,开通/激活卡。"
相对 Home.vue 的三态,HomeV2.vue 多出 none(不展示)这一态。
"相对 `Home.vue` 三态,新版多出 `none`(不展示)这一态。"
会员卡是否展示由 isMemberVisible 先行门控,需同时满足 5 个 gate 才展示。
"会员卡是否展示由 `isMemberVisible`(`Home.vue:708-717` / `HomeV2.vue:546-555`)先行门控,需同时满足以下 **5 个 gate**"
会员卡可见性 gate 之一:邮箱已验证(!isEmailVerificationRequired)。
"邮箱已验证(`!isEmailVerificationRequired`);"
会员卡可见性 gate 之一:身份核验未在进行中(!isIdentityVerificationInProgress)。
"身份核验未在进行中(`!isIdentityVerificationInProgress`);"
会员卡可见性 gate 之一:身份不需重传(!isIdentityReuploadRequired)。
"身份不需重传(`!isIdentityReuploadRequired`);"
会员卡可见性 gate 之一:账户未冻结(!isAccountFrozen)。
"账户未冻结(`!isAccountFrozen`);"
会员卡可见性 gate 之一:具备购买资格且会员态就绪(isMemberEnabled && isMemberReady)。
"具备购买资格且会员态就绪(`isMemberEnabled && isMemberReady`)。"
会员卡展示门控中任一条件不满足,则不展示会员卡,对应 HomeV2 的 none 态。
"任一不满足则不展示会员卡(即与 `HomeV2` 的 `none` 态相呼应)"
memberCardState 先判 isMemberVisible,为假返回 none;否则用 isMember(=isMemberEnabled && status==='ACTIVE')区分 active 与 inactive。
"`memberCardState` 先 `if(!isMemberVisible) return 'none'`,之后才用 `isMember(=isMemberEnabled && status==='ACTIVE')` 分 `active`/`inactive`"
isMemberEnabled/isMemberReady 已并入 isMemberVisible(门控内判定),会员态 status 才在门控之后判定。
"`isMemberEnabled` / `isMemberReady` **本身已并入 `isMemberVisible`**,并非在门控之后才判定;会员态 `status` 才是在门控之后再判"
SDK 主页顶部:未激活态显示固定文案并可点"激活"进入购买流程;已激活态显示会员状态及有效期截止日,可点 renew 进入购买流程。
"未激活显示固定文案,点击"激活"进入购买流程;已激活显示会员状态及有效期截止日,点击 "renew" 进入购买流程"
二期中未在有效期内的测试用户,入口文案更新为 increase higher limit,点击激活进入按最新 UI 展示的会员详情页。
"二期未在有效期内的测试用户,入口文案更新为 **increase higher limit**"
现网仅单会员,market code 前两位只用 00/01;多会员类型为 0826 设计的预留能力,尚未上线。
"目前**仅单会员**,market code 前两位只用 `00`/`01`。下述"多会员类型"是 0826 设计的预留能力,尚未上线"
设计上 market code 前两位可扩展为 00~99 任一数值,由中后台按数值配置不同会员类型。
"前两位可扩展为 **00~99 任一数值**,由中后台按数值配置不同会员类型(会员 01、会员 02…)"
规划中含年费价格配置,购买后有效期 365 天;前端对 term===12 已有渲染逻辑,后台下发 term===12 即生效。
"规划中还含**年费价格**配置(购买后有效期 365 天)"
质押提额:Premium 二期在原比例上 +50% 杠杆率,会员提升的杠杆率对全额度生效,最高敞口可达 6.3M。
"质押提额 | 基础质押杠杆比例(读 market code 指定位) | **在原比例上 +50% 杠杆率** | 会员提升的杠杆率对全额度生效,最高敞口可达 **6.3M**"
QRIS 支付提额:由每笔 0.2% 提升为 Premium 二期每笔 0.5%。
"QRIS 支付提额 | 每笔 0.2% | **每笔 0.5%**"
还款提额:由 2% 提升为 Premium 二期 3%,与 R1 表第 3-4 位 03=3% 对齐。
"还款提额 | 2% | **3%** | 与 [R1 速查表](../参考/R1-业务码位段速查表.md) 第 3-4 位 `03`=3% 对齐"
二期更多 benefit:CT BU 支付 5% 返现和 Indomaret 立减,点击展示对应商户弹窗。
"CT BU 支付 **5% 返现** 和 Indomaret 立减,点击展示对应商户弹窗"
非会员态保持与其他 LimitUp 用户相同的提额规则,仅会员态才叠加上述提升。
"非会员状态保持与其他 LimitUp 用户相同的提额规则;会员状态才叠加上述提升"
购买页套餐档位非前端写死,而是按后台 amsMembershipPrice 下发的 membershipPriceConfigList 渲染,档数、各档时长与价格均由后台配置驱动。
"购买页按后台 `amsMembershipPrice` 接口下发的 `membershipPriceConfigList` 渲染"
T&C 协议默认不勾选,用户主动勾选后"继续"按钮才高亮可点,并记录用户勾选协议。
"**协议默认不勾选**,需用户主动勾选 T&C(二期更新为最新 T&C 内容)后"继续"按钮才高亮可点;记录用户勾选协议"
会员购买默认钱包支付:弹窗展示会员支付金额及方式 → 验 PIN → 支付。
"默认**钱包支付**,弹窗展示会员支付金额及方式 → 验 **PIN** → 支付"
购买支付成功后弹"购买成功"弹窗,关闭后停留在购买页并刷新顶部会员有效期截止日。
"成功:弹"购买成功"弹窗,关闭后停留在购买页并刷新顶部会员有效期截止日"
余额不足时提示余额不足,展示"充值"(跳 App 充值主页)和"got it"(关弹窗)按钮,二期为账户余额不足时引导跳充值页。
"余额不足:提示余额不足,出"充值"(跳 App 充值主页)和 "got it"(关弹窗)按钮"
未激活态购买成功后,有效期截止日 = 当前日期 + 30 天(1 个月)或 + 90 天(3 个月)。
"未激活态购买成功 → 有效期截止日 = **当前日期 + 30 天(1 个月)/ + 90 天(3 个月)**"
截止日当日仍属有效期;如原截止 4/30、续 1 个月则新截止为 5/30 23:59:59。
"**截止日当日仍属有效期**(例:原截止 4/30,续 1 个月 → 新截止 `5/30 23:59:59`)"
非会员态进入 LimitUp 任务列表页时,除质押提额任务外其他提额任务置灰不可用,点击引导文案入口进入购买会员页。
"会员测试用户进入 LimitUp 任务列表页,若为**非会员**态:**除质押提额任务外,其他提额任务展示置灰不可用**,点击引导文案入口进入购买会员页"
二期:未激活时优化任务 logo 并展示引导开通会员入口;购买成功后提额任务 logo 变勾选态,提额文案对应更新。
"二期:未激活时对任务 logo 做优化并展示引导开通会员入口;购买成功后提额任务 logo 变勾选态,提额文案对应更新"
QRIS 主扫支付页判断用户为 LimitUp 且非会员时展示引导文案,点击唤起 SDK 会员支付页 deeplink。
"**QRIS 主扫支付页**:判断用户为 LimitUp 且**非会员**时展示引导文案,点击唤起 SDK 会员支付页 **deeplink**"
会员有效期内展示会员还款提额比例(基于 market code 第 3-4 位,口径以 R1 表为准);会员失效则读营销系统配置比例。
"会员有效期内展示会员还款提额比例(基于 market code 第 3-4 位,**口径以 [R1 速查表](../参考/R1-业务码位段速查表.md) 为准**);会员失效则读营销系统配置比例"
钱包交易列表新增商户名 Limit up Member(0515 后对外标题改为 Pay to limit up premium),交易类型复用 payment,详情页复用 online payment 样式仅改商户名。
"钱包交易列表**:新增商户名 `Limit up Member`(0515 更新后对外标题改为 `Pay to limit up premium`);交易类型复用 payment"
会员有效期内还款提额=6%(marketCode 第 3-4 位=06),非会员为 2%;该比例前端直读第 3-4 位为整数百分比(NN→N%,非枚举映射)。
"会员**有效期内**还款提额 = **6%**,即 marketCode 第 3-4 位 = `06`;非会员 2%"
数据源 A:legacy 主页 Home.vue 读后台 pledgeLeverageLimit.premiumMemberIncreaseRatio,现网 06→6%。
"legacy 主页 `Home.vue` 读后台 `pledgeLeverageLimit.premiumMemberIncreaseRatio`(现网 `06`→**6%**)"
数据源 B:账单页与 HomeV2.vue 用 getMemberPremiumPercent,按 marketCode 第 3-4 位直读整数百分比取值;两套口径一致,会员有效期内均为 6%。
"账单页 `bill/*` 与新版主页 `HomeV2.vue` 用 `getMemberPremiumPercent`,按 marketCode 第 3-4 位(`substring(2,4)` 直读整数 %)取值。两套口径一致,会员有效期内均为 6%"
R1 表第 3-4 位还款提额率:00=2%(默认)、03=3%、06=6%,直读整数不限于枚举;非会员一律走 2% 兜底。
"`00`=2%(默认) · `03`=3% · `06`=6%(直读整数,取值不限于枚举);非会员一律走 2% 兜底"
1105 文档写的 99=99% 中的 99 非该字段合法值,以 R1 表为准。
"《QRIS 支付页展示会员提额比例 1105》原文写 "06=6%,99=99%",`99` 非该字段合法值,**以 R1 表为准**"
6% 兜底用于未购买会员卡的营销文案“每笔得 6%”,2% 兜底用于会员实际提额比例,二者语义不同、不可混用。
"602=未购买卡文案的 6% 兜底、616=会员实际提额比例的 2% 兜底"
还款结清后调用实时提额引擎更新 market code,并透传结清账单类指标(如 LastSettledBillAmount、LastSettledBillPrincipal,需传 Costa 字段)。
"调用实时提额引擎更新 market code(透传一批结清账单类指标,如 `LastSettledBillAmount` / `LastSettledBillPrincipal` 等,需传 Costa 字段)"
购买会员成功后先调实时提额引擎更新 market code,再调调额,并透传支付金额、新增有效时长、最新有效期截止日等字段。
"先调实时提额引擎更新 market code,再调调额;透传 `LimitupPremiumPaymentAmout`(支付金额)、`LimitupPremiumNewAddValidityDay`(新增有效时长)、`LimitupPremiumLatestValidityDate`(最新有效期截止日)"
IPPLM 引擎新增账户层 RiskCode 入参;出参 OutExtra06 含 41 时配合 ProductCdAdjTypeList/OrigValueList/NewValueList 使用,枚举 801002_09 更新 RiskCode、801001_09 做 Y001→Y001_R1 调整。
"出参 `OutExtra06` 含 `41` 时配合 `ProductCdAdjTypeList`/`OrigValueList`/`NewValueList` 使用(枚举 `801002_09` 更新 RiskCode,`801001_09` 做 Y001→Y001_R1 调整)"
还款成功后持续轮询 15 秒(每 2 秒查 1 次)杠杆率奖励是否发放:超时展示已有奖励,命中则只展示本次提升的奖励。
"还款成功后持续轮询 **15 秒(每 2 秒查 1 次)** 杠杆率奖励是否发放:超时则展示已有奖励,命中则按结果只展示本次提升的奖励"
本次还款提额额度为“还款任务提额 PayLaterRepayment”与“风险提额 ActiveRepayment”当日最后一条记录的合并。
"本次还款提额额度(合并"还款任务提额 `PayLaterRepayment`"与"风险提额 `ActiveRepayment`"当日最后一条记录)"
剩余可领取杠杆额度仅在大于 0 时才展示,点击 top up 跳转质押页。
"剩余可领取杠杆额度(>0 才展示,点 top up 跳质押页)"
会员叠加杠杆(如二期 +50%)由会员/营销配置 cfgMemberLeverageRatio 等下发,不由 marketCode 位段编码;marketCode 第 11-13 位均未使用。
"会员叠加杠杆(如二期 +50%)由会员/营销配置 `cfgMemberLeverageRatio` 等下发(见 [09 质押](09-流动性定存与质押.md)),不由 marketCode 位段编码"
会员购买走路由 PAY_LATER_FLEXIBLE_LIMIT_MEMBER,为后台流程,前端不计算费用。
"路由 `PAY_LATER_FLEXIBLE_LIMIT_MEMBER`(后台流程,前端不算费用)"
会员月费/年费具体价格及有效期天数为后台/营销系统配置,前端代码读不到,需 PM 提供现网值。
"月费/年费具体价格及有效期天数**:为后台/营销系统配置,需 PM 提供现网值"
框架图中的 20K/月、杠杆 +20% 为 0516 早期口径;二期后各比例以 0609 口径与现网配置为准。
"框架图 20K/月、杠杆 +20% 为 0516 早期口径,二期后各比例以 0609 与现网配置为准"