WebMoney-кофейня
Наша группа ВКонтакте. Получай бонусы просто так!Топик в форуме: Вывод WMZ за USD весь мир
Поставить музыку в Кофейне:
Carlos Puebla - Hasta siempre comandante
  ОтветитьНовая тема

> Ошибка Вход на Login
ibni
Post #1 (Отправлено: 31.01.2016 15:13)     Быстрое цитирование
Цитировать


Прохожий
*

Сообщений: 3
Регистрация: 31.01.2016
Я создал файл wmid.php поставил код ниже приведенной. Заполнил все по вашему инструкцию. Но постоянно пишет: === Ошибка при получении тикета ===



Плиз посмотрите ошибку, пишет ошибка при получении тикет:

// ПРИМЕР РАБОТЫ С LOGIN.WEBMONEY
// Описание: http://owebmoney.ru/articles/login.shtml
// Последнее обновление - 7.06.10
// Для работы этих функций необходимы библиотеки PHP: simplexml, iconv, curl
// © Никита Сенченко, owebmoney.ru

$urlid=" код улр на этот файл которое написал на login"; // УКАЖИТЕ URLID, СООТВЕТСТВУЮЩИЙ ВАШЕМУ URL
$mywmid="мой вмид"; // УКАЖИТЕ ВАШ WMID, ЗАРЕГИСТРИРОВАННЫЙ В LOGIN.WEBMONEY
$CertPath="/home/site.ru/data/сеrts/WMunited.cer"; // УКАЖИТЕ ПУТЬ К КОРНЕВОМУ СЕРТИФИКАТУ LOGIN.WEBMONEY НА ВАШЕМ СЕРВЕРЕ

IF(!$_POST['WmLogin_WMID']) {
echo "Вы не авторизованы!<br>";
echo "<A href=https://login.wmtransfer.com/GateKeeper.aspx?RID=".$urlid."&lang=ru-RU>авторизоваться</A>";
} ELSE {
$testticket=preg_match('/^[a-zA-Z0-9\$\!\/]{32,48}$/i', $_POST['WmLogin_Ticket']);
if($_POST['WmLogin_UrlID']==$urlid && $testticket==1) {
echo "=== Тикет получен успешно === <br>";
// Формируем запрос для проверки тикета
$xml="
<request>
<siteHolder>$mywmid</siteHolder>
<user>".$_POST['WmLogin_WMID']."</user>
<ticket>".$_POST['WmLogin_Ticket']."</ticket>
<urlId>".$urlid."</urlId>
<authType>".$_POST['WmLogin_AuthType']."</authType>
<userAddress>".$_POST['WmLogin_UserAddress']."</userAddress>
</request>
";
// Отправляем запрос и получаем ответ
$resxml=_GetAnswer($xml);
// Разбираем XML-ответ
$xmlres = simplexml_load_string($resxml);
if(!$xmlres) echo "Не получен XML-ответ";
$result=strval($xmlres->attributes()->retval);
// Если результат не равен 0 - прерываем и выдаем ошибку
if($result!=0) echo "Тикет ошибочный sad.gif";
else {
echo "Тикет верный smile.gif Вы авторизованы!<br>";
echo "Ваш WMID - ".$_POST['WmLogin_WMID']."<br>";
// Выполняем необходимые действия, например, авторизуем пользователя, начинаем сессию и т.д.
// ...
}
} else echo "=== Ошибка при получении тикета ===";
}

// Функция передает XML-запрос на сервер Login.WebMoney и получает от него ответ
function _GetAnswer($xml){
global $CertPath;
// Инициализируем сеанс CURL
$ch = curl_init("https://login.wmtransfer.com/ws/authorize.xiface");
// В выводе CURL http-заголовки не нужны
curl_setopt($ch, CURLOPT_HEADER, 0);
// Возвращать результат, а не выводить его в браузер
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// Метод http-запроса - POST
curl_setopt($ch, CURLOPT_POST,1);
// Что передаем?
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
// Задаем корневой сертификат для проверки
curl_setopt($ch, CURLOPT_CAINFO, $CertPath);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);

// Изменил curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE); на curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); все равно ошибка
// Выполняем запрос, ответ помещаем в переменную $result;
$result=curl_exec($ch);
if(curl_errno($ch)) echo "Curl Error number = ".curl_errno($ch).", Error desc = ".curl_error($ch)."<br>";
curl_close($ch);
return $result;
}


Постоянная ошибка "=== Ошибка при получении тикета ===";





   [Склеено в 15:18]

Можно написать проверки авторизации через API?


Написать приватное сообщениеНаписать по email
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции этого топика ОтветитьНовая тема

 





Powered by Invision Power Board © 2003 IPS, Inc.