【问题标题】:Django on Gunicorn/Nginx - Stripe Webhooks Always Getting 400Gunicorn/Nginx 上的 Django - Stripe Webhooks 总是获得 400
【发布时间】:2020-10-20 00:15:24
【问题描述】:

生产设置:Nginx / Gunicorn / Supervisor 上的 Django v3.0.5(我按照 here 的指示)

(我不认为这是任何问题,但我正在使用 dj-stripe 进行 django/stripe 集成)

在开发过程中(django 的内置 HTTP 服务器).. 一切似乎都正常(即 stripe 可以很好地发送 webhook 事件)......但是,在生产过程中,我收到电子邮件说 Stripe 无法访问我的服务器.

当我跑步时

curl -D - -d "user=user1&pass=abcd" -X POST https://my.server/stripe/webhook/

我收到此回复

HTTP/1.1 400 Bad Request
Server: nginx/1.15.9 (Ubuntu)
Date: Thu, 18 Jun 2020 19:44:07 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
Vary: Cookie

但是,非 webhook(即通过浏览器访问网站)似乎可以正常工作.. 只是 webhook。

知道这是哪里出了问题吗?

【问题讨论】:

  • 听起来您的生产服务器与您的开发服务器有些不同。您在 Stripe 事件日志中看到的关于失败的传递尝试的确切错误消息是什么/
  • @taintedzodiac 是一样的。 4XX 或 3XX。
  • nginx 配置:pastebin.com/hKChEyLu
  • 使用-i 选项运行curl 并显示输出。您最好将 nginx 配置包含在您的问题中,而不是将其发布在 pastebin 上。
  • 我放弃了。 Supervisor/GUnicorn 是调试的一大难题。切换到 uwsgi

标签: django nginx gunicorn supervisord


【解决方案1】:

您的请求没有身份验证所需的 Stripe 密钥。

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 2020-11-28
    • 2018-02-16
    • 2015-06-17
    • 2013-03-25
    • 2013-03-01
    • 2014-02-19
    • 1970-01-01
    相关资源
    最近更新 更多