后台通知里建的 Webhook 和 API 订阅有什么区别
现象#
在「设置 → 通知 → Webhook」里建了一条 orders/create,地址能收到推送;但 App 用 webhookSubscriptions 查询时返回空数组,Dev Dashboard 的 Logs 里也找不到这条投递。
原因#
- 后台建的订阅归属店铺而不是某个 App,App 的 Admin API 令牌只能查到自己的订阅
- 后台那条地址写死在店铺配置里,换域名或换服务后没人清理,旧地址继续收推送
- 后台页面只有 JSON/XML 和 API 版本可选,不支持 filter、includeFields 与 Pub/Sub
- 后台地址栏会拒绝 localhost、internal 结尾域名、店铺自有域名与 Shopify 域名
处理步骤#
- 打开后台
设置 → 通知 → Webhook,逐条记录事件、格式、地址与 API 版本 - 在 App 里查
webhookSubscriptions(first: 50),比对两边是否存在同 topic 记录 - 需要过滤、裁剪字段或改投递方式时,用
webhookSubscriptionCreate重建一条 - 新订阅先用
shopify app webhook trigger打一条,确认 200 后再删后台那条 - 把每条订阅的用途与负责人写进仓库 README,换域名时按清单核对
验收标准#
后台列表与 webhookSubscriptions 结果不再出现同 topic 的两条记录,Logs 里只剩新地址的投递且响应 200。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。