Post by kdpr » Wed Feb 17, 2016 3:29 pm

??? Tried it locally and paypal works but in live it doesn't. Attached the errors that shows after I checkout

Attachments

Screenshot_3.png

Screenshot_3.png (35.3 KiB) Viewed 2178 times


Newbie

Posts

Joined
Fri Feb 05, 2016 2:34 pm

Post by artcore » Wed Feb 17, 2016 3:42 pm

This means that the payment didn't succeed, but the ugly error message is from a little bug in the error handling section.
Turn on PayPal error log to see why payments fail or if you did, check the error logs; admin > tools

Attn: I no longer provide OpenCart extensions, nor future support - this includes forum posts.
Reason: OpenCart version 3+ ;D

Thanks!


User avatar
Active Member

Posts

Joined
Tue Jul 09, 2013 4:13 am
Location - The Netherlands

Post by kdpr » Thu Feb 18, 2016 9:58 am

artcore wrote:This means that the payment didn't succeed, but the ugly error message is from a little bug in the error handling section.
Turn on PayPal error log to see why payments fail or if you did, check the error logs; admin > tools
Yeah I tried fixing the error in logs. I ended up using PayPal standard since it works instantly and it's not limited to paypal registered accounts. Thanks for the help though :)

Newbie

Posts

Joined
Fri Feb 05, 2016 2:34 pm

Post by artcore » Thu Feb 18, 2016 4:26 pm

You can still read the error in the logs, look for LONGMESSAGE and decipher the text ;D
It would be interesting to know what the error was.

The callback from PP is a string that needs to be parsed into an array after which there'll be an actual index for LONGMESSAGE_0 and continue the page creation gracefully.
I had to fix this for all my extensions. Not sure if there's a report on github but Daniel will get to it eventually.

Attn: I no longer provide OpenCart extensions, nor future support - this includes forum posts.
Reason: OpenCart version 3+ ;D

Thanks!


User avatar
Active Member

Posts

Joined
Tue Jul 09, 2013 4:13 am
Location - The Netherlands

Post by kdpr » Mon Feb 22, 2016 10:50 am

artcore wrote:You can still read the error in the logs, look for LONGMESSAGE and decipher the text ;D
It would be interesting to know what the error was.

The callback from PP is a string that needs to be parsed into an array after which there'll be an actual index for LONGMESSAGE_0 and continue the page creation gracefully.
I had to fix this for all my extensions. Not sure if there's a report on github but Daniel will get to it eventually.
2016-02-22 2:40:35 - PayPal Express debug (Call data): {"METHOD":"SetExpressCheckout","MAXAMT":"0.45","RETURNURL":"http:\/\/site.com\/index.php?route=payment\/pp_express\/checkoutReturn","CANCELURL":"http:\/\/site.com\/index.php?route=checkout\/checkout","REQCONFIRMSHIPPING":0,"NOSHIPPING":0,"LOCALECODE":"EN","LANDINGPAGE":"Login","HDRIMG":null,"PAYFLOWCOLOR":"","CHANNELTYPE":"Merchant","ALLOWNOTE":"0","PAYMENTREQUEST_0_SHIPTONAME":"sadsad asdsad","PAYMENTREQUEST_0_SHIPTOSTREET":"asdsad","PAYMENTREQUEST_0_SHIPTOSTREET2":"","PAYMENTREQUEST_0_SHIPTOCITY":"asdsad","PAYMENTREQUEST_0_SHIPTOSTATE":"Western","PAYMENTREQUEST_0_SHIPTOZIP":"8000","PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE":"AS","PAYMENTREQUEST_0_SHIPPINGAMT":"","PAYMENTREQUEST_0_CURRENCYCODE":"USD","PAYMENTREQUEST_0_PAYMENTACTION":"Sale","L_PAYMENTREQUEST_0_DESC0":false,"L_PAYMENTREQUEST_0_NAME0":"DUNHILL FILTER","L_PAYMENTREQUEST_0_NUMBER0":"FILTER","L_PAYMENTREQUEST_0_AMT0":"0.10","L_PAYMENTREQUEST_0_QTY0":"3","L_PAYMENTREQUEST_0_ITEMURL0":"http:\/\/smokeanother.bellalui.net\/index.php?route=product\/product&product_id=50","L_PAYMENTREQUEST_0_ITEMWEIGHTVALUE0":"0.00","L_PAYMENTREQUEST_0_ITEMWEIGHTUNIT0":"kg","PAYMENTREQUEST_0_ITEMAMT":"0.30","PAYMENTREQUEST_0_AMT":"0.30"}
2016-02-22 2:40:36 - PayPal Express debug (cURL failed): {"error":"SSL connect error","errno":35}
2016-02-22 2:40:36 - PayPal Express debug (Result): false
2016-02-22 2:40:36 - PHP Notice: Undefined offset: 1 in /path/path/path/site.com/catalog/model/payment/pp_express.php on line 10
2016-02-22 2:40:36 - PHP Notice: Undefined index: L_LONGMESSAGE0 in /path/path/path/site.com/catalog/controller/payment/pp_express.php on line 1324
2016-02-22 2:40:36 - a:1:{s:0:"";s:0:"";}
2016-02-22 2:40:36 - PHP Warning: Cannot modify header information - headers already sent by (output started at /path/path/path/site.com/index.php:98) in /path/path/path/site.com/system/library/response.php on line 12
These are the errors listed in the log ???
Last edited by straightlight on Tue Aug 02, 2016 10:33 pm, edited 1 time in total.
Reason: Added quote tags.

