当shopify向我的应用发送webhook时,我想通过API访问店主商店的产品资源,并比较商店中产品的ID和客户订购的产品。
应用/ views.py
@csrf_exempt
def webhook (request, *args, **kwargs):
products = []
import shopify
with request.user.session: # This doesn't work because no login I think
products = shopify.Product.find()
print "THE PRODUCTS ARE:", products
if request.method == "POST":
line_items = json.loads(request.body)["line_items"]
return HttpResponse(status=200)
我无法执行此操作,因为用户未登录,因此 request.user.session 不起作用。
我不能要求webhook为我登录店主的商店
那么,如何在此函数中访问 shopify.Product.find()等产品?
答案 0 :(得分:0)
我认为你在这里混合概念:webhooks,产品和客户。您首先需要遍历特定商店的所有产品。一旦您将所有产品放在正确的地方并使用正确的ID(考虑到处理变体而不是产品),那么您需要拥有该特定商店的所有客户或订单。每个订单都包含具有正确variant.id的订单项。然后循环浏览所有变体,以查看特定订单/客户订购的变体。
答案 1 :(得分:0)
webhook请求需要通过其HMAC标头进行验证,以确保它是真实的。完成此操作后,您可以放心地假设它来自的域是合法的,因此您可以在数据库中查找用户。您可以使用django-shopify-webhook来处理webhook请求,而不是自己实现。
You can check out my answer to this question to see an example of how to do this.