Авторизация на webmoney mini

Discussion in 'PHP' started by dr.Web, 20 Apr 2011.

  1. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    Скиньте плз php код авторизации на сайте mini.webmoney.ru


    вот мой

    PHP:

    <?

    function connect($link, $post=null,$header=null,$referer=null) {

            $ch = curl_init(); 
            curl_setopt($ch, CURLOPT_URL,$link);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch, CURLOPT_TIMEOUT, 0);
            curl_setopt($ch, CURLOPT_VERBOSE, 1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
            if($referer!=null){
            curl_setopt($ch, CURLOPT_REFERER, $referer);
            }
            if($header)
            {
            curl_setopt($ch, CURLOPT_HEADER, 1);
            }
            $useragent="Opera Mini/4.0.10247/23.334";
            
            curl_setopt($ch, CURLOPT_USERAGENT,  $useragent);

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            
            $cookies='cookie.txt';
            if (substr(PHP_OS, 0, 3) == 'WIN')
            {$cookies = str_replace('\\','/', getcwd().'/'.$cookies);}
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
            
            $otvet = curl_exec($ch);
            curl_close($ch);

        return $otvet;
    }

    function grabb($str, $start, $end)
    {
        $start = @strpos($str, $start) + strlen($start);
        $end = @strpos($str, $end, $start);
        $result = @substr($str, $start, $end - $start);
        flush();
    return $result;
    }

    function recognize($filename, $apikey, $is_verbose = null, $rtimeout = 5, $mtimeout = 120, $is_phrase = 0, $is_regsense = 1, $is_numeric = 0, $min_len = 0, $max_len = 0)
    {

        if (!file_exists($filename))
        {
            if ($is_verbose) echo "file $filename not found<br>\n";
            return false;
        }
        $postdata = array(
            'method'    => 'post', 
            'key'       => $apikey, 
            'file'      => '@'.$filename, //полный путь к файлу
            'phrase'    => $is_phrase,
            'regsense'    => $is_regsense,
            'numeric'    => $is_numeric,
            'min_len'    => $min_len,
            'max_len'    => $max_len,
            
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,                'http://antigate.com/in.php');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,    1);
        curl_setopt($ch, CURLOPT_TIMEOUT,            60);
        curl_setopt($ch, CURLOPT_POST,                1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,        $postdata);
        $result = curl_exec($ch);
        if (curl_errno($ch)) 
        {
            if ($is_verbose) echo "CURL returned error: ".curl_error($ch)."<br>\n";flush();
            return false;
        }
        curl_close($ch);
        if (strpos($result, "ERROR")!==false)
        {
            if ($is_verbose) echo "(<small>".date("H:i:s")."</small>)Ошибка сервера: $result<br>\n";flush();
            return false;
        }
        else
        {
            $ex = explode("|", $result);
            $captcha_id = $ex[1];
            if ($is_verbose) echo "(<small>".date("H:i:s")."</small>)Капче присвоен id$captcha_id <br>\n";
            echo"<script>captch();</script>";
            
            flush();
            $waittime = 0;
            if ($is_verbose) echo "...";flush();
            sleep($rtimeout);
            while(true)
            {
                $result = file_get_contents('http://antigate.com/res.php?key='.$apikey.'&action=get&id='.$captcha_id);
                if (strpos($result, 'ERROR')!==false)
                {
                    if ($is_verbose) echo "(<small>".date("H:i:s")."</small>)Ошибка сервера: $result<br>\n";flush();
                    return false;
                }
                if ($result=="CAPCHA_NOT_READY")
                {
                    if ($is_verbose) echo " ";flush();
                    $waittime += $rtimeout;
                    if ($waittime>$mtimeout) 
                    {
                        if ($is_verbose){ echo "(<small>".date("H:i:s")."</small>)время ожидания вышло ($mtimeout)<br>\n";flush();
                        break;}
                    }
                    
                    sleep($rtimeout);
                }
                else
                {
                    $ex = explode('|', $result);
                    if (trim($ex[0])=='OK') {
                    if ($is_verbose){echo"<br>Капча распознана.<br>";}
                    return trim($ex[1]);flush();
                    }
                }
            }
            
            return false;
        }
    }

    $index=connect('https://my.webmoney.ru/login.aspx?ReturnUrl=%2fdashboard.aspx','',1);

    $ackey='4534534534534534';


    $captcha=grabb($index,"img id='login_ctl00_cph_captcha_captcha_CaptchaImage' src='","'");





    file_put_contents('captcha.jpg', connect("https://mini.webmoney.ru/".$captcha,'','','https://my.webmoney.ru/login.aspx?ReturnUrl=%2fdashboard.aspx'));
    $ctl00Captcha=recognize(dirname (ereg_replace("\\\\","/",__FILE__))."/captcha.jpg", $ackey, true);




    $__LBD_VCT=grabb($index,'type="hidden" name="__LBD_VCT" id="__LBD_VCT" value="','"');
    $__LBD_SGC_login_ctl00_cph_captcha_captcha=grabb($index,'type="hidden" name="__LBD_SGC_login_ctl00_cph_captcha_captcha" id="__LBD_SGC_login_ctl00_cph_captcha_captcha" value="','"');
    $__VIEWSTATE=grabb($index,'type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="','"');
    $__EVENTVALIDATION=grabb($index,'type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="','"');
    $search='%D0%9D%D0%B0%D0%B9%D1%82%D0%B8+%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8E';
    $ctl00AuthMethod="%D0%9B%D0%BE%D0%B3%D0%B8%D0%BD%D0%B0+%D0%B8+%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F";
    $ctl00tbLogin="[email protected]";
    $ctl00tbPassword="123123123";
    $ctl00btnSubmit="%D0%92%D0%BE%D0%B9%D1%82%D0%B8";






    $post=array
    (
    '__EVENTTARGET'=>urlencode($__EVENTTARGET),
    '__EVENTARGUMENT'=>urlencode($__EVENTARGUMENT),
    '__LASTFOCUS'=>urlencode($__LASTFOCUS),
    '__LBD_VCT'=>urlencode($__LBD_VCT),
    '__LBD_SGC_login_ctl00_cph_captcha_captcha'=>urlencode($__LBD_SGC_login_ctl00_cph_captcha_captcha),
    '__VIEWSTATE'=>urlencode($__VIEWSTATE),
    '__EVENTVALIDATION'=>urlencode($__EVENTVALIDATION),
    'search'=>$search,
    'ctl00$cph$ddlAuthMethod'=>$ctl00AuthMethod,
    'ctl00$cph$tbLogin'=>urlencode($ctl00tbLogin),
    'ctl00$cph$tbPassword'=>urlencode($ctl00tbPassword),
    'ctl00$cph$Captcha$tbCaptcha'=>$ctl00Captcha,
    'ctl00$cph$btnSubmi'=>$ctl00btnSubmit
    );


    echo connect('https://my.webmoney.ru/login.aspx?ReturnUrl=%2fdashboard.aspx',$post,1,'https://my.webmoney.ru/login.aspx?ReturnUrl=%2fdashboard.aspx');
    ?>
    Не работает =(
     
    #1 dr.Web, 20 Apr 2011
    Last edited: 20 Apr 2011
  2. phenix1025

    phenix1025 New Member

    Joined:
    20 Oct 2012
    Messages:
    11
    Likes Received:
    1
    Reputations:
    0
    не допилил никто? падает на определении JS.