From c892f71711b49935a0c2c3bb900ce47f1259b9c0 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Sat, 20 Jun 2026 15:40:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(sms):=20=E7=94=B5=E4=BF=A1=E5=9B=9E?= =?UTF-8?q?=E6=89=A7=20status=3D6(MA:0038=20=E9=99=90=E6=B5=81)=E7=BA=B3?= =?UTF-8?q?=E5=85=A5=E5=A4=B1=E8=B4=A5=E6=98=A0=E5=B0=84,=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E9=9D=99=E9=BB=98=E4=B8=A2=E5=BC=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 电信下行回执查询对"短期频繁发送"类返回 status=6 / stat=MA:0038, 原代码仅处理 status=5,status=6 无分支被直接丢弃 —— 该类短信永远 进不了失败/重试链路。改为 status==5 || status==6 一并走 buildFailureResult, 由 push_provider_error_code_mapping.should_retry 决定是否重试。 这是限流类无限重试治本(批次1-3)在回执侧的触发点,与库内 MA:0038 -> RATE_LIMIT 映射种子(TD-2)缺一不可。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../module/push/client/sender/impl/sms/TelecomSmsSender.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/msgpush-module-push/msgpush-module-push-server/src/main/java/com/njcn/msgpush/module/push/client/sender/impl/sms/TelecomSmsSender.java b/msgpush-module-push/msgpush-module-push-server/src/main/java/com/njcn/msgpush/module/push/client/sender/impl/sms/TelecomSmsSender.java index b296fb7..804d0a5 100644 --- a/msgpush-module-push/msgpush-module-push-server/src/main/java/com/njcn/msgpush/module/push/client/sender/impl/sms/TelecomSmsSender.java +++ b/msgpush-module-push/msgpush-module-push-server/src/main/java/com/njcn/msgpush/module/push/client/sender/impl/sms/TelecomSmsSender.java @@ -200,7 +200,9 @@ public class TelecomSmsSender implements SmsSender { return; } TelecomSmsSelectDetailRes detailRes = selectResponse.getList().get(0); - if (detailRes.getStatus() == 5) { + // status=5 为明确失败;status=6 为“短期频繁发送”等场景(stat 如 MA:0038), + // 同样走错误码映射,由 push_provider_error_code_mapping.should_retry 决定是否重试。 + if (detailRes.getStatus() == 5 || detailRes.getStatus() == 6) { SendResult failedResult = this.sender.buildFailureResult( message, detailRes.getStat(),