login.webmoney.ru
#1 Новичок
Отправлено 29 мая 2011 - 15:30
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 "Тикет ошибочный ";
else {
echo "Тикет верный Вы авторизованы!<br>";
echo "Ваш WMID - ".$_POST['WmLogin_WMID']."<br>";
// Выполняем необходимые действия, например, авторизуем пользователя, начинаем сессию и т.д.
// ...
}
} else echo "=== Ошибка при получении тикета ===";
}
// Функция передает XML-запрос на сервер Login.WebMoney и получает от него ответ
function _GetAnswer($xml){
global $CertPath;
// Инициализируем сеанс CURL
$ch = curl_init("https://login.wmtran...thorize.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;
}
Но вот возникает ошибка: === Ошибка при получении тикета ===
$result - пустая, не 0, не каких других ошибок. Все библиотеки php стоят, в чем проблема может быть?
#2 Знаток
Отправлено 30 мая 2011 - 04:48
XML-запрос должен подписываться сертификатом "WMunited.cer".
#3 Новичок
Отправлено 30 мая 2011 - 23:41
#4 Знаток
Отправлено 31 мая 2011 - 02:40
1. В самом начале скрипта прописать print_r($_POST);
(Возможно вы банально не получаете инфу после авторизации)
2. Прописать print_r($resxml);
#5 Новичок
Отправлено 31 мая 2011 - 14:03
Отображать ошибки и варнинги - уже побывал, нечего нет.
#6 Знаток
Отправлено 31 мая 2011 - 18:28
У вас например глобальные переменные могут быть отключены в настройках.function _GetAnswer($xml){
global $CertPath;
Сделайте print_r($CertPath);
#7 Новичок
Отправлено 03 апреля 2016 - 19:30
Такая же ошибка
#8 Новичок
Отправлено 21 сентября 2016 - 09:39
при входе на сайт CAP-ALMAZ.RU через WM Login пишет ошибка при получении тикета,у меня стоит ограничение входа,как исправить или зайти чтобы снять ограничения
#9 Знаток
Отправлено 25 сентября 2016 - 09:20
Какое ограничеи входа установлено у Вас?
#10 Продвинутый пользователь
Отправлено 25 сентября 2016 - 11:22
На сайте в разделе Новости - есть запись -
20.08.2016г. 19:21может по этой причине не авторизует? -спросите у админа - вероятно он что то изменил(как вариант).
при входе на сайт CAP-ALMAZ.RU через WM Login пишет ошибка при получении тикета,у меня стоит ограничение входа,как исправить или зайти чтобы снять ограничения
#11 Продвинутый пользователь
Отправлено 14 марта 2017 - 19:54
Подскажите, как отследить отказ юзера от верификации через нажатие "Отменить" ?
#12 Знаток
Отправлено 14 марта 2017 - 22:17
Подскажите, как отследить отказ юзера от верификации через нажатие "Отменить" ?
В POST на сайт вернётся в WmLogin_KeeperRetStr значение Canceled. Если вышел после выхода на сайте и произошёл редирект на login.wmtransfer, то в WmLogin_KeeperRetStr вернёт LoggedOff.
Отмена
В случае если при аутентификации пользователь отменил действие, то формат ответа будет следующий:
WmLogin_KeeperRetStr - строковый идентификатор результата: Canceled
WmLogin_KeeperRetVal - код результата: 4Возврат после выхода
В случае если был запрошен выход и был выполнен возврат на сайт после этого, то формат ответа будет следующий:WmLogin_KeeperRetStr - строковый идентификатор результата: LoggedOff
WmLogin_KeeperRetVal - код результата 5
#13 Новичок
Отправлено 04 мая 2017 - 19:12
добрый вечер,пытаюсь настроить авторизацию на сайте через wmlogin,но ничего не получается,приходит отмена и перенаправление на сайт через пять минут,где может быть ошибка?
#14 Знаток
Отправлено 04 мая 2017 - 22:17
Добрый вечер,
где может быть ошибка?
код в студию!