From 5cdec2d684402eb93120bfbaca5a6d42f6889a1d Mon Sep 17 00:00:00 2001 From: zhouyonggao <1971162852@qq.com> Date: Fri, 13 Mar 2026 11:30:28 +0800 Subject: [PATCH] =?UTF-8?q?docs(prd):=20=E6=9B=B4=E6=96=B0=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E9=A2=84=E7=BA=A6=E6=B5=81=E7=A8=8B=E5=8F=8A=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E6=80=A7=E4=BF=9D=E9=9A=9C=E6=9C=BA=E5=88=B6=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加服务编码不存在时的处理提示“暂不支持此服务” - 增加权益码过期时CRM及手机银行渠道的响应提示 - 调整一致性保障机制为异步消息+最终一致 - 优化核销回调处理流程,快速响应避免超时 - 说明不使用本地事务,采用重试、补偿及对账保证最终一致性 --- docs/需求文档-PRD.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/需求文档-PRD.md b/docs/需求文档-PRD.md index 086c15d..a3aa8bd 100644 --- a/docs/需求文档-PRD.md +++ b/docs/需求文档-PRD.md @@ -95,7 +95,11 @@ - 若订单状态为「服务未预约(100)」,继续执行后续流程(更新订单,不新增) - 若订单状态为其他状态,返回服务已预约 3. 查询数据库验证服务编码(type)是否存在(数据库中维护邮储服务编码与营销平台活动的映射关系) + 如果不存在 返回暂不支持此服务 4. 请求邮储服务开放平台接口验证权益码是否过期 + 如果过期: + 1、CRM渠道返回 "二维码20分钟内有效,现已超时失效,请联系理财经理重新生成二维码! + 2、手机银行渠道返回 “当前页面停置时间过长,请您重新进入该页面” 5. 创建/更新订单记录(订单状态:服务未预约) 6. 请求邮储服务开放平台接口发起预约: - 预约成功或返回161010(交易已预约):继续执行步骤7 @@ -683,20 +687,20 @@ ycjfsc:token:psbc #### 5.2.2 一致性保障机制 -**机制一:本地事务 + 可靠消息** +**机制一:异步消息 + 最终一致** ``` 1. 接收蓝色兄弟核销回调 -2. 本地事务: - - 更新订单状态为「待通知」(250) - - 写入待通知消息表 -3. 响应蓝色兄弟"ok" -4. 异步消息消费: +2. 更新订单状态为「待通知」(250),记录核销时间 +3. 立即响应蓝色兄弟"ok"(快速响应,避免超时) +4. 异步处理: - 调用邮储服务完成接口 - 成功:更新订单状态为「已完成」(300) - - 失败:保留状态,等待重试 + - 失败:保留状态250,等待重试机制处理 ``` +**说明**:不使用本地事务,通过重试+补偿+对账三重机制保证最终一致性。 + **机制二:消息重试策略** | 重试次数 | 间隔时间 | 累计时间 |