Paypal code in A2b is obsolete, it uses plain HTTP to talk to PayPal servers. They don't accept plain http anymore.
This patch fixes it by using HTTPS with libCURL.
Atamurad Hezretkuliyev
Code:
35,46d34
< $flag_ver = 0;
<
< function read_body($ch, $string)
< {
< global $flag_ver;
< $length = strlen($string);
< if( strpos($string, "VERIFIED")== false ) {
< $flag_ver = 1;
< } else $flag_ver = 0;
< write_log(LOGFILE_EPAYMENT, "Response: $length bytes\n$string\nVerified? $flag_ver ");
< return $length;
< }
87,97c75,99
<
< $url = "https://".PAYPAL_VERIFY_URL."/cgi-bin/webscr";
< //open connection
< $ch = curl_init();
<
< //set the url, number of POST vars, POST data
< curl_setopt($ch,CURLOPT_URL,$url);
< curl_setopt($ch,CURLOPT_POST,1);
< curl_setopt($ch,CURLOPT_POSTFIELDS,$req);
< curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'read_body');
<
---
> $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
> $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
> $header .= "Content-Length: " . strlen ($req) . "\r\n\r\n";
> for ($i = 1; $i <=3; $i++)
> {
> write_log(LOGFILE_EPAYMENT, basename(__FILE__).' line:'.__LINE__."-OPENDING HTTP CONNECTION TO ".PAYPAL_VERIFY_URL);
> $fp = fsockopen (PAYPAL_VERIFY_URL, 443, $errno, $errstr, 30);
> if($fp)
> {
> break;
> }
> else
> {
> write_log(LOGFILE_EPAYMENT, basename(__FILE__).' line:'.__LINE__." -Try#".$i." Failed to open HTTP Connection : ".$errstr.". Error Code: ".$errno);
> sleep(3);
> }
> }
> if (!$fp)
> {
> write_log(LOGFILE_EPAYMENT, basename(__FILE__).' line:'.__LINE__."-Failed to open HTTP Connection: ".$errstr.". Error Code: ".$errno);
> exit();
> }
> else
> {
> fputs ($fp, $header . $req);
99,110c101,109
<
< write_log(LOGFILE_EPAYMENT, "Opening HTTPS connection with curl to paypal");
<
< //execute post
< $result = curl_exec($ch);
<
< write_log(LOGFILE_EPAYMENT, "Result : $result");
<
< //close connection
< curl_close($ch);
<
<
---
> while (!feof($fp))
> {
> $res = fgets ($fp, 1024);
> if (strcmp ($res, "VERIFIED") == 0)
> {
> write_log(LOGFILE_EPAYMENT, basename(__FILE__).' line:'.__LINE__."-PAYPAL Transaction Verification Status: Verified ");
> $flag_ver = 1;
> }
> }
116c115,116
<
---
> }
> fclose ($fp);