2016-06-14 87 views
1

我收到错误“请求已中止:无法创建SSL/TLS安全通道”。在沙箱的情况下,但这与我的现场凭证一起使用。错误Paypal沙箱:请求已中止:无法创建SSL/TLS安全通道

这里是代码片段

  var uri = new Uri(url); 
      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 
      var request = WebRequest.Create(uri); 
      var encoding = new UTF8Encoding(); 
      var requestData = encoding.GetBytes(postData); 

      request.ContentType = "application/x-www-form-urlencoded"; 
      request.Method = "POST"; 
      request.Timeout = (300 * 1000); //TODO: Move timeout to config 
      request.ContentLength = requestData.Length; 

      using (var stream = request.GetRequestStream()) 
      { 
       stream.Write(requestData, 0, requestData.Length); 
      } 

      var response = request.GetResponse(); 

      string result; 

      using (var reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII)) 
      { 
       result = reader.ReadToEnd(); 
      } 

      return result; 

回答

2

的问题是C#默认为SSL3尝试连接到PayPal的服务器,贝宝不接受的时候。 PayPal至少需要(更安全的)TLS 1.2。

您设置此通过下面的代码:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;  
+0

添加的代码行提到,但仍同样的错误。如果我在放置代码时犯了错误,请参阅修改后的代码。 –

+0

哇..它的工作对不起我的错误..我没有建立它反映在我的项目......非常感谢 –

+0

啊,这是个好消息,我从生产代码中解除了这一行,所以我有点不知所措可能。 :) –

相关问题