Добро пожаловать, Гость!
Пожалуйста помогите
Помощь мастерам | Пожалуйста помогите
khujand :
Короче у меня такое код:
$urlid="XXXXXXXX"; // УКАЖИТЕ URLID, СООТВЕТСТВУЮЩИЙ ВАШЕМУ URL
$mywmid="XXXXXXXXXXXX"; // УКАЖИТЕ ВАШ 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 "Тикет ошибочный smile";
else {
echo "Тикет верный smile Вы авторизованы!<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"smile;
// В выводе 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;
}
В конце ошибка: === Ошибка при получении тикета ===
Кто нибудь может переписать этот файлик? Благодарю заранее.
Пожалуйста помогите
5 Фев 2016Короче у меня такое код:
$urlid="XXXXXXXX"; // УКАЖИТЕ URLID, СООТВЕТСТВУЮЩИЙ ВАШЕМУ URL
$mywmid="XXXXXXXXXXXX"; // УКАЖИТЕ ВАШ 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 "Тикет ошибочный smile";
else {
echo "Тикет верный smile Вы авторизованы!<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"smile;
// В выводе 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;
}
В конце ошибка: === Ошибка при получении тикета ===
Кто нибудь может переписать этот файлик? Благодарю заранее.
Комментарии:
Sto56 5 Фев 2016
Ты бы хоть сказал, на каком движке, какие тикеты и так.да. И например я не понимаю, каким образом его нужно переписать.
Ты бы хоть сказал, на каком движке, какие тикеты и так.да. И например я не понимаю, каким образом его нужно переписать.