【问题标题】:Shopify webhook not working when product updated/deletedShopify webhook 在产品更新/删除时不起作用
【发布时间】:2012-09-10 14:50:45
【问题描述】:

背景:正在使用 shopify 提供的测试商店构建一个 shopify 应用。 #Python #Django-

问题:我已经使用 Python API 为我的测试商店设置了 shopify webhooks,主题为“产品/更新”和“产品/删除”。但是当我手动更新或删除测试商店中的产品时,shopify 不会调用我的端点。

到目前为止我的侦探工作:我检查了以下内容:

  1. 我已确认已使用 API 成功创建了 webhook。我只是列出了所有使用商店 API 的现有 webhook,我的都在那里。

  2. 我在 webhook 中为 shopify 在产品更新或删除时调用的地址/URL 是公共 url,因为它不在我的本地主机上。 (不是 127.0.0.1:8000 等)

  3. 我的 webhook 端点很好。当我在测试用例中手动调用我的端点时,它会做它应该做的事情。

  4. 我联系了 shopify 应用支持人员,并要求我在此处发布此问题。

另一个小问题是,我无法在 shopify API 文档中准确找到 webhook 将发布到我的 URL 的 JSON/XML 以防万一。所以我不知道那个 JSON 会是什么样子......

任何帮助将不胜感激!

【问题讨论】:

  • webhook 将发布已更新的产品。要验证内容,您可以添加一个指向服务的 webhook,例如 postcatcher.in
  • 请发布您正在使用的商店名称和 API 密钥(但不是共享密钥),这些将有助于我们调试问题。谢谢!
  • 使用 postcatcher.in/requestb.in 来查看 webhook 是否真的在触发,或者只是查看您服务器上的 access_log(如果在 Apache 上),看看您是否收到了请求。还可以尝试通过后端使用相同的 URL 手动制作 webhook(看看它是 API webhook 的问题还是一般的 webhook)。

标签: python django shopify webhooks


【解决方案1】:

我显然没有资格发表评论,所以我将把它放在“答案”中 - 非常宽松地使用这个词 - 相反。我在 Python API 中遇到了类似的问题,但很快意识到我做错了。在我的例子中,它切换了履行状态,然后触发一封电子邮件,通知客户媒体的下载位置。

我做错了:我直接修改了订单对象的履行属性。相反,正确的方法是获取/创建一个履行对象,修改它,将 order 属性指向这个对象,而不是 save() 它。这行得通。

我不知道这是否是您的问题,因为没有发布代码,但我希望这会有所帮助。

--马特

【讨论】:

    【解决方案2】:

    感谢大家的回答,但我发现问题是别的。

    我忘记为 Shopify 调用的 POST 请求 URL 进行 CSRF 豁免,也忘记在我告诉 webhook 调用的 URL 末尾添加斜杠“/”。

    如果我按照上面 cmets 的建议使用 postcatcher.in 之类的东西,我想我会发现这些错误。我懒得这么做,因为它看起来太麻烦了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 2021-05-13
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多