Up until today, I have been successfully developing with PayPal's sandbox using the new PayPal PHP SDK which comes preconfigured to use this sandbox URL:
https://api.sandbox.paypal.com/2.0/
(URL in Chrome currently returns: "Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.")
But today my webapp is crashing due to a SSL handshake failure:
Uncaught exception 'PPConnectionException' with message 'error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure' in ./paypal-sdk-1.0.92/lib/PPHttpConnection.php:185
The only event that has occurred since yesterday (when my webapp was last working) was I reset my sandbox "seller" account, which may have reset the API credentials according to this post. Since I've updated the API credentials manually, and have verified them to be correct, I cannot say if they were ever wrong at this point.
After lots of searching, I found other web articles that say the URL should be:
https://api-3t.sandbox.paypal.com/2.0/
(URL in Chrome returns a SOAP response.)
So I changed my PayPal PHP SDK's included URL from https://api.sandbox.paypal.com/2.0/ to https://api-3t.sandbox.paypal.com/2.0/ and it is working perfectly again. What happened here? Is the non-"3t" sandbox URL simply broken right now?
EDIT: After the feedback received from @Win and @JoelP, I have filed a bug report through the PayPal SDK github so someone at PayPal can explain what changed today and fix the SDK to have the correct URL when using Signature credentials.
EDIT 2: PayPal fixed the issue a few days ago. It's going to be available in the next release. https://github.com/paypal/SDKs/issues/22#issuecomment-8660682
Thanks for the help everyone.