<?

session_start();

define( 'ROOT', 'http://'.$_SERVER['HTTP_HOST'] );
define( 'ROOT_DIR', $_SERVER['DOCUMENT_ROOT'] );

if ( isset( $_SESSION['iduser'] ) ) {
    echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Вы уже авторизированы.</div>';
} else {
    if ( !isset( $_POST['WmLogin_WMID'] ) ) {
        echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Произошла ошибка.</div>';
    } else
    if ( empty( $_POST['WmLogin_WMID'] ) ) {
        echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Произошла ошибка.</div>';
    } else {
        include_once ROOT_DIR . '/engine/config.php';
        include_once ROOT_DIR . '/engine/function.php';
        
        $testticket = preg_match( '/^[a-zA-Z0-9\$\!\/]{32,48}$/i', $_POST['WmLogin_Ticket'] );
        
        if ( $config_site['wmlogin'] != $_POST['WmLogin_UrlID'] && $testticket != 1 ) {
            echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Ошибка при получении тикета.</div>';
        } else {
            $xml="<request>
                <siteHolder>" . $config_site['wmid'] . "</siteHolder>
                <user>" . $_POST['WmLogin_WMID'] . "</user>
                <ticket>" . $_POST['WmLogin_Ticket'] . "</ticket>
                <urlId>" . $config_site['wmlogin'] . "</urlId>
                <authType>" . $_POST['WmLogin_AuthType'] . "</authType>
                <userAddress>" . $_POST['WmLogin_UserAddress'] . "</userAddress>
            </request>";
                
            function GetAnswer( $xml ) {
            	global $CertPath;
                $CertPath = ROOT_DIR . '/modules/autopaywebmoney/WMUsedRootCAs.cer';
            	// Инициализируем сеанс 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 );
            	// Выполняем запрос, ответ помещаем в переменную $result;
            	$result = curl_exec( $ch );
            	curl_close( $ch ); 
            	return $result; 
            }
            
            $resxml = GetAnswer( $xml );
            $xmlres = simplexml_load_string( $resxml );
            
            if ( !$xmlres ) {
                echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Не получен XML-ответ.</div>';
            } else {
                $result = strval( $xmlres->attributes()->retval );
                
                if ( $result == 0 ) {
                    $check_user = mysql_query( "SELECT id, blockip, blockuser, ip, userdel FROM user WHERE wmid = '" . mysql_real_escape_string( $_POST['WmLogin_WMID'] ) . "' LIMIT 1" );
                    if ( mysql_num_rows( $check_user ) > 0 ) {
                        $check_user_row = mysql_fetch_array( $check_user );
                        
                        if ( $check_user_row['userdel'] == 1 ) {
                            echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Пользователь удален.</div>';
                        } else
                        if ( $check_user_row['blockuser'] == 1 ) {
                            echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Ваш аккаунт заблокирован.</div>';
                        } else
                        if ( $check_user_row['blockip'] != 0 and $check_user_row['ip'] != real_IP() ) {
                            echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Ваш IP адрес не соответствует разрешенному.</div>';
                        } else {
                            $_SESSION['iduser'] = ( int ) $check_user_row['id'];
                            mysql_query( "UPDATE user SET logindate = '" . time() . "', ip = '" . real_IP() . "', browser = '" . check_text( user_browser( $_SERVER['HTTP_USER_AGENT'] ) ) . "' WHERE id = '" . $_SESSION['iduser'] . "'" );
                            header( 'Location: /info' );
                        }
                    } else {
                        echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Пользователь не найден.</div>';
                    }
                } else {
                    echo '<div class="error" style="width: 90%; margin: 10px auto; text-align: center"><b>WebMiSi!</b> Произошла ошибка авторизации.</div>';
                }
            }
        }
    }
}

?>