Django集成Stripe Webhook遇404路径未找到问题求助
Django Stripe Webhook 404 问题排查方案
核心问题:路径前缀缺失
你的项目级路由为my_app设置了my_app/前缀,但Stripe监听的地址直接使用localhost:8000/stripe_webhook/,漏掉了my_app前缀,导致请求无法匹配到对应路由。
1. 修正转发路径
停止当前Stripe监听进程,重新执行以下命令:
stripe listen --forward-to localhost:8000/my_app/stripe_webhook/
之后再次执行stripe trigger customer.created测试,观察服务器日志是否打印"enter webhook",确认请求进入视图。
2. 验证路由配置完整性
- 检查应用级
urls.py中的..是否包含通配符路由(如path('', views.index)),确保stripe_webhook/路由放在这类通配符路由之前,避免被提前拦截。 - 确认项目级
urls.py里的include('my_app.urls')没有拼写错误,应用名称与实际一致。
3. 测试视图可达性
临时修改stripe_webhook视图,添加简单返回逻辑:
@csrf_exempt def stripe_webhook(request): print("enter webhook") return HttpResponse("Webhook test") # 原有代码保留在下方 stripe.api_key = settings.STRIPE_SECRET_KEY_TEST ...
用curl或浏览器访问http://localhost:8000/my_app/stripe_webhook/,如果能看到"Webhook test",说明路由和视图配置正常;若仍返回404,继续排查路由配置错误。
4. 确认Webhook密钥一致性
每次启动stripe listen都会生成新的Webhook签名密钥,确保.env中的STRIPE_WEBHOOK_SECRET_TEST与监听进程输出的webhook signing secret完全一致(当前404问题不涉及签名验证,但提前确认可避免后续踩坑)。
内容的提问来源于stack exchange,提问作者PhilM
相关产品推荐
相关产品推荐

