Shiprocket测试webhook_url正常但收不到真实订单事件如何排查
Shiprocket Webhook测试正常但收不到真实订单事件排查方案
按优先级从高到低排查,绝大多数情况都是以下问题导致的:
- 先查事件订阅勾选情况
后台的测试按钮是强行发送模拟事件,不会校验你实际订阅的事件范围。直接打开Webhook配置页,确认订单创建、订单状态流转等你需要的业务事件都已经勾选保存,很多人都是漏勾了对应事件,白折腾很久。 - 核对接口响应是否符合要求
测试推送不会校验接口返回结果,哪怕你返回500错误页,测试功能也会提示发送成功,但真实业务事件要求接收方必须在3秒内返回200 OK状态码。只要第一次真实推送超时、或者返回4xx/5xx错误,Shiprocket会直接将该webhook地址标记为失效,后续不会再推送任何真实事件。可以先去平台侧查看webhook投递日志,确认是否存在失败记录,修复接口响应逻辑后重新启用webhook即可。 - 确认订单是否达到事件触发状态
测试事件是平台构造的模拟推送,和实际订单流程无关,但真实场景下,订单需要走完所有前置校验:支付到账、库存锁定、未触发风控拦截,进入正式已确认状态,才会触发订单生成事件。草稿单、待审核单、被风控拦下的异常单不会触发推送,先去订单页核对你认为“已生成”的订单,是否还处于待处理的异常状态。 - 排查服务器是否拦截了正式推送
测试推送的内容都是无业务含义的测试字段,不会触发WAF、防火墙的拦截规则,但真实推送会携带用户联系方式、收货地址、订单金额等真实业务数据,很容易被安全规则判定为恶意POST请求拦截。去服务器的拦截日志、CDN日志中检索Shiprocket的官方出口IP请求记录,将对应IP段加白即可。 - 检查是否存在环境匹配错误
如果你在沙箱环境配置了webhook,沙箱内的测试推送可以正常送达,但生产环境的真实订单只会推送到生产环境配置的webhook地址,不会跨环境投递,确认出问题的订单所属环境,和webhook配置的环境完全一致。
内容的提问来源于stack exchange,提问作者KUSHAL DHONE
相关产品推荐
相关产品推荐

