在Asp.Net MVC中使用ngrok从Stripe发送webhook的索引方法没有遇到断点

时间:2017-10-25 22:17:43

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

我在虚拟机中使用ASP.Net MVC,使用Stripe进行信用卡处理,并安装了ngrok.com来创建网址,以便我可以从Stripe发送webhook到我的本地主机。

我已经安装了ngrok.exe并且我正在运行它并且已经提供了一个使用的网址

enter image description here

我添加了一个名为StripeWebHook的新控制器,并添加了一个新的Index方法来接收来自Stripe的webhook。

namespace YogaBandy2017.Controllers
{
[Route("api/[controller]")]
public class StripeWebHookController : Controller
{
    [HttpPost]
    [AllowAnonymous]
    public void Index()
    {
        StripeConfiguration.SetApiKey("sk_test_WYKc0e2jXBCU...");

        var json = new StreamReader(HttpContext.Request.InputStream).ReadToEnd();
        //var stripeEvent = StripeEventUtility.ParseEvent(json);

        string secret = "whsec_blSjcGhK1UHRbyGwXa...";

        var stripeEvent = StripeEventUtility.ConstructEvent(json,
            Request.Headers["Stripe-Signature"], secret);

        // Do something with stripeEvent
    }
  }
}

然后在我的Stripe帐户webhook设置页面中,我为连接帐户添加了新的webhook网址

enter image description here

然后我尝试将测试webhook发送到Stripe的url,我看到帖子进入ngrok命令行(如上图所示),我也看到它出现在localhost:4040,这是一个测试页面ngrok在这里显示,但我无法进入方法'索引'并点击任何断点,Stripe页面显示如下所示的错误

enter image description here

以下是发送测试webhook后Stripe页面显示的内容。 它没有显示任何响应并超时。

enter image description here

更新 - 我收到了ngrok的电子邮件 "麻烦就是HTTPS。 ngrok终止HTTPS流量,然后将未加密的http流量转发到您的本地应用程序。你想做两件事之一:

1)使您的应用程序也公开HTTP端口并将流量转发给该端口 2)使用ngrok的TLS隧道(TLS流量交给你终止)。使用此选项,您可以完成执行证书管理,证书不匹配等所有复杂性,只需fyi。如果可能,我建议#1;#34;

问题 - 有人知道如何使用https打开ASP.Net MVC应用程序中的http端口吗?

0 个答案:

没有答案