WebMoney-кофейня
WebMoney TOP - только для лучших сайтов!Топик в форуме: Расскажу свою небольшую историю!
Поставить музыку в Кофейне:
Ray Charles - Georgia On My Mind
  ОтветитьНовая тема

> login webmoney
armagedon
Post #1 (Отправлено: 17.06.2014 17:42)     Быстрое цитирование
Цитировать


Прохожий
*

Сообщений: 2
Регистрация: 17.06.2014
При авторизации на сайте через login.webmoney

происходит ошибка:
= Ошибка при получении тикета =
в чем может быть проблема





<?php
$urlid=""; // УКАЖИТЕ URLID, СООТВЕТСТВУЮЩИЙ ВАШЕМУ URL
$mywmid=""; // УКАЖИТЕ ВАШ WMID, ЗАРЕГИСТРИРОВАННЫЙ В LOGIN.WEBMONEY
$CertPath="home/web/public_html/WMunited.cer"; // УКАЖИТЕ ПУТЬ К КОРНЕВОМУ СЕРТИФИКАТУ LOGIN.WEBMONEY НА ВАШЕМ СЕРВЕРЕ

IF(!$_POST['WmLogin_WMID']) {
echo "Вы не авторизованы!<br>";
echo "<A href=https://login.wmtran...eeper.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.wmtran...uthorize.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);
// Выполняем запрос, ответ помещаем в переменную $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;

}
?>


Написать приватное сообщениеНаписать по email
Niksen
Post #2 (Отправлено: 18.06.2014 00:41)     Быстрое цитирование
Цитировать


Главный кофейщик
*******

Сообщений: 1592
Регистрация: 7.01.2005
Откуда: Киев
Участник WM-Клуба # 1
Очевидно, что не выполняется условие

if($_POST['WmLogin_UrlID']==$urlid && $testticket==1)


Вы $urlid прописали правильно в коде?
Что вы получаете в $_POST['WmLogin_UrlID'] и $_POST['WmLogin_Ticket'] ?


==================
Написать приватное сообщениеНаписать по emailВебсайт
armagedon
Post #3 (Отправлено: 19.06.2014 11:50)     Быстрое цитирование
Цитировать


Прохожий
*

Сообщений: 2
Регистрация: 17.06.2014
изменил значение
if($_POST['WmLogin_UrlID']=$urlid and $testticket=1)

и получил ошибку такого рода


=== Тикет получен успешно ===
Curl Error number = 77, Error desc = Problem with the SSL CA cert (path? access rights?)
Не получен XML-ответ


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

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

 





Powered by Invision Power Board © 2003 IPS, Inc.