Geçenlerde bizim PayPal IPN modül içinde bir kıvırmak işlevi ayıklama çok zor bir zaman sahip olmuştur.
Burada kullandığınız modül var: http://www.oscommerce.com/community/contributions,2679 Ama ilgili kod aşağıda.
Ben bizim işlemlerin yaklaşık% 5 için bu hatayı yaşıyorum. Bu ücretli bir durum için güncelleştirilmesi için emir olur.
Ben başarısız ve işleniyor fazla komut dosyalarını durdurma hangi curl_exec olduğunu tespit ettik. Cpanel hata günlüğünde bu ile ilgili herhangi bir hata vardır.
Ben hiçbir değişiklik ile kıvırmak ve php hem de zaman aşımı süreleri değiştirerek denedim. Ben denemek ve yakalamak kullanarak denedim ama o da yardım etmedi.
Komut olarak ben sorun hakkında herhangi bir geri bildirim almak için curl_error kullanamazsınız curl_exec çarptığında yürütülmektedir durdurun.
Ben IPN geçti ama onlar ince olan parametreler üzerinden baktım.
Ben bu sorunun nedenini belirlemek için elimden geleni denedim ve hiçbir yerde var gibi hissediyorum.
Bu bağlantı birincil yöntem olarak komut fsock kullanıyorsa ben aynı sorunu yaşarsınız.
Herkes bu sorunu hata ayıklama diğer yöntemlerle herhangi bir öneriniz varsa sevinirim.
Teşekkürler
if (MODULE_PAYMENT_PAYPAL_IPN_GATEWAY_SERVER == 'Live') {
$server = 'www.paypal.com';
} else {
$server = 'www.sandbox.paypal.com';
}
$fsocket = false;
$curl = false;
$result = false;
if (function_exists('curl_exec')) {
$curl = true;
} elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://' . $server, 443, $errno, $errstr, 30)) ) {
$fsocket = true;
} elseif ($fp = @fsockopen($server, 80, $errno, $errstr, 30)) {
$fsocket = true;
}
if ($fsocket == true) {
$header = 'POST /cgi-bin/webscr HTTP/1.0' . "\r\n" .
'Host: ' . $server . "\r\n" .
'Content-Type: application/x-www-form-urlencoded' . "\r\n" .
'Content-Length: ' . strlen($parameters) . "\r\n" .
'Connection: close' . "\r\n\r\n";
@fputs($fp, $header . $parameters);
$string = '';
while (!@feof($fp)) {
$res = @fgets($fp, 1024);
$string .= $res;
if ( ($res == 'VERIFIED') || ($res == 'INVALID') ) {
$result = $res;
break;
}
}
@fclose($fp);
} elseif ($curl == true) {
$ch = @curl_init();
@curl_setopt($ch, CURLOPT_URL, 'https://' . $server . '/cgi-bin/webscr');
@curl_setopt($ch, CURLOPT_POST, true);
@curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_HEADER, false);
@curl_setopt($ch, CURLOPT_TIMEOUT, 30);
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = @curl_exec($ch);
curl_close($ch);
}