The request was aborted: Could not create SSL/TLS secure channel sandbox account

后端 未结 4 1188
迷失自我
迷失自我 2020-12-03 06:24

It was working well before a week but now it shows following error. I have tried the following things but of no use.

ServicePointManager.Expect100Continue =         


        
相关标签:
4条回答
  • 2020-12-03 07:03

    I just ran into this same problem in my testing environment as well (luckily my live payments are going through). I fixed it by changing:

    public PayPalAPI(string specialAccount = "")
    {
        System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;
    

    to

    public PayPalAPI(string specialAccount = "")
    {
        System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
    

    They disabled support for SSL3 a while ago: https://www.paypal.com/uk/webapps/mpp/ssl-security-update, specifically stating

    Ensure you are connecting to PayPal endpoints using TLS 1.0 or 1.2 (not all API endpoints currently support TLS 1.1).

    Their latest update (thx for the comment update from @awesome) states:

    PayPal is updating its services to require TLS 1.2 for all HTTPS connections. At this time, PayPal will also require HTTP/1.1 for all connections... To avoid any disruption of service, you must verify that your systems are ready for this change by June 17, 2016

    0 讨论(0)
  • 2020-12-03 07:06

    If your framework version is less than 4.5, you might not be able to set it directly. You can use the below code

    ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
    
    0 讨论(0)
  • 2020-12-03 07:07

    Indeed changing SecurityProtocolType.Tls fixes the problem, if you´re working in VS with a framework lower than 4.5 you won´t be able to change it, you have to upgrade your VS to a highest version 2012/2013/2015 to change it.

    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

    0 讨论(0)
  • 2020-12-03 07:24

    Add the following code to your global.asax or before calling the (HttpWebRequest)WebRequest.Create(url);

    protected void Application_Start()
    {
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
        // ...
    }
    

    This was caused because PayPal are changing their encryption to TLS instead of SSL. This has already been updated on the Sandbox environments but not yet on the live.

    Read more: https://devblog.paypal.com/upcoming-security-changes-notice/

    0 讨论(0)
提交回复
热议问题