Несколько примеров Персера с WebMoney

Тема в разделе 'PHP', создана пользователем djzezya, 10 янв 2012.

  1. djzezya Новичок

    Привет всем это мой первый пост за ошыбки не судите строго!
    Ну начнем к примеру у нас есть номер WebMoney кошелька (wmz,wmr,wmu...) и нам нужно узнать WMid владельца, Уровень BL, и Тип аттестата (кому что надо или можно все сразу)
    Вот небольшой пример реализаций:


    Код:
    <?
    $purse="";//тут наш WM-кошелёк
     
    //Узнаем WMid с помощью WM-кошелька 
     
    function getwmid($purse) {
    $request="<request><purse>$purse</purse></request>"; //запрос
    $url="https://passport.webmoney.ru/xml/XMLGetWMIDInfo.aspx"; //URL куда мы его посылаем
    $ch = curl_init($url); //CURL запустись.Ниже мы его настроим...
    curl_setopt($ch, CURLOPT_HEADER, 0); //заголовки не отправляем
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //вернём ответ
    curl_setopt($ch, CURLOPT_POST,1); //запрос у нас POST а не GET
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //запрос то POST - но тут мы зададим что мы что либо передаём
    $result=curl_exec($ch); //результат курлятской работы
    $xmlres = simplexml_load_string($result); //симпл принимай эстафету
    $wmid=$xmlres->certinfo->wmids->row[wmid];
    return $wmid;
    }
    $wmid=getwmid($purse);
     
    //Конец (мы узнали Wmid и записали в переменную $wmid
     
    //Дальше с помощью WMid
    //1. Узнаем  уровень BL
     
     
    function getbl($wmid) {
    $request="<WMIDLevel.request><signerwmid>000000000000</signerwmid><wmid>$wmid</wmid></WMIDLevel.request>";
    $url="https://stats.wmtransfer.com/levels/XMLWMIDLevel.aspx"; //вот где собака зарыта)
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POST,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    $result=curl_exec($ch);
    $xmlres = simplexml_load_string($result);
    $bl = $xmlres->level;
    return $bl;
    }
     
    //Конец мы узнали BL
    //2.Узнаем тип аттестата
     
     
    function getatestat($purse) {
    $request="<request><purse>$purse</purse></request>"; //запрос
    $url="https://passport.webmoney.ru/xml/XMLGetWMIDInfo.aspx"; //URL куда мы его посылаем
    $ch = curl_init($url); //CURL запустись.Ниже мы его настроим...
    curl_setopt($ch, CURLOPT_HEADER, 0); //заголовки не отправляем
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //вернём ответ
    curl_setopt($ch, CURLOPT_POST,1); //запрос у нас POST а не GET
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //запрос то POST - но тут мы зададим что мы что либо передаём
    $result=curl_exec($ch); //результат курлятской работы
    $xmlres = simplexml_load_string($result); //симпл принимай эстафету
    $type_a=$xmlres->certinfo->attestat->row[tid];
    return $type_a;
    }
     
    //Конец мы узнали тип аттестата
    //Записываем все в переменные
     
     
    $bl=getbl($wmid);//bl записали
     
    $atestat_id=getatestat($purse);//Тип аттестата записали (но есть небольшая проблема мы узнали тока код аттестата а дальше все осуществим через switch();)
     
    //Вот узнаем по коду тип аттестата
    switch ($atestat_id) {
    case "100": $atestat="Псевдонима"; break;
    case "110": $atestat="Формальный";break;
    case "120": $atestat="Начальный";break;
    case "130": $atestat="Персональный";break;
    case "135": $atestat="Продавца";break;
    case "136": $atestat="Сapitaller";break;
    case "140": $atestat="Разработчика";break;
    case "150": $atestat="Регистратора";break;
    case "170": $atestat="Гаранта";break;
    case "190": $atestat="Сервиса wmt";break;
    case "200": $atestat="Сервиса wmt";break;
    case "300": $atestat="Оператора";break;
    //Конец
    }
    ?>
    Вроде все!
    Вот персер отзывов :
    Код:
    <?
    function getnegativ($purse) {
    $request="<request><purse>$purse</purse></request>"; //запрос
    $url="https://passport.webmoney.ru/xml/XMLGetWMIDInfo.aspx"; //URL куда мы его посылаем
    $ch = curl_init($url); //CURL запустись.Ниже мы его настроим...
    curl_setopt($ch, CURLOPT_HEADER, 0); //заголовки не отправляем
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //вернём ответ
    curl_setopt($ch, CURLOPT_POST,1); //запрос у нас POST а не GET
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //запрос то POST - но тут мы зададим что мы что либо передаём
    $result=curl_exec($ch); //результат курлятской работы
    $xmlres = simplexml_load_string($result); //симпл принимай эстафету
    $neg=$xmlres->certinfo->claims->row[negclaimscount];
    return $neg;
    }
    ?>
    Смысл такой же (он персит тока негативные отзывы для персинга позетивных необходимо row[negclaimscount] заменить на row[posclaimscount]) вот и все жду комментарий!
    Admin нравится это.
  2. XmP ADD ebx, 110h

    Для самых новичков сойдёт. Но не дальше.

    Потом, при таком раскладе все свободные сокеты кончаться, и придётся перезапускать php. После получения данных нужно закрывать соединение. Могу привести пример быстрого, нормально парсера - только дай знать что парсить.
    Admin нравится это.

Поделиться этой страницей