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

app/uninstalled Webhook已注册但在/webhooks.json中无法查询

排查Shopify Webhook注册后查询不到的问题

先整理下你提供的注册代码和返回结果,方便咱们分析问题:

注册Webhook的PHP代码

$chh = curl_init();
$params = [ 
    'webhook' => [ 
        'topic' => 'app/uninstalled', 
        'address' => 'https://example.herokuapp.com/delete.php', 
        'format' => 'json' 
    ] 
];
$json_string_params = json_encode($params);
$headers = array( 
    'X-Shopify-Access-Token:'.$access_token, 
    'Content-Type:application/json' 
);
curl_setopt($chh, CURLOPT_URL, 'https://example.myshopify.com/admin/webhooks.json');
curl_setopt($chh, CURLOPT_HTTPHEADER, $headers);
curl_setopt($chh, CURLOPT_HEADER, false);
curl_setopt($chh, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($chh, CURLOPT_POSTFIELDS, $json_string_params);
curl_setopt($chh, CURLOPT_RETURNTRANSFER, true);
$resultt = curl_exec($chh);
$final = json_decode($resultt);

注册成功的返回结果

stdClass Object ( 
    [webhook] => stdClass Object ( 
        [id] => 475440480367 
        [address] => https://example.herokuapp.com/delete.php 
        [topic] => app/uninstalled 
        [created_at] => 2019-01-18T05:04:20-05:00 
        [updated_at] => 2019-01-18T05:04:20-05:00 
        [format] => json 
        [fields] => Array ( ) 
        [metafield_namespaces] => Array ( ) 
    ) 
)

明明注册返回了有效的Webhook对象,但查询列表却看不到,这大概率是以下几个原因之一,咱们逐个排查:

  • 访问令牌的权限或关联问题
    注册Webhook需要write_webhooks权限,而查询Webhook列表需要read_webhooks权限。你要确认你的$access_token是否同时具备这两个权限,另外还要核实这个令牌是不是属于你查询的那个店铺(example.myshopify.com)——有时候可能不小心用了其他店铺的令牌,导致注册到别的店铺去了。

  • Shopify API的缓存延迟
    Shopify的后台数据同步偶尔会有延迟,尤其是Webhook这类资源。建议你等个5-10分钟后再重新调用查询接口试试,有时候只是数据还没同步到列表查询的端点。

  • 查询接口的API版本问题
    你注册的时候用的是无版本的API端点(/admin/webhooks.json),Shopify会默认使用一个旧的API版本;而如果你查询的时候用了不同的版本,可能会看不到这个Webhook。最好在请求里明确指定API版本,比如用最新的稳定版:

    https://example.myshopify.com/admin/api/2024-07/webhooks.json
    

    注册的时候也建议加上版本,避免版本不一致的问题。

  • 直接通过ID查询验证
    既然注册返回了Webhook的id(475440480367),你可以直接调用单个Webhook的查询接口来验证它是否存在:

    https://example.myshopify.com/admin/webhooks/475440480367.json
    

    如果这个接口能返回数据,说明Webhook确实存在,只是列表查询可能有问题;如果返回404,那说明注册的时候可能有隐性错误(比如地址不合法,但Shopify当时没检测出来?不过这种情况很少见)。

  • 检查Shopify后台
    直接登录到example.myshopify.com的后台,进入“设置->通知->Webhooks”(或者你的应用对应的“Webhooks”页面),手动查看有没有这个Webhook。后台的显示通常会比API查询更及时,能直接确认Webhook是否真的存在。

另外,也可以在注册代码里加上curl_error($chh)来排查请求层面的隐性问题,虽然返回了成功的JSON,但说不定有你没注意到的警告。

内容的提问来源于stack exchange,提问作者satani ketan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:05:01