前端 hl-admin 按本条完成出纳 ADVANCE 页签接线并验证,回写 frontmatter: frontend_status=verified + owner mmg + ref 9e65d25bf551315cc6dea35475ef9803afadc04b + status_note 追加实现与验证说明(verified_at 沿用 2026-09-18)。
25 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | advance-cashier-pay-link | 司导预支(司导借款)支付链接通——出纳 ADVANCE 页签 queue/pay 两端点真实接通(原 598607 空壳下线) | admin | yst(GIT) | 新增接口 | deployed | verified | verified | mmg | 9e65d25bf551315cc6dea35475ef9803afadc04b | 2026-09-18 | 财务出纳「司导借款支付」页签(ADVANCE)此前在拆壳合芯 #7855 中为预留空壳,queue/pay 调用一律 598607「预留未接通,前端勿接」。本次 Epic #7901(PR #7902/#7906/#7910,已全部合并 dev-v3 并部署测试服,E2E 验证通过)真实接通:order 域预支审批通过后自动推送生成财务执行单 fin_advance(APPROVED)进入出纳待支付队列;出纳登记付款后记资金流水 OUT、执行单回写 PAID,并事件回写 order 域 order_advance PAID。路径沿用拆壳时已分配的 GET/POST /admin/finance/cashier/advance/{queue,pay}(非 /v3 前缀),入参/出参结构与拆壳契约一致,本次仅把行为从 598607 改为真实业务;付款金额锁死=队列行 amount(598610),前端应禁用金额输入直接回填。[mmg 2026-09-18 已实现并验证] cashier.js CASHIER_TAB_PATH 加 ADVANCE:'advance'(删「勿接抛错」),docstring 补 5995xx 段位;CashierQueuePage payType 白名单加 ADVANCE+isAdvance 并入 isInternalLine(内部线免手续费,fee 字段隐藏/提交省略)+queueNotice 司导预支口径+弹窗头部 unit 兜底补 operatorName;queueColumns 加 ADVANCE 专属列(单号/借款对象 operatorName/预支金额 actualAmount/发生日期/推送时间/备注/操作,无单位/摘要/申请人重复列,occurDate/remark 恒 null 显「-」);新建薄壳页 finance/pay/advance-driver(后端 sys_menu component=/finance/pay/advance-driver,menuName「司导借款支付」sortOrder 8,勿与 finance/pay/advance=PREPAY 预付款混);cashier/CashierQueuePage/cashier-reimburse 三 spec 加 ADVANCE 专项并翻转旧「勿接」断言,定向 38/38+scoped checkpoint 全绿(全量 Vitest+生产构建)。 | 2026-09-18 | dev-v3 |
司导预支(司导借款)支付链接通(管理后台)
服务: hl-order-service-v3(hl-finance 模块,端口 8086,财务表与 order v3 同库 hl_order_service_v3) 类型: 预留空壳真实接通(路径/入参/出参字段结构沿用 #7855 拆壳契约不变,行为从 598607 改为真实业务,前端视角等价新增可对接接口) 日期: 2026-09-18 影响范围: 管理后台财务域「出纳支付管理 - 司导借款支付(ADVANCE)」页签(原置灰/勿接,现可对接) 覆盖 Epic: #7901(PR #7902 地基 fin_advance 表+错误码 / PR #7906 审批推送+队列接通 / PR #7910 出纳付款接通+事件回写+菜单)
一、接口背景
司导预支(司导借款)= 订单执行中司机/导游向公司预借的备用金,从公司资金账户真实出款,属于出纳付款业务。完整链路:
订单详情创建预支(SUBMITTED 待审批)
-> 财务审批通过(order 域 order_advance APPROVED)
-> 自动推送生成财务执行单 fin_advance(状态 APPROVED,进入出纳 ADVANCE 待支付队列)
-> 出纳在「司导借款支付」页签登记付款(记资金流水 OUT)
-> fin_advance 回写 PAID;同事务事件回写 order 域 order_advance PAID(队列出队)
关键口径:
- 队列只有一笔状态:队列内单据 status 恒为 APPROVED(已审批待支付);付款成功翻 PAID 后自动出队。无草稿/审批中/驳回单,也没有独立复核环节。
- 金额推送时冻结:财务执行单金额是审批通过时的快照,出纳付款金额锁死(须严格等于队列行 amount,不一致 598610 硬拦),不允许改额。
- 队列无手续费:预支线无手续费概念,队列行 fee 恒为 0、actualAmount = amount;付款入参 fee 不传或传 0。
- 付款成功有最终一致旁路:order 域预支单状态由事件 AFTER_COMMIT 回写,极端情况下回写失败只告警不影响付款主链(财务侧已 PAID、钱已出账为准)。
此前状态(#7855 拆壳合芯,见 changelog 台账 214):ADVANCE 页签两个端点是契约占位空壳,调用一律返 598607「付款类型非法…ADVANCE 司导预支」预留未接通,前端被要求勿接。本次起该页签真实可用,598607 不再可能由这两个端点返回。
二、变更清单
| # | 方法 | 路径 | 变更类型 | 说明 |
|---|---|---|---|---|
| 1 | GET | /admin/finance/cashier/advance/queue | 空壳转接通 | 司导预支待付款队列:原一律 598607,现真实返回 fin_advance 中 status=APPROVED 分页 |
| 2 | POST | /admin/finance/cashier/advance/pay | 空壳转接通 | 司导预支登记付款:原一律 598607,现真实记 OUT 流水 + 回写 PAID + 事件回写 order_advance |
| 3 | 错误码段位 599500-599599 | 新增 | 预支支付链专属段位(hl-finance),启用 599500/599501/599502/599504/599505(599503 预留) | |
| 4 | 页签标识 ADVANCE | 可启用 | 出纳 8 页签之一;台账接口 bizType=ADVANCE 同步可见(已付款流水) |
路径前缀为 /admin/finance/cashier/advance(无 /v3 版本前缀,与其余 7 个出纳页签一致,经网关 /admin 路由到 hl-finance)。
三、接口详情
| 项 | 说明 |
|---|---|
| 使用场景 | 管理后台「财务 - 出纳支付管理 - 司导借款支付」页签:拉待支付队列、对单笔预支登记付款 |
| 认证 | 管理后台 JWT(网关统一鉴权),需出纳付款相关菜单/按钮权限 |
| 幂等性 | queue 只读幂等。pay 为 APPROVED 到 PAID 条件更新(CAS):服务端先对单据行 SELECT ... FOR UPDATE 行锁 + 锁内状态校验,重复付款/并发重复提交后到的请求返 599502,资金流水随事务回滚不留孤儿流水,重复提交安全 |
| 限流 | 走网关统一限流,无模块特殊限流 |
| ID 序列化 | 所有 Long 型 ID(队列行 id、入参 bizId/payAccountId、出参 flowId/bizId)JSON 中均为 String,防 JS 精度丢失;前端回传 bizId 时按字符串原样回传即可 |
| 单据状态机 | APPROVED(已审批待支付,推送即此态,队列内唯一状态)到 PAID(已支付,出纳付款回写,终态) |
| 排序与分页 | 队列按 advance_id 倒序(最新推送在前),分页 page/pageSize,默认 page=1、pageSize=20 |
四、接口入参
4.1 待付款队列 GET /admin/finance/cashier/advance/queue(Query 参数 CashierQueueFormReqVO)
| 字段 | 类型 | 必填 | 默认 | 说明 | 校验 |
|---|---|---|---|---|---|
| page | Integer | 否 | 1 | 页码 | 大于等于 1;兼容别名 pageNo(传 pageNo 等价) |
| pageSize | Integer | 否 | 20 | 每页条数 | 1-100,超 100 返 400 |
无任何业务筛选参数(不按状态/日期/单号筛选),队列固定只捞 APPROVED 单。
4.2 登记付款 POST /admin/finance/cashier/advance/pay(JSON body CashierPayFormReqVO)
| 字段 | 类型 | 必填 | 说明 | 校验/联动 |
|---|---|---|---|---|
| bizId | Long(JSON 字符串) | 是 | 业务单据ID,取队列行 id(fin_advance.advance_id) | 非空;不存在/已软删 -> 599500 |
| payAccountId | Long(JSON 字符串) | 是 | 出账公司账户ID(fin_fund_account,资金账户下拉选择) | 非空;账户不存在/停用 -> 598603 |
| payMethod | String | 建议必传 | 付款方式,字典 fin_pay_way 码值:CASH 现金 / BANK 银行转账 / THIRD_PARTY 三方支付 | 与 payChannel、账户类型三级联动(见 §六、§九);不传时跳过方式-账户校验,不建议前端留空 |
| payChannel | String | 条件必填 | 付款渠道:WXPAY 微信支付 / ALIPAY 支付宝;仅 payMethod=THIRD_PARTY 时传,CASH/BANK 不得传 | 最长 20;组合不匹配 -> 598608 |
| amount | Number | 是 | 付款金额,必须等于队列行 amount(金额锁死,前端禁用编辑直接回填) | 非空且大于 0(否则 598605);与快照不一致 -> 598610 |
| fee | Number | 否 | 手续费(大于等于 0,挂出账流水);预支线固定传 0 或不传 | 负数 -> 598605 |
| voucherNo | String | 否 | 付款凭证号(如银行回单流水号) | - |
| voucherUrl | String | 否 | 付款凭证影像 URL(OSS 地址) | - |
| payDate | String | 是 | 付款日期,格式 yyyy-MM-dd,可回溯补录(允许选今天以前的日期) | 非空;格式非法 -> 400 |
入参里没有 bizType/payType(路径即类型),也没有经办人/operatorName(后端自动取当前登录人快照,前端伪造无效)。
五、出参字段
5.1 队列出参:Result<PageResult<AdvanceQueueRowRespVO>>
外层为统一包装 Result(code/message/data/traceId/success),data 为分页结构 records / total / page / pageSize。
records[] 每行字段(共 10 个):
| 字段 | 类型 | 说明 |
|---|---|---|
| id | String | 单据ID(fin_advance 雪花 ID)。付款时作为 bizId 原样回传 |
| bizNo | String | 业务单号 = 预支单号,格式 YZ- + yyyyMMdd + 4 位序号(如 YZ-20260918-0007) |
| amount | Number | 付款金额(审批通过时快照冻结,即付款金额锁死基准) |
| fee | Number | 手续费,预支线恒为 0 |
| actualAmount | Number | 实付 = amount − fee;预支线下恒等于 amount |
| operatorName | String | 借款对象姓名快照(收款人/司导姓名 payeeName,改名不追溯) |
| createTime | String | 推送时间,yyyy-MM-dd HH:mm:ss(fin_advance 建单时间,即审批通过推送时间) |
| occurDate | String | 发生日期(yyyy-MM-dd);fin_advance 无来源列,恒返回 null,前端渲染用「-」兜底即可 |
| status | String | 单据状态,队列内恒为 APPROVED |
| remark | String | 备注;fin_advance 无备注列,恒返回 null |
队列行不返回订单号/借款类型/收款人 ID 等字段(单号 YZ- 与借款对象姓名为页面展示锚点;如需订单号需走 order 域预支详情接口,不在本页签契约内)。
5.2 付款出参:Result<CashierPayRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
| flowId | String | 资金流水ID(fin_fund_flow 雪花 ID) |
| flowNo | String | 资金流水号,格式 LS + yyyyMMdd + 4 位序号(如 LS202609180012) |
| balanceAfter | Number | 本笔记完后出账账户结存快照(可用于付款成功提示「账户余额 xxx」) |
| bizId | String | 业务单据ID(fin_advance.advance_id,已回写 PAID),与入参 bizId 相同 |
六、枚举 / 数据字典
6.1 单据状态 status(队列行出参)
| 值 | 中文 | 是否在队列 |
|---|---|---|
| APPROVED | 已审批待支付 | 是,队列内唯一值 |
| PAID | 已支付(终态) | 否,付款后出队 |
6.2 付款方式 payMethod(字典 fin_pay_way)
| 值 | 中文 | 渠道约束 | 账户约束 |
|---|---|---|---|
| CASH | 现金 | 不得传 payChannel | 须选现金类账户 |
| BANK | 银行转账 | 不得传 payChannel | 须选银行类账户 |
| THIRD_PARTY | 三方支付 | 必传 payChannel=WXPAY/ALIPAY | 须选对应渠道的商户号账户 |
6.3 付款渠道 payChannel
| 值 | 中文 |
|---|---|
| WXPAY | 微信支付 |
| ALIPAY | 支付宝 |
6.4 页签标识 ADVANCE
出纳已付款流水台账 GET /admin/finance/cashier/payments/page(8 页签共用,本次契约不变)查本页签已付款流水时传 bizType=ADVANCE;台账中 ADVANCE 单号前缀为 YZ-。
七、错误码
响应体形态:{"code": 码值, "message": "文案", "traceId": "...", "success": false},HTTP 状态码通常仍为 200(业务错误码在 body.code)。
7.1 预支支付链专属(段位 599500-599599,本次新增)
| code | message | 触发场景 | 前端处理建议 |
|---|---|---|---|
| 599500 | 预支单不存在 | bizId 无效或已被软删(如拿旧队列数据付款) | 提示「预支单不存在」并刷新队列 |
| 599501 | 预支单非待支付状态 | 单据既不是 APPROVED 也不是 PAID(异常中间态/并发状态漂移) | 提示后刷新队列 |
| 599502 | 预支单已支付 | 重复付款:单据已 PAID;含并发下 CAS 条件更新 0 行兜底 | 提示「该单已支付,请勿重复付款」并刷新队列(该单应已消失) |
| 599503 | 预支金额非法 | 预留码,当前付款链路不抛出(勿按此码写分支);语义为 amount 为 null 或小于等于 0 的脏数据拦截 | - |
| 599504 | 预支单已推送过财务 | order 域审批推送侧防重复推送(uk 约束/取号撞号重试耗尽)。出纳前端正常操作遇不到 | 出现属后端异常,报 traceId |
| 599505 | 预支推送快照数据非法 | order 域推送入口快照字段缺失/金额小于等于 0 fail-fast。出纳前端遇不到 | 出现属后端异常,报 traceId |
7.2 复用车看出纳通用码(段位 598600-598699)
| code | message | 触发场景 |
|---|---|---|
| 598603 | 出账账户不存在或已停用 | payAccountId 无效 / 账户被停用(弹窗前请重新拉账户下拉) |
| 598604 | 账户余额不足且不允许透支 | 出账账户余额不够且未开透支 |
| 598605 | 付款金额无效(金额须大于0,手续费不得为负) | amount 小于等于 0 / null,或 fee 小于 0(前端锁死回填正常不会触发) |
| 598608 | 收付方式与收付渠道不匹配(THIRD_PARTY 须传渠道 WXPAY/ALIPAY,其余方式不得传渠道) | THIRD_PARTY 没传/传了非法 payChannel;或 CASH/BANK 带了 payChannel |
| 598609 | 收付账户与收付方式不匹配(现金方式须选现金账户、银行转账须选银行账户、三方支付须选对应渠道商户号账户) | 付款方式与所选账户类型不一致;THIRD_PARTY 时渠道与账户渠道不一致 |
| 598610 | 付款金额与单据应付金额不一致(出纳付款须严格按审批应付金额,不得修改) | 金额锁死:amount 不等于队列行快照金额(含前端误传/用户改额) |
| 598607 | 付款类型非法(含 ADVANCE 司导预支文案) | 接通后这两个端点不会再返回;若仍见到 598607 说明打到旧版本后端,先确认部署版本 |
7.3 参数校验错误
JSR-303 注解校验失败(bizId/payAccountId/amount/payDate 为空、pageSize 大于 100、payDate 格式错误等)走全局 400 校验响应,字段级 message 为中文(如「业务单据ID不能为空」「付款日期不能为空」)。
八、示例
8.1 典型成功——拉队列 -> 登记银行转账付款
第 1 步:拉待付款队列
请求:
GET /admin/finance/cashier/advance/queue?page=1&pageSize=20
Authorization: Bearer <管理后台 JWT>
(无请求体)
响应:
{
"code": 200,
"message": "成功",
"data": {
"records": [
{
"id": "1962180000000000101",
"bizNo": "YZ-20260918-0007",
"amount": 3000.00,
"fee": 0,
"actualAmount": 3000.00,
"operatorName": "布仁",
"createTime": "2026-09-18 09:12:35",
"occurDate": null,
"status": "APPROVED",
"remark": null
}
],
"total": 1,
"page": 1,
"pageSize": 20
},
"traceId": "a1b2c3d4-e5f6-7890",
"success": true
}
无待支付单时(空态):
{
"code": 200,
"message": "成功",
"data": { "records": [], "total": 0, "page": 1, "pageSize": 20 },
"traceId": "a1b2c3d5-e5f6-7891",
"success": true
}
第 2 步:登记付款(金额回填队列 amount,禁用编辑)
请求:
POST /admin/finance/cashier/advance/pay
Authorization: Bearer <管理后台 JWT>
Content-Type: application/json
{
"bizId": "1962180000000000101",
"payAccountId": "1956000000000000001",
"payMethod": "BANK",
"amount": 3000.00,
"fee": 0,
"voucherNo": "TRANS20260918007",
"voucherUrl": "https://oss.example.com/voucher/20260918/yz0007.pdf",
"payDate": "2026-09-18"
}
响应:
{
"code": 200,
"message": "成功",
"data": {
"flowId": "1962190000000000202",
"flowNo": "LS202609180012",
"balanceAfter": 87600.00,
"bizId": "1962180000000000101"
},
"traceId": "b2c3d4e5-f6a7-8901",
"success": true
}
付款成功后该单 fin_advance 已 PAID 并出队;前端刷新队列此单消失,可在已付款流水台账(bizType=ADVANCE)查到 LS202609180012。
8.2 边界情况——重复付款被拦截(599502)
场景:同一队列行连续点了两次「确认付款」(或两个出纳同时操作)。第一笔成功,第二笔在服务端行锁内见到单据已 PAID。
请求(与 8.1 第 2 步完全相同的报文再发一次)
响应:
{
"code": 599502,
"message": "预支单已支付",
"traceId": "c3d4e5f6-a7b8-9012",
"success": false
}
前端处理:提示「该预支单已支付,请勿重复付款」,重新拉队列(该单已不在队列),不要重试原请求。
同形态的陈旧数据边界:拿着已过期的队列缓存付款,若单据已支付同样是 599502;若单据被软删则是 599500。
8.3 业务失败——付款金额与单据不一致(598610,金额锁死)
场景:前端未锁死金额(或被人为改成 2800.00)。
请求:
POST /admin/finance/cashier/advance/pay
Authorization: Bearer <管理后台 JWT>
Content-Type: application/json
{
"bizId": "1962180000000000101",
"payAccountId": "1956000000000000001",
"payMethod": "BANK",
"amount": 2800.00,
"payDate": "2026-09-18"
}
响应:
{
"code": 598610,
"message": "付款金额与单据应付金额不一致(出纳付款须严格按审批应付金额,不得修改)",
"traceId": "d4e5f6a7-b8c9-0123",
"success": false
}
其他高频失败形态(响应结构同上,换 code/message):
- 三方支付没选渠道:598608「收付方式与收付渠道不匹配…」
- 现金方式选了银行账户:598609「收付账户与收付方式不匹配…」
- 账户余额不足:598604「账户余额不足且不允许透支」
- 必填缺失(如 payDate 未传):HTTP 400 全局校验响应,message「付款日期不能为空」
九、业务边界
- 适用:队列仅展示 status=APPROVED 的预支财务执行单(来源:order 域预支审批通过自动推送);出纳对其登记付款。
- 不适用:
- 草稿 / 待审批 / 已驳回的预支不进队列(在 order 域审批链路,出纳看不到)。
- 已支付 PAID 单不出现在队列;拿旧 bizId 再付款 -> 599502。
- 队列查询不支持按单号/借款人/日期筛选(后端固定捞全量 APPROVED 分页)。
- 金额锁死(最重要):pay.amount 必须与队列行 amount 完全一致(BigDecimal 按数值比较,3000 与 3000.00 视为相等),不一致一律 598610。前端付款弹窗金额输入框应禁用/只读,打开弹窗时用队列行 amount 回填,不要给出纳留改额入口。
- 方式-渠道-账户三级匹配:THIRD_PARTY 必须带 WXPAY/ALIPAY 且选对应渠道商户号账户(否则 598608/598609);CASH/BANK 不得带 payChannel。
- 并发安全:双人同时付同一单不会重复出款——行锁 + CAS,后到者 599502,资金流水随事务回滚。
- 余额与透支:账户余额不足且不允许透支 -> 598604,付款整笔失败,单据仍是 APPROVED 留在队列,可换账户/充值后重试。
- payDate 可补录:允许选历史日期(出纳补登场景),不允许空、格式必须 yyyy-MM-dd。
- 支付后状态回写有旁路延迟:财务侧 PAID 与出账为同事务强一致;订单侧 order_advance 状态由事件提交后异步回写,前端「订单详情-预支列表」若短时间仍显示待支付可提示刷新,不影响资金结果。
十、修改前后对比
10.1 行为对比(本次为同路径空壳接通)
| 项 | 接通前(#7855 空壳) | 接通后(#7901,本次) |
|---|---|---|
| GET .../advance/queue | 直接抛 598607,无任何数据 | 返回 fin_advance APPROVED 分页(10 字段强类型行) |
| POST .../advance/pay | 直接抛 598607,不出账 | 行锁校验 -> 金额锁死 -> 记 OUT 流水 -> 回写 PAID -> 事件回写 order_advance |
| 前端策略 | 页签置灰/不接入(文档明确「勿接」) | 正式对接,放开页签 |
| 路径 / HTTP 方法 / 入参字段 / 出参字段 | - | 完全不变(拆壳时已按强类型契约建好) |
| 页签 bizType=ADVANCE 台账 | 无 ADVANCE 流水 | 付款后可见 LS- 流水(台账接口本身无改动) |
10.2 错误码对比
| 场景 | 接通前 | 接通后 |
|---|---|---|
| 调 queue/pay | 598607(任何入参都抛) | 正常业务响应;失败按原因返 599500/599501/599502/598603/598604/598605/598608/598609/598610 |
| 重复付款 | 598607 | 599502 预支单已支付 |
因字段契约零变化,无字段级增删改;前端此前若已按 #7855 文档预埋了 ADVANCE 类型定义,可直接启用。
十一、影响评估 / 回滚
11.1 影响评估
- 是否破坏向后兼容:否。路径、方法、入参/出参结构均未变;仅行为从「返 598607」变为真实业务,此前无前端真实调用(空壳期约定勿接)。
- 前端是否必须同步上线:否,但需要主动放开原被要求置灰/勿接的「司导借款支付」页签并接线;不接线不影响其他 7 个页签。
- 数据/DDL:PR-1 新建财务执行单表 fin_advance(Flyway 随 hl-finance 部署),队列与付款只读写该表及 fin_fund_flow;老订单无预支数据时队列自然为空。
- 部署状态:3 个 PR 已全部合并 dev-v3 并部署测试服,队列 -> 付款 -> PAID 回写 -> order 域状态回写 E2E 验证通过(2026-09-18)。
11.2 回滚方案
- 回滚方式:revert PR #7910(付款接通)/ #7906(队列与推送)即可恢复空壳/停推;纯应用层回滚,已产生的 fin_advance/流水数据保留无害。
- 回滚后队列端点会重新返回 598607,前端页签重新置灰即可,无数据迁移、无缓存清理。
十二、注意事项(给前端的落地清单)
- 金额控件锁死:付款弹窗 amount 用队列行 amount 回填且只读,fee 固定 0;不要做可编辑金额框(后端 598610 会硬拦,放开输入只会制造失败弹窗)。
- bizId 用队列行 id 字符串:雪花 ID 全程按字符串处理(列表已序列化为 String,直接回传,不要 Number 化)。
- 空字段兜底:队列行 occurDate、remark 恒为 null,列表列用「-」展示,不要当成异常。
- operatorName = 借款对象(司导姓名):列名建议展示为「借款对象」,不是「申请人」。
- 付款成功后动作:关闭弹窗 -> 成功提示(可附带 flowNo 与 balanceAfter)-> 重拉 queue(该单应消失);不要只在本地列表删行后不刷新。
- 599502 是正常业务拦截不是系统错误:按「重复付款」语义提示并刷新队列;599500/599501 同样提示后刷新。599504/599505 出纳端正常不会出现,出现请带 traceId 找后端。
- 若 queue/pay 仍收到 598607:说明请求落到未部署新代码的旧实例/旧环境,先核对环境版本,不要改前端代码适配。
- 页签标识:ADVANCE;单号前缀 YZ-;已付款流水走共用台账 GET /admin/finance/cashier/payments/page?bizType=ADVANCE(契约沿用出纳台账既有约定)。
- 业务上游入口:预支申请/审批在订单详情(order 域端点 /v3/admin/order/{orderId}/advance、/v3/admin/order/advance/{advanceId}/approve 等),出纳页签只负责付款,不负责申请与审批。
十三、关联 / 联系人
13.1 链接
- Epic Issue: #7901
- PR-1(地基 fin_advance + 错误码 5995xx): #7902 | merge commit 4d4d69a8
- PR-2(审批推送 + 出纳队列接通): #7906 | merge commit 9d54a66e
- PR-3(出纳付款接通 + 事件回写 + 菜单): #7910 | merge commit 4cf4ae73
- 前序契约(空壳期): PR #7855 出纳支付拆壳合芯 changelog《17_7842_出纳支付接口拆壳合芯-修改接口-管理后台》(ADVANCE 当时标注「预留未接通,前端勿接」)
13.2 联系人
- 后端负责人: @yst(腰苏图)