За последние 24 часа нас посетили 19057 программистов и 1638 роботов. Сейчас ищут 885 программистов ...

Проверка плажтежей qiwi через PHP

Тема в разделе "Прочие вопросы по PHP", создана пользователем Ermo1ay, 6 окт 2013.

  1. Ermo1ay

    Ermo1ay Новичок

    С нами с:
    6 окт 2013
    Сообщения:
    1
    Симпатии:
    0
    Стало нужно проверять платежи qiwi через php, но нормальных способов и простых в оснвоении не нашел. Нашел некий протокол SOAP, с которым qiwi работает, но не через кошелек, а через специальный сервис "интернет-магазинов". Мне же нужно узнавать о поступлениях платежей на qiwi с дальнейшей обработкой их в бд.
    Может кто располагает какой-нибудь полезной информацией по данной теме или выскажет парочку предложений?

    Почитал способы авторизации через curl. Нужно покопаться. Может у кого есть вариант уже с авторизацией и проверкой платежей (отчетов)?

    Код (Text):
    1. <?php
    2.  
    3. $USER_LOGIN = "";
    4. $USER_PASSWORD = "";
    5. $url="https://w.qiwi.com/auth/login.action";
    6. $cookie_file = $_SERVER["DOCUMENT_ROOT"]."/fee/cookie.data";
    7.  
    8. //Просим токен
    9. $post="source=MENU&login=$USER_LOGIN&password=$USER_PASSWORD";
    10.     $ch = curl_init();
    11.     curl_setopt($ch, CURLOPT_HEADER, 0);
    12.     curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    13.     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0");
    14.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    15.     curl_setopt($ch, CURLOPT_URL, $url);
    16.     curl_setopt($ch, CURLOPT_POST, 1);
    17.     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    18.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    19.     curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Accept: application/json, text/javascript, */*; q=0.01','Content-Type: application/x-www-form-urlencoded; charset=windows-1251','X-Requested-With: XMLHttpRequest'));
    20.     curl_setopt($ch,CURLOPT_REFERER, 'https://w.qiwi.com/payment/main.action');
    21.     curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    22.     curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    23.  
    24. $html = curl_exec($ch);
    25.  
    26. $html = json_decode($html,true);
    27.  
    28.  //Выдернули токен
    29. $token = $html["data"]["token"];
    30.  
    31. //повторяем авторизацию с токеном
    32. $post = "source=MENU&login=$USER_LOGIN&password=$USER_PASSWORD&loginToken=$token";
    33.  
    34.  
    35.     curl_setopt($ch, CURLOPT_URL, $url);
    36.     curl_setopt($ch, CURLOPT_POST, 1);
    37.     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    38.     curl_exec($ch);
    39.     echo $page;
    40.  
    41. //мы на сайте. Инициируем заново curl, мне было лень переназначать параметры, а с текущими какого-то хера не грузилась страница. Вероятнее всего, что сайт еще допиливают, хз, хз
    42.  
    43.         curl_close($ch);
    44.         $ch = curl_init();
    45.  
    46.  
    47.     curl_setopt($ch, CURLOPT_HEADER, 0);
    48.         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    49.         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0");
    50.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    51.     curl_setopt($ch, CURLOPT_URL, $url);
    52.     curl_setopt($ch, CURLOPT_POST, true);
    53.     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    54.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    55.     curl_setopt($ch, CURLOPT_COOKIEJAR, '/home/network/cookie.data');
    56.     curl_setopt($ch, CURLOPT_COOKIEFILE, '/home/network/cookie.data');
    57.     curl_exec($ch);
    58.     $html = curl_exec($ch);
    59.    
    60.  
    61. //и вот тут мы, в итоге получаем страницу, где виден даже баланс
    62.     $date_time_array = getdate( time() );
    63.     $html = curl_exec($ch);
    64.     $month = $date_time_array['mon']-3;
    65. $day = $date_time_array['mday'];
    66. $year = $date_time_array['year'];
    67.     $date_start = mktime($month,$day,$year);
    68.     $date_finish = $date_time_array['dyear'];
    69.  //Открываем страницу отчата по платежам
    70.   $post="daterange=true&start=$date_start&finish=$date_finish";
    71.   $ref="https://visa.qiwi.com/report/list.action";
    72.   $url="https://visa.qiwi.com/report/list.action";
    73.   curl_setopt($ch, CURLOPT_URL, $url);
    74.   curl_setopt($ch, CURLOPT_REFERER, $ref);
    75.   curl_setopt($ch, CURLOPT_POST, 1);
    76.   curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    77.   $page = curl_exec($ch);
    78.  echo $page;
    79.  echo $date_finish,"<br>";
    80.  echo $date_start;
    81.  
    82.  curl_close($ch);
    83.  ?>
    Вот мой код для авторизации. Ничего не выдает, пустота