walle89 / SwedbankJson

Unofficial API client for the Swedbank's and Sparbankerna's mobile apps in Sweden.
MIT License
75 stars 14 forks source link

Swedbank-fel: NÃ¥got med fel med profilsidan. (Err #5) #3

Closed CirruZZ closed 10 years ago

CirruZZ commented 10 years ago

Hittade precis detta verktyg, verkar toppen. Men jag får följadnde fel...

Swedbank-fel: NÃ¥got med fel med profilsidan. (Err #5)
#0 /var/www/_bank/json/SwedbankJson/swedbankJson.php(185): SwedbankJson->profile()
#1 /var/www/_bank/json/SwedbankJson/swedbankJson.php(166): SwedbankJson->login()
#2 /var/www/_bank/json/SwedbankJson/swedbankJson.php(129): SwedbankJson->swedbankInit()
#3 /var/www/_bank/json/SwedbankJson/example.php(11): SwedbankJson->accountList()
#4 {main}

Någon ide vad som kan vara fel? Har bara ändrat Pnr och lösen i example.php.

walle89 commented 10 years ago

Jag gjorde precis en git clone och ändrade personnummer och lösenord i exempel-filen, men för mig fungerar det utan problem.

Kan du logga in med Personlig Kod via Swedbanks mobilapp? Uppkommer detta fel ibland eller hela tiden?

Du kan prova att leta upp följande på rad 227 i swedbankJson.php:

$output = $this->getRequest('profile/');

Och ersätt den med:

$output = $this->getRequest('profile/');
var_dump($output);

Kör exempel-filen igen och lägg upp svaret här.

Dubbelkolla så att du inte har något personnummer eller lösenord med i svaret.

CirruZZ commented 10 years ago

Kom precis på en sak, när du skrev...

Kan du logga in med Personlig Kod via Swedbanks mobilapp?

Jag har ju faktiskt inte Swedbank utan Färsa & Frosa Sparbank, och när jag tänker efter så är det en annan app, som ser lika dan ut. https://play.google.com/store/apps/details?id=se.sparbankerna.mobilbank&hl=sv I övrigt så är det swedbank som gäller för mig när det är internetbanken, även mobilversionen av internetbanken.

Kan det vara så att det är en annan server för Sparbankerna men i övrigt lika?

walle89 commented 10 years ago

Eftersom jag inte har någon tillgång till Färsa & Frosa Sparbank (eller någon annan sparbank med partnerskap med Swedbank för den delen) att tillgå till så kan jag inte säga något om vad som skiljer Swedbanks API mot Sparbankernas. De hör bara lika varandra eftersom som du säger delar mycket infrastruktur. Men faktum är att Sparbankerna är självständiga och fungerar som separata banker.

Men om du kan göra modifikationen ovan och skicka mig resultatet så tittar jag gärna på det och tar reda på vad som är fel. Eller så väntar du tills dess att jag har lagt in ett verktyg för debugging.

CirruZZ commented 10 years ago
object(stdClass)#5 (3) {
  ["hasSwedbankProfile"]=>
  bool(false)
  ["hasSavingbankProfile"]=>
  bool(true)
  ["banks"]=>
  array(0) {
  }
}
Swedbank-fel: NÃ¥got med fel med profilsidan. (Err #5)
#0 /var/www/_bank/json/SwedbankJson/swedbankJson.php(185): SwedbankJson->profile()
#1 /var/www/_bank/json/SwedbankJson/swedbankJson.php(166): SwedbankJson->login()
#2 /var/www/_bank/json/SwedbankJson/swedbankJson.php(129): SwedbankJson->swedbankInit()
#3 /var/www/_bank/json/SwedbankJson/example.php(11): SwedbankJson->accountList()
#4 {main}

Nä det förståss, det förstår jag också att du inte kan veta det. Finns det något jag kan göra för att ta reda på hur det ligger till? Jag har inte användt WireShark tidigare men det kanske kan vara en väg? Hur har du gjort för att lista ut API't?

walle89 commented 10 years ago

Humm, jag antar "hasSavingbankProfile" betyder att du har någon sparbank så som Färsa & Frosa Sparbank. Då har jag åtminstone ett sätt att skicka ett vettigt meddelande.

Jag använder mig av Charels Proxy med tillhörande SSL-cert för att kunna avlyssna trafiken medan jag använde appen. Om du vill kan du installera Charels Proxy och prova det i 30 dagar och följa denna guide för att avlyssna trafiken på en Andorid:

http://jaanus.com/blog/2012/02/12/debugging-http-on-an-android-phone-or-tablet-with-charles-proxy-for-fun-and-profit/

Själv sitter jag på en iPhone och använde mig av denna guide: http://blog.cloudfour.com/using-charles-proxy-to-examine-ios-apps/

Det är egentligen samma guide, skillnaden är hu man lägger in SSL certifikatet samt hur man ställer in HTTP-proxy:n.

CirruZZ commented 10 years ago

Toppen, ska kolla på det. Får se om jag får ut något vettigt.

CirruZZ commented 10 years ago

Så nu har jag det igång, kan se trafiken från appen, frågan är då vad jag skall leta efter.

walle89 commented 10 years ago

Utmärkt. Dock så tror jag att det är bäst att jag kan får dump-filen eller åtminstone får skärmdumpar på transaktionerna. Efterlikna de skärmdumpar som jag har gjort nedan och sudda ut de uppgifter som du inte vill ska synas. Jag har ringat in de delar du ska trycka på för att få ut den vy som jag behöver för request respektive response.

Gör så att du

  1. Spela in stegen du gör för att starta appen, logga in med personlig kod, väljer konto för att se transaktioner och sedan logga ut.
  2. Gör skärmdumpar på det sätt jag beskrev ovan, gör output-rutan så stor som möjligt så att du får med det mesta av anropet. Ta med alla anrop som görs mot Host auth.api.swedbank.se. Strunta i alla andra anrop inklusive stat.swedbank.se.
  3. Lägga in bilderna i denna github tråd eller ladda upp till dropbox/webbserver/FTP och ge mig länkar till filerna. Gå in på http://wallmander.net/kontakta-mig/ och skicka mig länkarna via den vägen.

Tanken är alltså dels följa vilka anrop som görs samt hur anropen ser ut i både frågan och svaret.

Mall för request request_swedbank

Mall för response response_swedbank

CirruZZ commented 10 years ago

Svarade dig via kontaktsidan som du kanske såg...

walle89 commented 10 years ago

Precis. Tack för det! När jag får tid över i helgen så kommer jag och sitta med det.

CirruZZ commented 10 years ago

Bara nyfiken om du hittade något uppenbart?

walle89 commented 10 years ago

Jag har lyckas lista ut vad som styr om man vill in på Swedbank eller en Sparbank. Förenklat så är det auth-nyckeleln och hur den genereras som styr vilken bank man ska in på. Jag vet hur nycklarna ska genereras, men behöver dels skriva om en del kod för att det ska fungera och dels att samla in alla typer av ID-nummer som varje bank har. Man kan inte skapa dessa ID-nummer enligt en formel (vad jag vet) och därför måste jag manuellt samla in alla ID:n genom att i appen välja en bank, prova att logga in så att ID-numret fångas upp och sedan byta bank för att återupprepa processen. Beroende på om jag kan automatisera processen så kommer det att ta åtminstone en helg för att anpassa koden och bygga upp ett register, även om man kan till och börja med att lägga in två banker från början (dvs. Swedbank och Färsa & Frosa Sparbank).

CirruZZ commented 10 years ago

Lysande, vad kul! Ser fram emot att testa när det funkar....

CirruZZ commented 10 years ago

Nyfiken på om det finns något nytt att testa :-)

walle89 commented 10 years ago

Det är på G, har bara haft svårt med tid på sistone pga. jobb och förberedelse för flytt. Men det kommer.

CirruZZ commented 10 years ago

Absolut! Jag ska inte stresa.... Uppskattar att du tar dig tid och kollar på det över huvud taget. Tack!

davidtopnotch commented 10 years ago

Hej, jag är också intresserad av att få Sparbankerna att fungera. Någon nyhet i frågan?

walle89 commented 10 years ago

Tyvärr har jag inte lagt ned den tid som jag behöver för att göra nödvändiga förändringar för att det ska fungera.

Tills vidare kan man göra följande:

Sätt unitID till i klassfilen: sHyQguyrmHzdpVqz

och byt ut useragent mot: SavingbankMOBPrivateIOS/3.7.0_(iOS;_7.1)_Apple/iPhone5,2

Har själv inte provat, men det bör fungera.