随着PayPal TLS 1.2升级迫在眉睫,我急于升级我的客户支付系统。问题是,它们在.NET 3.5上。我已经和PayPal支持了,他们说他们的SDK只支持.NET 4.5。要将整个站点升级到4.5,需要花费很长时间才能完成。因此,除非他们错了,有人可以指出我如何将payflow pro SDK实现到.NET 3.5系统的正确方向,我已经提出了2个选项(除了升级):
使用WebClient连接到付费流网关。我喜欢这个解决方案,但我没有得到回应。我有两段代码
using (System.Net.WebClient wc = new System.Net.WebClient())
{
wc.Headers.Add("Content-type", "text/namevalue");
wc.Headers.Add("Content-Length", requestData.ToString().Length.ToString());
wc.Headers.Add("X-VPS-Timeout", "30");
wc.Headers.Add("X-VPS-Request-ID", System.Guid.NewGuid().ToString());
wc.Headers.Add("X-VPS-VIT-Client-Type", "PHP/cURL");
string HtmlResult = wc.UploadString("https://" + this.HostAddress, requestData.ToString());
}
和
System.Net.HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("https://" + this.HostAddress);
httpWebRequest.ContentType = "text/namevalue";
httpWebRequest.ContentLength = rawRequestData.Length;
httpWebRequest.Headers.Add("X-VPS-Timeout", "30");
httpWebRequest.Headers.Add("X-VPS-Request-ID", System.Guid.NewGuid().ToString());
httpWebRequest.Headers.Add("X-VPS-VIT-Client-Type", "PHP/cURL");
httpWebRequest.Method = "POST";
using (var stream = httpWebRequest.GetRequestStream())
{
stream.Write(rawRequestData, 0, rawRequestData.Length);
}
var response = (System.Net.HttpWebResponse)httpWebRequest.GetResponse();
var stringResponse = new System.IO.StreamReader(response.GetResponseStream()).ReadToEnd();
两者都返回空响应异常。
答案 0 :(得分:0)
我不必诉诸于此,因为我维护的应用程序是4.5或更高,但
" .NET Framework 3.5.1及更早版本不支持将传输层安全性(TLS)系统默认版本用作加密协议的应用程序。此更新允许在.NET Framework 3.5.1中使用TLS v1.2。"