[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: fsockopen
yintar
Здравствуйте.Помогите,пожалуйста разобраться.

На сайте мне нужна платежная система установил PayPal.в скрипте для ipn в строке $fp = fsockopen('https://www.google.com/', 443); выдает ошибку

fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to https://www.google.com/:443 (Unable to find the socket transport &quot;https&quot; - did you forget to enable it when you configured PHP?)
Эта ошибка вылетает и на локальном и на реальном хосте.
Сервер Denwer3,имеются все пакеты расширений,ssl вроде бы работает,не понимаю этой ошибки.
Игорь_Vasinsky
http://open-server.ru/forum/viewtopic.php?f=1&t=1093

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
yintar
Мне не нужен готовый код,вот мой код скрипта

public function actionIPN() {
// Loger::addLogPayPal(array(), 'обращение к скрипту ipn', 0, 0, '');
$header = null;


//Пример взят https://cms.paypal.com/cms_content/GB/en_GB.../IPN_PHP_41.txt
// PHP 4.1
// читаем сообщение от PayPal системы и добавлять "CMD"
$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {

$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

// post back to PayPal system to validate
//post передача системе PayPal для проверки
$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";

$fp = fsockopen("https://www.sandbox.paypal.com/", 443, $errno, $errstr);
print_r($fp);
// $fp = fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
// assign posted variables to local variables
//назначить переменные размещены на локальные переменные
$payPal['itemName'] = $_POST['item_name'];
$payPal['itemNumber'] = $_POST['item_number'];
$payPal['paymentStatus'] = $_POST['payment_status'];
$payPal['paymentAmount'] = $_POST['mc_gross'];
$payPal['paymentCurrency'] = $_POST['mc_currency'];
$payPal['txnId'] = $_POST['txn_id'];
$payPal['receiverEmail'] = $_POST['receiver_email'];
$payPal['payerEmail'] = $_POST['payer_email'];
print_r($payPal['paymentStatus']);
if (!$fp) {
echo 'hjhj';
// HTTP ERROR
// Loger::addLogPayPal($payPal, 'запрос не с PayPal.com', 1, 0, 'invalid');
} else {
echo '<pre>';
print_r($header . $req);
echo '</pre>';
echo '<hr/>';
$a = fputs($fp, $header . $req); //подсчет количества символов в строке

print_r($a);
echo '<hr/>';

while (!feof($fp)) {
$res = fgets($fp, 1024);

echo '<pre>';
print_r($res);
echo '</pre>';

if (strcmp($res, "VERIFIED") == 0) {
echo 'Ура получилось';
$contentAccess = MediaContentAccess::model()->findByPk((int) ($payPal['itemNumber']));
if ($contentAccess) {
$contentAccess->confirmed = 1;
$contentAccess->save();
Loger::addLogPayPal($payPal, 'оплата выполнена успешно', 0, 0, 'verified');
} else {
Loger::addLogPayPal($payPal, 'запрос не прошел проверку, нет такого в БД', 1, 0, 'invalid');
}

// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
} else if (strcmp($res, "INVALID") == 0) {
// Loger::addLogPayPal($payPal, 'запрос не прошел проверку', 1, 0, 'invalid');
// log for manual investigation
}
}
fclose($fp);
}
}

}

и в этом скрипте возникает ошибка

fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to https://www.google.com/:443 (Unable to find the socket transport &quot;https&quot; - did you forget to enable it when you configured PHP?) и я прошу помочь разобраться в чем причина такой ошибки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.