用途:在 Shopify 店铺事件发生时(下单、商品更新、客户创建、应用卸载等)向应用 HTTP 端点实时推送通知,替代轮询 Admin API。适用于触发履约流程、近实时同步商品与库存、注册后同步客户数据、卸载后清理数据、实现 App Store 合规所需的 GDPR Webhook。
主要能力:通过 Admin API 以 GraphQL 注册 Webhook(建议在 afterAuth 钩子中程序化注册,重装后重新注册);校验 X-Shopify-Hmac-SHA256 头(HMAC-SHA256,使用 timingSafeEqual 防时序攻击);用 X-Shopify-Webhook-Id 做幂等处理;处理三个强制 GDPR 端点(customers/data_request、customers/redact、shop/redact);查询与清理过期订阅;监控投递失败。
使用方式:Webhook 路由必须先用原始 body 解析器(如 express.raw)再做 JSON 解析,否则 HMAC 校验会失败;校验通过后应尽快返回 200(5 秒内),将重处理放入后台队列(BullMQ 等),并以 webhookId 作为 jobId 防重复。Shopify 采用至少一次投递,失败会以指数退避在 48 小时内重试最多 19 次。
限制与注意:不校验签名不得处理请求;未注册 APP_UNINSTALLED 会导致清理不触发;GDPR 端点即使不存数据也必须返回 200;高流量场景可用 EventBridge 或 Pub/Sub 投递。具体价格、平台支持等资料未提供。