我试图将Paypal集成到Web应用程序中,但没有成功。我已经尝试了很多事情,但我不断回到一个特定的错误。我现在正在尝试使用贝宝集成向导,并且在获得所提供的代码时,出现错误消息:请求已中止:无法创建SSL / TLS安全通道。

这是代码:

public string HttpCall(string NvpRequest) //CallNvpServer
{
    string url = pendpointurl;

    //To Add the credentials from the profile
    string strPost = NvpRequest + "&" + buildCredentialsNVPString();
    strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode( BNCode );

    HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
    objRequest.Timeout = Timeout;
    objRequest.Method = "POST";
    objRequest.ContentLength = strPost.Length;
    StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream());


错误发生在objRequest.GetRequestStream()的最后一行

我尝试在Google上查找它,但没有找到对我有用的东西。
有人知道我该怎么做才能解决此问题吗?

最佳答案

将以下代码添加到您的global.asax.cs Application_Started方法中,或者在调用(HttpWebRequest)WebRequest.Create(url)之前;

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;


这是因为PayPal将其加密更改为TLS而不是SSL。在Sandbox环境中已对此进行了更新,但尚未进行实时更新。

阅读更多:
https://devblog.paypal.com/upcoming-security-changes-notice/

关于asp.net - 无法创建SSL/TLS安全 channel -GetRequestStream(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36574711/

10-15 04:28