【发布时间】:2018-11-02 21:14:03
【问题描述】:
短版
我正在尝试创建一个非常基本的 webhook,它重定向到本地主机上的 ASP.NET MVC 控制器方法。但是,我的网站使用完整的 HTTPS,而且似乎我的隧道客户端 (ngrok) 使用 HTTPS 失败。 创建一个新的 ASP.NET MVC 网站并实现我的 webhook 工作正常,但我的 HTTPS 网站一直失败。
加长版
这是我到目前为止所做的:
1/ 在我的 ASP.NET MVC5 网站上创建一个端点并在 localhost 上运行它。它在端口 44368 上运行,因为我的完整网站使用 HTTPS。
public class StripeWebhookController : BaseController
{
[HttpPost]
[AllowAnonymous]
public ActionResult Index()
{
// ...
}
}
2/ 安装ngrok 并按照this SO answer 中的说明进行配置
3/ 转到我的 Stripe 测试仪表板并复制要这样调用的 URL:
(我尝试检查另一个 RadioButton,“最新”,但效果不佳。我还尝试将 https 替换为 http,也不是更好)
当我使用 Stripe 仪表板发送测试 webhook 时,我可以在 http://localhost:4040/inspect/http 中看到请求:
但是我在StripeWebhook/Index 方法的第一行放置的断点永远不会被命中。 Stripe 中会出现一个弹出窗口,发送的请求带有以下错误消息:Test webhook error: Timed out。
但是,如果我使用默认模板创建一个全新的 ASP.NET MVC 网站,并按照完全相同的步骤操作,它就可以工作。这是因为我的项目使用 HTTPS,而 ngrok 无法通过 HTTPS 方法重定向(据我了解。)
如何使用 ngrok(或任何其他免费隧道工具)通过 HTTPS 重定向到控制器方法?
【问题讨论】:
标签: asp.net-mvc stripe-payments webhooks ngrok stripe.net