【发布时间】:2021-09-27 20:22:17
【问题描述】:
大家好,在我的 Django 应用程序中使用 Stripe webhook 时,我不断收到 404 错误。非常感谢您的帮助
我的 urls.py
urlpatterns = [path('my_webhook/', views.my_webhook, name='my_webhook')]
views.py
@csrf_exempt
def my_webhook(request):
payload = request.body
event = None
try:
event = stripe.Event.construct_from(
json.loads(payload), stripe.api_key
)
except:
return HttpResponse(status=400)
if event.type == 'payment_intent.succeeded':
payment_intent = event.data.object
elif event.type == 'payment_method.attached':
payment_method = event.data.object
else:
print('Unhandled event type {}'.format(event.type))
return HttpResponse(status=200)
错误:
[20/Jul/2021 14:28:36] "POST /my_webhook HTTP/1.1" 404 3816
Not Found: /my_webhook
本地主机详细信息:
条纹监听--forward-to 本地主机:8000/stripe/my_webhook/
【问题讨论】:
-
也许您应该使用
print()显示错误以检查是否是问题所在 -except Exception as ex: print(ex)。如果这造成问题,那么您应该使用print(payload, stripe.api_key)检查您是否使用了正确的值。但是你使用status=400并且错误显示404所以问题可能在不同的地方。您是否尝试在my_webhook中不使用代码运行它 - 仅返回响应? -
我正在使用 localhost 8000....
-
您可以添加所有有问题的详细信息,而不是在评论中。它将更具可读性,更多人会看到它。
-
您可能想检查APPEND_SLASH 的设置,好像
/my_webhook得到404 但您注册的路径是/my_webhook/
标签: python django stripe-payments