Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CURL] Logowanie mBank/OrangeFinanse
Forum PHP.pl > Forum > PHP
hostcom
Witam
Piszę klasę do logowania i pobierania historii z mBank lub Orange Finanse

Doszłem do tego iż logowanie przebiega pomyślnie lecz gdy ma nastąpić przekierowanie na stronę dostaję 404. mógły ktoś zerknąć na skrypt?

  1. <?php
  2. $login='';
  3. $haslo='';
  4. echo '<pre>';
  5. $send= new OrangeFinanse();
  6. $ret = $send->Login($login,$haslo);
  7.  
  8.  
  9.  
  10. class OrangeFinanse{
  11.  
  12.  
  13. public static function curl ($url, $post = NULL, $ref = NULL, $follow = 1, $header = 1, $post_type = 0)
  14. {
  15. $ch = curl_init ($url);
  16. curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7) Gecko/20091221 Firefox/23.5.7');
  17. $headers = array('Accept-Language: pl,en-us;q=0.7,en;q=0.3','Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7', 'Accept:application/json, text/javascript, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
  18. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  19. curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
  20. // Zapisywanie ciastek do pliku
  21. curl_setopt($ch,CURLOPT_COOKIEJAR, dirname(__FILE__).'/orange.txt');
  22. curl_setopt($ch,CURLOPT_COOKIEFILE, dirname(__FILE__).'/orange.txt');
  23. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  24. if ( ! empty($post))
  25. {
  26. if(!$post_type){
  27. $postVars='';
  28. foreach ($post as $option => $value)
  29. $postVars .= $option.'='.urlencode($value).'&';
  30. curl_setopt($ch, CURLOPT_POST, 1);
  31. curl_setopt($ch, CURLOPT_POSTFIELDS, $postVars);
  32. }
  33. }else{
  34. curl_setopt($ch, CURLOPT_POST, 1);
  35. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  36.  
  37. }
  38. if($ref)
  39. curl_setopt($ch, CURLOPT_REFERER, $ref);
  40. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  41. curl_setopt($ch, CURLOPT_HEADER, 0);
  42. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  43. $r = curl_exec($ch);
  44. curl_close($ch);
  45. return $r;
  46. }
  47.  
  48.  
  49. public function Login ($login,$haslo)
  50. {
  51.  
  52.  
  53.  
  54. $conetens2 = $this->curl('https://orangefinanse.com.pl/or/Login', $POST,'https://orangefinanse.com.pl/or/Login');
  55. $conetens = str_replace('"/','"https://orangefinanse.com.pl/',$conetens2);
  56.  
  57.  
  58.  
  59.  
  60. preg_match_all('/entrypoint.initialize\(\'(.+?)\'/', htmlspecialchars($conetens), $rand);
  61. $POST=array(
  62. 'UserName'=>$login,
  63. 'Password'=>$haslo,
  64. 'Seed'=>$rand[1][0],
  65. 'Scenario'=>'Default',
  66. 'UWAdditionalParams'=>array('InOut'=>'','ReturnAddress'=>'','Source'=>''),
  67. 'Lang'=>'',
  68. 'source'=>'',
  69. );
  70. $POST=json_encode($POST);
  71.  
  72. /*
  73. Przesłanie Danych do Logowania
  74. **************************************************************************
  75. *************************************************************************/
  76. $ret=$this->curl_json('https://orangefinanse.com.pl/or/LoginMain/Account/JsonLogin',$POST);
  77. print_r(json_decode($ret));
  78. /*LOGOWANIE POPRAWNE*/
  79.  
  80.  
  81.  
  82. */Przekierowanie na strone główną i 404*/
  83.  
  84.  
  85. $ret=$this->curl('https://orangefinanse.com.pl/or',null,'https://orangefinanse.com.pl/or/Login');
  86. echo $conetens = str_replace(array('"/','\'/\''),'"https://orangefinanse.com.pl/',$ret);
  87.  
  88.  
  89. }
  90.  
  91. public static function curl_json($url,$post=null){
  92. $ch = curl_init($url);
  93. curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7) Gecko/20091221 Firefox/23.5.7');
  94. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  95. if($post)
  96. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  97. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  98. curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  99. 'Content-Type: application/json',
  100. 'Content-Length: ' . strlen($post))
  101. );
  102. curl_setopt($ch,CURLOPT_COOKIEJAR, dirname(__FILE__).'/orange.txt');
  103. curl_setopt($ch,CURLOPT_COOKIEFILE, dirname(__FILE__).'/orange.txt');
  104. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  105. $r = curl_exec($ch);
  106. curl_close($ch);
  107. return $r;
  108.  
  109.  
  110.  
  111. }
  112.  
  113.  
  114. }


Cytat(hostcom @ 22.12.2014, 15:28:58 ) *
Witam
Piszę klasę do logowania i pobierania historii z mBank lub Orange Finanse

Doszłem do tego iż logowanie przebiega pomyślnie lecz gdy ma nastąpić przekierowanie na stronę dostaję 404. mógły ktoś zerknąć na skrypt?


Problem rozwiązany
in5ane
Cytat(hostcom @ 23.12.2014, 12:21:55 ) *
Problem rozwiązany


Z reguły dla potomnych wypadałoby podać rozwiązanie...
tete
Chętnie ci sprzeda. Ale sam szukał pomocy za darmo.
hostcom
Cytat(tete @ 23.12.2014, 21:52:41 ) *
Chętnie ci sprzeda. Ale sam szukał pomocy za darmo.

Jak skończe całość to zamieszczę...

Narazie jeszcze nad nim pracuję

Cytat(in5ane @ 23.12.2014, 15:07:05 ) *
Z reguły dla potomnych wypadałoby podać rozwiązanie...


Trzeba określać w curlu metodę przesłania danych POST bądź GET
  1. CURLOPT_CUSTOMREQUEST

Reszta to pobranie danych json.
Należy również przesłać w nagłówku X-Request-Verification-Token: pobrany z meta


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.