【发布时间】:2021-07-01 14:43:10
【问题描述】:
我在尝试接收 webhook 时经常收到连接被拒绝错误。
(venv) alexa@main:/etc/nginx/sites-available$ stripe listen --forward-to localhost:5000/webhook/
go package net: built with netgo build tag; using Go's DNS resolver
> Ready! Your webhook signing secret is whsec_************************* (^C to quit)
2021-04-05 18:13:03 --> customer.subscription.updated [evt_1Icwv5HrsuAsSZROjKy4Z5CK]
2021-04-05 18:13:03 [ERROR] Failed to POST: Post "http://localhost:5000/webhook/": dial tcp 127.0.0.1:5000: connect: connection refused)
端口已通过我的防火墙启用:
To Action From
-- ------ ----
5000 ALLOW Anywhere
5000/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
5555 ALLOW Anywhere
5000 (v6) ALLOW Anywhere (v6)
5000/tcp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
5555 (v6) ALLOW Anywhere (v6)
我的 web 应用在 Ubuntu 20.10 上运行
按照 Justin Michael 在 cmets 中的建议运行 curl -v -X POST http://localhost:5000/webhook/ 后,我得到以下结果:
* Trying 127.0.0.1:5000...
* TCP_NODELAY set
* connect to 127.0.0.1 port 5000 failed: Connection refused
* Failed to connect to localhost port 5000: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 5000: Connection refused
【问题讨论】:
-
该错误表明 Stripe CLI 尝试将 POST 请求转发到
http://localhost:5000/webhook/被拒绝。不涉及您的防火墙;这是从 Stripe CLI 向localhost:5000上运行的任何内容发出的本地请求。您可以运行以下命令并将输出添加到您的问题中吗?curl -v -X POST http://localhost:5000/webhook/ -
谢谢。我在上面的问题中添加了输出。我尝试用 Linux 服务器的 IP 地址替换 'localhost' - 结果相同。在我的本地计算机上测试 web-app 和 Stripe webhook 时,使用 'localhost' 的相同命令似乎工作正常。
-
输出表明连接被拒绝(与 Stripe CLI 尝试时相同)。你能解释一下你的测试设置吗?您的 webhook 代码在哪里运行?您提到涉及服务器?通常 Stripe CLI 只用于本地测试;服务器混在一起是不寻常的。
-
当然。我在我的个人电脑上开发了一个网络应用程序。我测试了 Stripe 的功能,包括。 Webhooks 和一切工作正常。现在我在 Linode 虚拟服务器上部署网络应用程序并再次执行相同的测试。用服务器的 IP 地址替换 'localhost' 后,错误实际上不再是“连接被拒绝”,而是 webhook 错误 400,我试图弄清楚如何调试。在本地机器上进行测试时,我没有收到任何这些错误。
标签: django linux ubuntu stripe-payments web-development-server