2

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

问题:我使用 python API 为我的测试商店设置了 shopify webhooks,主题为“products/update”和“products/delete”。但是当我手动更新或删除测试商店中的产品时,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 会是什么样子......

任何帮助,将不胜感激!

4

2 回答 2

1

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

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

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

——马特

于 2012-09-12T13:51:22.917 回答
1

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

I forgot to make a CSRF exemption for the POST request URL that Shopify calls and also forgot to add a trailing slash '/' at the end of the URL I told the webhook to call.

I guess I would have caught these errors if I used something like postcatcher.in as suggested in the comments above. I din't bother doing that as it looked like too much of a hassle.

于 2012-09-14T11:27:14.047 回答