Commerce Paypal WPP Sandbox: cURL error: SSL connect error EDIT: Appears it is related to this issue: https://www.drupal.org/node/2616730#comment-10782646 . Still awaiting a fix though, as the patch in the issue doesn't fix it for me.

Our staging site was successfully using the Paypal sandbox with WPP for taking payments. As of three days ago, with seemingly no changes it is no longer working. The front end returns the error: "We encountered an error processing your payment. Please verify your credit card details or try a different card." Under reports all it says is cURL error: SSL connect error. Any idea how to fix this?

EDIT: I've tried to add CA certificate as per these instructions:

  // Commerce PayPal requires SSL peer verification, which may prevent out of
  // date servers from successfully processing API requests. If you get an error
  // related to peer verification, you may need to download the CA certificate
  // bundle file from http://curl.haxx.se/docs/caextract.html, place it in a
  // safe location on your web server, and update your settings.php to set the
  // commerce_paypal_cacert variable to contain the absolute path of the file.
  // Alternately, you may be able to update your php.ini to point to the file
  // with the curl.cainfo setting.


But now I get the error cURL error: Problem with the SSL CA cert (path? access rights?). I've tried restarting Apache with no effect. Please help!

More info on the request below:

Message PayPal API request to https://api-3t.sandbox.paypal.com/nvp:

Array
(
    [METHOD] =&gt; DoDirectPayment
    [PAYMENTACTION] =&gt; Sale
    [NOTIFYURL] =&gt; http://website.com/commerce_paypal/ipn/paypal_wpp%7Ccommerce_payment_paypal_wpp
    [BUTTONSOURCE] =&gt; CommerceGuys_Cart_PPP
    [CREDITCARDTYPE] =&gt; Visa
    [ACCT] =&gt; XXXXXXXXXXXX0331
    [EXPDATE] =&gt; 032016
    [AMT] =&gt; 126.00
    [CURRENCYCODE] =&gt; USD
    [CVV2] =&gt; XXX
    [INVNUM] =&gt; 5355-1453684794
    [CUSTOM] =&gt; Order 5355
    [DESC] =&gt; 1x product
    [EMAIL] =&gt; test@test.com
    [IPADDRESS] =&gt; [IPADDRESS]
    [FIRSTNAME] =&gt; test
    [LASTNAME] =&gt; test
    [STREET] =&gt; test
    [STREET2] =&gt; test
    [CITY] =&gt; test
    [STATE] =&gt; 
    [COUNTRYCODE] =&gt; HK
    [ZIP] =&gt;  - 
    [USER] =&gt; pro_api1.website.hk
    [PWD] =&gt; XXXXXXXXXXXXXXXX
    [SIGNATURE] =&gt; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    [VERSION] =&gt; 76.0
)
Ran this past some Paypal support personnel. They echoed both the author of the question and Nick in the comments.

Paypal reviewed the error and offered a link to this resource, which I will quote in part:


  PayPal is upgrading the protocols used to secure all external connections made to our systems. Transport Layer Security version 1.2 (TLS 1.2) and Hypertext Transfer Protocol version 1.1 (HTTP/1.1) will become mandatory for communication with PayPal in 2016. You will need to verify that your environment supports TLS 1.2 and HTTP/1.1, and if necessary make appropriate updates.
  
  PayPal is in the process of upgrading the SSL certificates used to secure our web sites and API endpoints. These new certificates will be signed using the SHA-256 algorithm and VeriSign's 2048-bit G5 Root Certificate. You will need to ensure that your environment supports the use of the SHA-256 signing algorithm and discontinue the use of SSL connections that rely on the VeriSign G2 Root Certificate.
  
  If you are using PayPal’s Instant Payment Notification (IPN) service, you will need to ensure that HTTPS is used when posting the message back to PayPal for verification. HTTP postbacks will no longer be supported.


Related Drupal.org Issue: https://www.drupal.org/node/2616730#comment-10782646

So, it seems, Paypal is upgrading lots of their security requirements for 2016. I highly recommend you investigate deeper with Paypal's support service to see if they can make a recommendation on next steps for you.