WePush 5.1.3 已发布。这个版本继续围绕批量推送这一核心场景演进,重点补齐运营商短信能力:新增 CMPP、SMGP、SGIP 和 SMPP 协议支持,同时完善短信发送链路与验收流程。
对于需要批量发送通知、验证码或运营消息的团队来说,这意味着 WePush 的接入范围从常见推送场景进一步延伸到运营商短信。项目仍然保持“小而美”的定位,功能集中,部署和使用成本相对容易控制。
5.1.3 更新了什么
本次更新可以归纳为两部分:
- 新增运营商短信协议支持:CMPP、SMGP、SGIP、SMPP。
- 完善运营商短信的发送链路与验收。
四种协议覆盖了不同运营商或短信网关环境。实际接入时,团队需要根据短信服务商提供的协议、账号类型、网关地址和端口选择对应实现,不能仅凭协议名称判断兼容性。
“完善发送链路与验收”同样值得关注。短信系统的问题往往不只发生在调用接口这一层,还可能出现在连接建立、身份认证、消息提交、响应码处理、超时重试和状态回执等环节。发送成功也不一定等于最终送达,因此上线前应当准备完整的验收用例。
从发送接口到可观测链路
运营商短信通常是一个异步链路。应用提交消息后,网关可能先返回受理结果,真正的送达状态则通过后续回执通知。因此,接入 WePush 或其他短信系统时,建议至少记录以下信息:
- 业务消息 ID 和批次 ID。
- 使用的协议和短信服务商。
- 提交时间、响应时间和网关响应码。
- 发送目标的脱敏号码。
- 重试次数和最终状态。
- 运营商回执时间及回执状态。
这些字段能帮助团队区分“连接失败”“提交失败”“网关已受理”和“短信最终送达”。如果只保存一个布尔值,就很难定位批量发送中的部分失败问题。
可以把一次验收拆成四组测试:
- 正常发送:验证单条消息和批量消息能否提交。
- 参数异常:验证错误账号、错误签名、空号码和超长内容的处理。
- 网络异常:验证连接超时、网关不可用和重复提交时的行为。
- 回执处理:验证成功、失败、未知状态和延迟回执是否能正确落库。
一个可复制的协议验收清单
下面的 Bash 示例不依赖具体短信服务商 API,适合放在部署前的验收脚本中。它会检查四种协议是否都有明确的配置项和测试状态。将示例变量替换为真实环境中的值即可扩展成 CI 检查。
#!/usr/bin/env bash
set -euo pipefail
protocols=(CMPP SMGP SGIP SMPP)
: "${SMS_PROVIDER:?请设置 SMS_PROVIDER,例如 vendor-a}"
: "${SMS_TEST_NUMBER:?请设置 SMS_TEST_NUMBER,例如 13800000000}"
for protocol in "${protocols[@]}"; do
variable="SMS_${protocol}_GATEWAY"
gateway="${!variable:-}"
if [[ -z "$gateway" ]]; then
printf '[MISSING] %-4s %s 未配置\n' "$protocol" "$variable"
continue
fi
printf '[READY] %-4s provider=%s gateway=%s test_number=%s\n' \
"$protocol" "$SMS_PROVIDER" "$gateway" "$SMS_TEST_NUMBER"
done
printf '\n请继续执行:连接测试、鉴权测试、批量提交测试和回执测试。\n'
运行方式如下:
chmod +x check-sms-protocols.sh
SMS_PROVIDER=vendor-a \
SMS_TEST_NUMBER=13800000000 \
SMS_CMPP_GATEWAY=cmpp.example.internal:7890 \
SMS_SMGP_GATEWAY=smgp.example.internal:8890 \
SMS_SGIP_GATEWAY=sgip.example.internal:8801 \
SMS_SMPP_GATEWAY=smpp.example.internal:2775 \
./check-sms-protocols.sh
这个脚本只负责配置完整性检查,不会真实发送短信。真实验收时应使用服务商提供的测试账号和测试号码,并为每种协议记录网关响应、回执状态以及重复发送结果。不要直接用生产号码进行协议联调。
Next 公共预览值得单独评估
除了 5.1.3,摘要还提到 WePush Next Public Preview。Next 位于 next/ 目录,是一条完整的新架构产品线。
这意味着现有 5.1.3 与 Next 更适合被视为两条需要分别评估的产品线。正在生产环境使用 WePush 的团队,可以先围绕 5.1.3 验证运营商短信能力;如果计划采用 Next,则应单独检查部署方式、配置模型、消息兼容性和迁移成本,不要默认旧版本配置可以直接复用。
采用建议
如果团队准备升级或接入 5.1.3,可以按下面的顺序推进:
- 明确短信服务商实际提供的协议,并确认账号与网关参数。
- 先完成单协议、单号码的连通性和鉴权测试。
- 再测试批量发送、超时、重试和重复提交。
- 接入回执处理,区分受理成功与最终送达。
- 为生产环境配置日志脱敏、限流、告警和失败重试上限。
- 将 Next 公共预览作为独立评估项,避免与现有版本混合升级。
WePush 5.1.3 的价值不在于堆叠大量功能,而在于把批量推送场景向运营商短信补齐。对于已经有短信网关需求、又希望保持部署简单的团队,这个版本可以作为一次小范围验证的起点;对于高并发、强合规或强运营商依赖的系统,则仍需要重点评估回执可靠性、限流策略、审计能力和故障恢复方案。