Проблема с платежным хостингом Stripe

#asp.net-mvc-4 #shared-hosting #stripe.net

#asp.net-mvc-4 #общий хостинг #stripe.net

Вопрос:

Я получаю следующую ошибку при использовании stripe payment (тестовый режим) в приложении ASP.MVC 4.0, опубликованном на общем хостинге 1and1:

Запрос разрешения системы type ‘.Безопасность.Разрешения.Сбой безопасности, mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089’. Кто-нибудь сталкивался с подобными ошибками? Я читал, что общий хостинг может иметь какое-то отношение, потому что он использует конфигурацию «среднего доверия», но трудно согласиться с тем, что stripe нельзя использовать в учетных записях общего хостинга (я полагаю, что большинство веб-сайтов работает на общем хостинге)

Большое спасибо!

Ответ №1:

У меня были те же проблемы. Похоже, возникла проблема с выполняемыми проверками, чтобы убедиться, что ваш сервер не был перенаправлен после проблем с heartbleed. Я работаю с автором stripe.net библиотека nuget для ее исправления. Если вы хотите исправить это самостоятельно, перейдите к файлу Infrastructure Requestor.cs и отредактируйте следующий раздел (я прокомментировал проблемные области). После выполнения этого вы можете запустить stripe.net средний уровень доверия.

 private static string ExecuteWebRequest(WebRequest webRequest)
    {
        //var verificationCallback = new RemoteCertificateValidationCallback(StripeCertificateVerificationCallback);

        try
        {
            //ServicePointManager.ServerCertificateValidationCallback  = verificationCallback;

            using (var response = webRequest.GetResponse())
            {
                return ReadStream(response.GetResponseStream());
            }
        }
        catch (WebException webException)
        {
            if (webException.Response != null)
            {
                var statusCode = ((HttpWebResponse)webException.Response).StatusCode;

                var stripeError = new StripeError();

                if(webRequest.RequestUri.ToString().Contains("oauth"))
                    stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()));
                else
                    stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()), "error");

                throw new StripeException(statusCode, stripeError, stripeError.Message);
            }

            throw;
        }
        finally
        {
            //ServicePointManager.ServerCertificateValidationCallback -= verificationCallback;
        }
    }
  

Комментарии:

1. Итак, публикация на сайте с настройкой ssl позволит мне раскомментировать эти строки, не так ли?

2. Нет, я пробовал это, и это также не удается. Если вы используете версию .net 4.0 или ниже, этот код будет каждый раз завершаться ошибкой. Если вы используете 4.5 , вы действительно можете оставить все комментарии, как указано выше, и изменить код (на той же кодовой странице .cs). обновление проблемы с github