【问题标题】:Django throwing error 404 while connecting with stripe webhookDjango 在与条带 webhook 连接时抛出错误 404
【发布时间】: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


【解决方案1】:

感谢 cmets 伙计们。

我找到了解决方案。在拨打stripe listen 时,我还需要提及我的应用名称。

以前在我使用的条带 CLI 中

stripe listen --forward-to localhost:8000/my_webhook/

然后我在其中添加了我的应用名称并开始工作

stripe listen --forward-to localhost:8000/pred/my_webhook/

“pred”是我的应用程序的名称

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2020-07-27
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多