背景:正在使用shopify提供的测试商店构建shopify应用。 #Python #Django -
问题:我已经使用python API为我的测试商店设置shopify webhooks,主题为“products / update”和“products / delete”。但是,当我手动更新或删除测试商店中的产品时,shopify不会调用我的端点。
到目前为止我的侦探工作:我检查过以下内容:
我已确认使用API成功创建了webhook。我只是使用商店的API列出了所有现有的webhooks,我的那里就是。
我在webhook中指定的地址/ URL,以便在产品更新或删除时调用shopify,这是一个公共网址,因为它不在我的本地主机上。 (不是127.0.0.1:8000等)
我的webhook端点很好。当我在测试用例中手动调用我的端点时,它会做它应该做的事情。
我联系了shopify应用程序支持人员,我被要求在此处发布此问题。
另一个小问题是我无法在shopify API文档中找到webhook在应该发生的情况下将POST到我的URL的JSON / XML。所以我不知道JSON会是什么样子......
任何帮助将不胜感激!
答案 0 :(得分:1)
我没有明显的评论,所以我会把它放在一个“答案” - 非常宽松地使用这个词 - 而不是。我遇到了与Python API类似的东西,但很快意识到我做错了。就我而言,它正在切换履行状态,然后发送电子邮件通知客户媒体的下载位置。
我做错了是这样的:我正在直接修改订单对象的履行属性。相反,正确的方法是获取/创建履行对象,修改它,将order属性指向此对象,而不是save()它。这很有用。
我不知道这是不是你的问题,因为没有发布代码,但我希望这有帮助。
- 马特
答案 1 :(得分:1)
感谢你们的回答,但我发现这个问题还不错。
我忘了为Shopify调用的POST请求URL免除CSRF,也忘了在我告诉webhook调用的URL末尾添加一个尾部斜杠'/'。
如果我按照上面的评论中的建议使用了类似postcatcher.in的内容,我想我会抓住这些错误。我觉得这样做太麻烦了。