我有一个WooCommerce webhook,它为我网站上的每个订单发送一个POST请求到特定的URL(http://po.tic.ch/polls/hello)。这个WooCommerce在https://vi.tic.ch上运行。
对于每个订单,我想检索POST的信息,如用户ID = 12,产品ID = 234,价格= 50CHF等,以将其保存在我的服务器po.tic.ch中。
服务器po.tic.ch使用Apache2运行Django。他打开端口80并收到所有的POSTS,但我不知道如何获得他的内容。
我在views.py文件中尝试了这个:
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json
@csrf_exempt
def hello(request):
# r = json.loads(request.POST)
r = json.loads(request.POST.body)
print(r)
return HttpResponse(r)
def get(self, request, *args, **kwargs):
return HttpResponse('This is GET request')
def post(self, request, *args, **kwargs):
return HttpResponse('This is POST request')
谢谢!
这就是我正在寻找的......无论如何,谢谢
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json
@csrf_exempt
def hello(request):
r = json.loads(request.body)
mail = (r['billing']['email'])
print (mail)
return HttpResponse(r)
如果您的函数收到所有POST
请求,您只需通过data = request.get('data', None)
访问正文。如果是空请求,这将返回请求数据或None
。