Newbie

Posts

Joined
Fri Feb 05, 2016 2:34 pm

Post by artcore » Wed Feb 24, 2016 4:07 pm

The error is obvious. SSL failed with cURL. Paypal changed their security in response to the poodle vulnerabulity.

Open \catalog\model\payment\pp_express.php
and change in public function call($data) {

Code: Select all

$defaults = array(
				CURLOPT_POST           => 1,
				CURLOPT_HEADER         => 0,
				CURLOPT_URL            => $api_endpoint,
				CURLOPT_USERAGENT      => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1",
				CURLOPT_FRESH_CONNECT  => 1,
				CURLOPT_RETURNTRANSFER => 1,
				CURLOPT_FORBID_REUSE   => 1,
				CURLOPT_TIMEOUT        => 0,
				CURLOPT_SSL_VERIFYPEER => 0,
				CURLOPT_SSL_VERIFYHOST => 0,
				CURLOPT_SSLVERSION     => 0,//new
				CURLOPT_POSTFIELDS     => http_build_query(array_merge($data, $settings), '', "&"),
			);
CURLOPT_SSLVERSION
One of CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) or CURL_SSLVERSION_TLSv1_2 (6).

Note: Your best bet is to not set this and let it use the default. Setting it to 2 or 3 is very dangerous given the known vulnerabilities in SSLv2 and SSLv3.


Left out completely, option 2:

Code: Select all

$defaults = array(
				CURLOPT_POST           => 1,
				CURLOPT_HEADER         => 0,
				CURLOPT_URL            => $api_endpoint,
				CURLOPT_USERAGENT      => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1",
				CURLOPT_FRESH_CONNECT  => 1,
				CURLOPT_RETURNTRANSFER => 1,
				CURLOPT_FORBID_REUSE   => 1,
				CURLOPT_TIMEOUT        => 0,
//				CURLOPT_SSL_VERIFYPEER => 0,
//				CURLOPT_SSL_VERIFYHOST => 0,
//				CURLOPT_SSLVERSION     => 0,//new
				CURLOPT_POSTFIELDS     => http_build_query(array_merge($data, $settings), '', "&"),
			);

I used this fix for one of my clients, works :)

Cheers

Attn: I no longer provide OpenCart extensions, nor future support - this includes forum posts.
Reason: OpenCart version 3+ ;D

Thanks!


User avatar
Active Member

Posts

Joined
Tue Jul 09, 2013 4:13 am
Location - The Netherlands

Post by kdpr » Fri Feb 26, 2016 9:10 am

The error still occurs. I've already tried clearing and refreshing mod. Hard refresh, etc :'(

Newbie

Posts

Joined
Fri Feb 05, 2016 2:34 pm

Post by artcore » Fri Feb 26, 2016 4:05 pm

It's possible that Apache on your server has an old version of mod_ssl
I can take a look if you want.

Attn: I no longer provide OpenCart extensions, nor future support - this includes forum posts.
Reason: OpenCart version 3+ ;D

Thanks!


User avatar
Active Member

Posts

Joined
Tue Jul 09, 2013 4:13 am
Location - The Netherlands
Who is online

Users browsing this forum: No registered users and 2 guests