Aw: Paypal payment orders (Not finished) state
SOLUTION!! SOLUTION!! SOLUTION!! SOLUTION!! SOLUTION!! SOLUTION!!
I fixed it after days and days of searching and testing, I finally got it corrected so hopefully this helps others not have to go through all the problems I did!!
First - Check to make sure you are using at least PHP4 or higher. If you are not - None of this will work for you!
Second - Go to your pm_paypal.php file and change the following line:
curl_setopt($ch, CURLOPT_SSLVERSION, $pmconfigs['CURLOPT_SSLVERSION']);
(This is about line 87 in the pm_paypal file)
CHANGE TO:
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2 );
This should be enough for most people and allow the orders to finish properly and the emails to be sent.
IF NOT - then also do the steps here - ONLY IF THE ABOVE 2 STEPS DO NOT FIX THE PROBLEM:
Third - Go to this page
https://gist.github.com/VersatilityWerks/5719158/download to get a clean copy of the file cacert.pem
NOTE - Any method involving windows notepad or other editors corrupts the file and gives the cURL error 60 etc and it messes it up and won't work.
Fourth - Take that newly saved file and upload it anywhere on your server you want. I put mine in the PHP/Extras folder just to keep everything together.
Fifth - Now go to your PHP.ini file and find the line:
;curl.cainfo =
CHANGE IT TO
curl.cainfo = "[pathtothisfile]\cacert.pem"
Sixth - Restart your server!
That's it!
If you do not have access to your server then contact your administrator.
After these steps, your orders will complete / finish correctly and the emails will be sent assuming all the other settings and configurations are correct.
Hopefully this helps everyone else who is experiencing the same issues!