You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用shopify-api-node的私有应用生产环境Shopify Webhook不触发求助

Shopify私有应用Webhook生产环境不触发的排查方案

别着急,咱们一步步来揪出问题——毕竟本地能正常跑,说明核心逻辑没问题,大概率是生产环境的配置或网络层面的小坑。

  • 先确认Shopify后台的Webhook注册状态
    登录你的Shopify店铺后台,找到「设置」→「通知」→「Webhook」(或者直接进入私有应用详情页查看Webhook列表),仔细核对:生产环境的products/update Webhook是否已成功注册,状态是否显示Active?如果列表里只有本地ngrok的那个Webhook,说明生产环境的注册请求要么没执行成功,要么被本地的注册操作覆盖了。这时候要确保生产环境的代码里,注册Webhook的逻辑确实被调用,且传入的地址是https://custom.example.in/webhooks/product-update。

  • 检查生产域名的HTTPS证书合法性
    Shopify对Webhook接收地址有硬要求:必须使用受信任CA颁发的有效HTTPS证书,自签证书、过期证书或证书链不完整都会被Shopify直接拒绝。你可以直接在浏览器打开https://custom.example.in,查看地址栏的锁形图标,确认证书没有警告。如果有证书问题,赶紧更新或修复你的SSL证书。

  • 排查服务器防火墙/安全组的拦截
    Shopify发送Webhook的IP是固定的几个段,如果你的生产服务器防火墙或云服务商安全组没把这些IP加入白名单,请求会直接被拦在门外。你需要把Shopify官方公布的Webhook IP段添加到服务器的允许访问列表,同时确保/webhooks/product-update路径没有被内部路由规则拦截。

  • 验证Webhook签名的密钥配置
    虽然本地能正常触发,但生产环境的私有应用密钥是不是和本地一致?Shopify发送Webhook时会带上X-Shopify-Hmac-SHA256签名头,代码如果用了错误的密钥验证,会把合法请求当成无效请求丢弃。去检查生产环境的配置文件,确保SHOPIFY_API_SECRET(或代码中对应的变量)和Shopify私有应用后台的「API密钥和密码」里的密钥完全一致。

  • 模拟请求测试生产路由是否有效
    有时候可能是生产环境的路由配置出错,导致Shopify的请求返回404。你可以用curl模拟一个请求试试:

    curl -X POST https://custom.example.in/webhooks/product-update \
      -H "Content-Type: application/json" \
      -d '{"product": {"id": 12345}}'
    

    看看服务器有没有收到请求,返回的状态码是不是在200-204之间(Shopify要求接收端返回这个范围的状态码,否则会认为请求失败并重试)。如果返回错误,赶紧调整你的路由配置。

  • 排查Webhook注册逻辑的覆盖问题
    要是你本地和生产用的是同一个私有应用,有可能本地运行注册Webhook的代码时,把生产环境的地址覆盖成了ngrok的。检查你的注册逻辑:是否存在“如果该事件已有Webhook就更新地址”的逻辑?如果是,下次在生产环境执行注册时,要确保代码里的地址是生产域名,执行后再去Shopify后台确认地址已更新。

内容的提问来源于stack exchange,提问作者Raj Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:04:12