通过HTTPS测试条带webhook保持失败:超时

时间:2018-05-23 19:11:44

标签: asp.net-mvc stripe-payments webhooks ngrok stripe.net

简短版

我试图创建一个非常基本的webhook,它重定向到localhost上的ASP.NET MVC Controller方法。但是,我的网站使用完整的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: enter image description here
(我试图检查另一个RadioButton,"最新",但没有更好的工作。我也尝试用https取代http,而不是更好。

当我使用Stripe信息中心发送测试webhook时,我可以在http://localhost:4040/inspect/http中看到请求: enter image description here

但我放在StripeWebhook/Index方法第一行的断点从未被击中。并且Stripe中的弹出窗口显示已发送的请求,并显示以下错误消息:Test webhook error: Timed out

但是,如果我使用默认模板创建一个全新的ASP.NET MVC网站,并按照完全相同的步骤,它就可以工作。这是因为我的项目使用HTTPS,并且ngrok无法通过HTTPS方法重定向(据我所知)。

如何使用ngrok(或任何其他免费隧道工具)通过HTTPS重定向到控制器方法?

1 个答案:

答案 0 :(得分:1)

很难从可用信息中说出问题是与ngrok相关还是与您的代码相关或介于两者之间。

使用ngrok,您必须重写主机,请参阅ngrok with https on localhost returns 502

我们还有一个名为Conveyor的免费隧道工具,可以作为VS扩展安装。你可以从Tools - >安装它。通过UI扩展和注册帐户。它应该只是工作'一旦你有公共URL(将是https)。可能会出现同样的问题,但我很乐意帮助您解决问题。您可能会发现this video也很有帮助。

OPIT编辑:为了更清楚,我必须安装Conveyor,然后clic on"通过Internet访问"并在他们的网站上注册。然后,您获得了https://projectName.conveyor.cloud之类的地址。我只需要使用此域名在Stripe上创建一个新端点并添加我的/StripeWebhook/Index路由,它就像一个魅力