每天几千条 webhook,总有个位数收不到。加了重试也没用,因为根本没请求进来。老板问要不要换 Event Bridge。
Webhook 与事件
订阅、验签、重试、事件顺序、幂等处理 共 16 个问题,按时间倒序。
数据库维护窗口服务停了四小时,恢复后发现这段时间的订单事件全丢了。
后台应用里能看到 `orders/create` 的订阅记录,用测试单跑了一遍,服务端日志里一条请求都没有。
按文档用 `X-Shopify-Hmac-Sha256` 和 app secret 做 HMAC-SHA256 校验,算出来的值和请求头永远不等。
用 API 批量更新 5000 个商品价格,`products/update` 事件像洪水一样涌进来,消费者直接 OOM。
订单创建后,服务端连续收到三次相同的 `orders/create`,导致发了三封确认邮件。
想验证端点逻辑,但每次都要真实下单太麻烦,尤其是退款、取消这类不好造的场景。
在本地调试,webhook 地址填 `http://localhost:3000/webhook` 保存不了,或者保存了也收不到。
端点挂了两个小时,恢复后发现部分事件永久丢失,不确定 Shopify 的重试策略到底是怎样的。
为了不让 Shopify 重试,端点一律先返回 200 再处理,结果处理失败的事件全部静默丢失。
应用要上架 App Store,审核提到必须实现客户数据相关的 webhook,不清楚具体要做什么。
`orders/create` 的 payload 有几十 KB,包含大量用不到的字段,解析和存储都很浪费。
卸载再安装应用后,之前的订阅全部消失,订单同步停了半天才发现。
收到订单 webhook 后要同步调 ERP 接口,整个流程 20 多秒,经常被判定失败然后重试。
代码按 2026-01 的字段写的,收到的 webhook payload 里还是旧字段名,某些字段是 null。
日志里 `orders/paid` 的时间戳早于 `orders/create`,导致订单状态机判断出错。
关于「Webhook 与事件」,配置能解决的我们自己解决,要动代码的我们接
先免费初判:把店铺地址、报错截图或需求说明发过来,我们回一份判断——是需要开发,还是配置就能改。判断你可以自己执行,也可以交给我们。