【发布时间】:2017-09-25 23:40:51
【问题描述】:
随着 PayPal TLS 1.2 升级迫在眉睫,我急于升级我的客户支付系统。问题是,它们在 .NET 3.5 上。我与 PayPal 支持人员谈过,他们说他们的 SDK 只支持 .NET 4.5。将整个站点升级到 4.5 需要很长时间才能完成。因此,除非他们错了,并且有人可以为我指明如何将 payflow pro SDK 实施到 .NET 3.5 系统中的正确方向,否则我提出了 2 个选项(除了升级):
-
使用 WebClient 连接到支付流网关。我喜欢这个解决方案,但我没有得到回应。我有两个 sn-ps 代码
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();
两者都返回空响应异常。
- 另一种方法是创建一个在 .NET 4.5 中编译的本地 Web 服务,并让 Web 应用程序使用它来处理事务。这一切都将在本地完成,因此 Web 应用程序不会与另一台计算机通信,它将连接到本地的 Web 服务。至于网络服务,我会让它只响应本地请求。问题是 Web 服务上不会有 SSL。所以最大的问题是,如果 Web 服务不响应外部请求,而是在内部发出请求,是否会破坏 PCI 合规性?
【问题讨论】:
标签: paypal payment-gateway payment pci-compliance