Тестирование веб-перехватчика Stripe через HTTPS продолжается с ошибкой: истекло время ожидания

Краткая версия

Я пытаюсь создать очень простой веб-хук, который перенаправляет на метод контроллера ASP.NET MVC на локальном хосте. Однако мой веб-сайт использует полноценный HTTPS, и похоже, что мой клиент туннелирования (ngrok) не работает с HTTPS. Создание нового веб-сайта ASP.NET MVC и реализация моего веб-перехватчика работают, но я продолжаю терпеть неудачу с моим веб-сайтом HTTPS.

Длинная версия

Вот что я сделал до сих пор:

1/ Создайте конечную точку на моем веб-сайте ASP.NET MVC5 и запустите ее на localhost. Он работает на порту 44368, так как мой полный веб-сайт использует HTTPS.

public class StripeWebhookController : BaseController
{
    [HttpPost]
    [AllowAnonymous]
    public ActionResult Index()
    {
         // ...
    }
}

2/ Установите ngrok и настройте его, как описано в это ТАК ответ

3/ Перейдите на мою тестовую панель Stripe и скопируйте URL-адрес, который будет вызываться следующим образом: введите описание изображения здесь
(я пытался проверить другой RadioButton, "последний", но не работать лучше.Я тоже пробовал заменить https на http, тоже не лучше)

Когда я отправляю тестовый веб-перехватчик с помощью панели инструментов Stripe, я вижу запрос в http://localhost:4040/inspect/http: введите здесь описание изображения

Но точка останова, которую я разместил в первой строке моего метода StripeWebhook/Index, никогда не срабатывает. И в Stripe появляется всплывающее окно с отправленным запросом с этим сообщением об ошибке: Test webhook error: Timed out.

Однако, если я создам совершенно новый веб-сайт ASP.NET MVC с шаблоном по умолчанию и выполню точно такие же действия, все будет работать. Это связано с тем, что мой проект использует HTTPS, а ngrok не может перенаправить метод HTTPS (насколько я понял).

Как я могу использовать ngrok (или любой другой бесплатный инструмент туннелирования) для перенаправления на метод контроллера через HTTPS?


person AlexB    schedule 23.05.2018    source источник


Ответы (1)


Из доступной информации трудно сказать, связана ли проблема с ngrok, с вашим кодом или чем-то средним.

С ngrok вам нужно переписать хост, см. https://stackoverflow.com/questions/49648031/ngrok-with-https-on-localhost-returns-502#comment88759918_49648031

У нас также есть бесплатный инструмент для туннелирования под названием Conveyor, который устанавливается как расширение VS. Вы можете просто установить его из Инструменты -> Расширения и зарегистрировать учетную запись через пользовательский интерфейс. Это должно «просто работать», когда у вас есть общедоступный URL-адрес (который будет https). Возможно, возникнет такая же проблема, но я буду рад помочь вам разобраться. Вам также может быть полезно это видео.

EDIT By OP: Просто чтобы было понятнее, мне пришлось установить Conveyor, затем нажать «Доступ через Интернет» и зарегистрироваться на их веб-сайте. Затем вам дается адрес вроде https://projectName.conveyor.cloud. Мне просто нужно было создать новую конечную точку в Stripe с этим доменным именем и добавить мой маршрут /StripeWebhook/Index, и он работает как шарм.

person Jim W says reinstate Monica    schedule 15.06.2018
comment
Ага, замечательно! Я только что отредактировал ваш ответ, чтобы сделать его более понятным для будущих пользователей. - person AlexB; 16.06.2018