出站消息状态
YCloud 出站 WhatsApp 消息资源使用以下状态:
典型的成功流转过程为
accepted → sent → delivered → read。请勿假设应用程序会收到每个中间更新,也不要假设更新会完全按该顺序到达。
为什么请求成功不代表最终送达
使用排队端点时,YCloud 会接受请求并异步提交。使用直接端点时,提交到 WhatsApp Business API 是同步进行的。在这两种情况下,最终送达仍然是异步的。 有关实现详情,请参阅发送 WhatsApp 消息。 如果当前状态仍为accepted 或 sent,请勿重复提交相同内容。额外的请求可能会导致消息重复。
送达回执与已读回执
已送达表示消息已到达客户设备,并不意味着客户打开了对话。 已读回执并非在所有情况下都可用。例如,客户的已读回执设置会影响是否报告已读更新。未收到已读更新并不能证明客户忽略了该消息。 有关上游状态定义,请参阅 Meta 的消息状态 Webhook 参考。跨系统跟踪同一条消息
进行排查时,请保留以下相关信息:
共享排查记录时,请勿包含 API 密钥或不必要的客户信息。
API 集成可以接收
whatsapp.message.updated Webhook 并检索消息资源。有关同步和重试处理,请参阅WhatsApp 消息发送最佳实践。
排查失败的消息
请从返回的错误入手,而不仅凭状态名称。- 模板问题: 确认消息模板可用,且其语言和参数正确。
- 服务窗口问题: 检查消息是否需要处于开启状态的客户服务窗口。
- 账户或号码问题: 检查受影响的资产及其当前限制。
- 内容或媒体问题: 检查所选消息类型的要求。
- 送达控制: 遵循具体的错误指导。立即重复重试可能无法解决平台限制。
判断重试是否安全
良好的消息记录会将单个预期业务操作与其请求和结果绑定。您的外部引用有助于关联,但除非端点明确保证了幂等行为,否则请勿假定其提供 API 幂等性。
状态更新延迟示例
您的系统先收到delivered,随后收到了同一消息延迟到达的 sent 事件。切勿将客户的状态改回“未送达”。请存储事件时间戳,并应用能够容忍重复和乱序更新的状态模型。
同样,缺少 read 事件并不代表消息发送失败。请区分以下指标:
- 送达触达: 具有送达证据的消息。
- 已读触达: 报告了已读回执的消息。
- 客户响应: 实际的入站回复或互动。
- 业务转化: 在所属系统中确认的预订、购买或成功验证。
后续步骤
- 查阅消息规则。
- 检查服务消息。
- 实现送达追踪。
- 联系 YCloud 支持团队,并提供相关消息标识符和错误详情。
常见问题解答
显示已送达,但没有已读时间。客户是否拉黑了我们?
显示已送达,但没有已读时间。客户是否拉黑了我们?
无法得出该结论。已读回执可能不可用,包括接收方禁用该功能的情况。请将送达和已读作为独立的指标。无论是缺少已读回执还是常规的无法送达错误,都无法确定客户的具体原因或证明被拉黑。
我的 API 调用超时了。再次发送相同的消息安全吗?
我的 API 调用超时了。再次发送相同的消息安全吗?
不能立即重发。平台可能已经接受了该请求。在发起另一次发送前,请检查消息标识符、可用日志以及后续的 Webhook 事件。将重试关联到同一个业务操作并设计防重机制;外部引用并不自动等同于端点幂等性保证。
日志中显示不支持的消息占位符。WhatsApp 是否拒绝了该消息?
日志中显示不支持的消息占位符。WhatsApp 是否拒绝了该消息?
显示限制与送达失败是两回事。请检查实际的方向、状态、消息类型以及任何错误。对于入站内容,请参阅收件箱不支持的消息指引;切勿猜测内容或将占位符视为出站发送失败。

