2010-06-28 11 views
7

Użyłem MS Money od kilku lat i ze względu na moje "zainteresowanie kodowaniem" byłoby świetnie wiedzieć, od czego zacząć uczyć się podstaw programowania takiego wniosku. Lepiej powiedzieć: nie chodzi o to, jak zaprojektować i napisać aplikację, o "szczegółach bankowych". (Samo wyświetlenie kwoty pewnego rachunku bankowego na początku byłoby dla mnie przyjemnym celem).Dostęp do własnego konta bankowego za pomocą samodzielnie napisanej aplikacji

Chciałbym zrobić to w C++ lub Javie, ponieważ jestem przyzwyczajony do tych języków.

Czy będzie "zbyt duży" dla projektu hobby? Nie wiem zbyt wiele o problemach bezpieczeństwa, interfejsie serwera bankowego/technice itp.

Na pierwszym miejscu po "nie" potrzebuję niezawodnego źródła do nauki.

+8

Prawdopodobnie największym problemem jest uzyskanie współpracy z banku. Mogą nie chcieć, abyś podłączył się do ich systemu (banki mogą być bardzo konserwatywne w zakresie bezpieczeństwa) i mogą postrzegać każdą próbę jako atak. Sugeruję sprawdzenie, jaki dostęp uzyskasz jako pierwszy. –

+4

@ David Thornley Możesz zmienić wszystkie "maj" dla "testamentów" bez żadnej wątpliwości –

+0

@ David Thornley Tak Myślałem o tym, ale ponieważ mój bank oferuje usługę online mam nadzieję, że jest sposób na uzyskanie dostępu do niej bez naruszenie jakiegokolwiek prawa/licencji. – InsertNickHere

Odpowiedz

9

Większość aplikacji, z którymi pracowałem, czyta się w pliku wyeksportowanym ze strony internetowej banku, co jest stosunkowo proste.

Jeśli to droga szukasz zejść trzeba napisać kod:

  • Logowanie do strony banku, aby pobrać plik za pośrednictwem protokołu HTTPS
  • albo dostać specyfikacje dla pliku Format lub inżynierii wstecznej to
  • Zastosuj cokolwiek biznes zasady wyboru do otrzymanych danych
+0

Myślałem o analizie plików, które mogę eksportować z mojego konta online. Ale napisałem do wielu rzeczy "parsuj coś", więc pominąłem to. Mimo to może być dobrym początkiem do nauki czegoś na temat połączenia z bankiem. – InsertNickHere

+0

@insertnickhere Myślę, że nie unikniesz jakiejś analizy. Chociaż domyślam się, że bank będzie miał przynajmniej jeden format XML, taki jak OFX. I wierzę, że rozwiązanie firmy angelo-genovese jest podejściem, które niektóre aplikacje finansowe wykorzystują. Przynajmniej wydaje mi się, że tak właśnie dzieje się Quicken na kilka moich kont, więc przypuszczam, że inni też. – nicerobot

+0

@nicerobot Zaznacz to, mój bank używa pliku CSV. D'oh. ;-) – InsertNickHere

1

Myślę, że jego całkiem rozsądny projekt hobby; zacznij od prostej księgi, a następnie możesz dodać funkcje.

Kilka rzeczy chciałbym zrobić, aby rozpocząć taki projekt:

  • zdecydować się na początkowym zestawem funkcji. Dobrym początkiem może być tylko jedna z ksiąg/kont - w zasadzie równoważenie książeczki czekowej. Uczyń to na tyle ogólnym, że możesz mieć kilka.
  • Zaprojektuj model danych. Jakie pola zawiera księga? Jakie ograniczenia wartości każdego?
  • Wybierz technologie. W jakim języku chcesz programować? Jak utrzymasz te dane? Jakiego GUI potrzebujesz - grubego klienta, takiego jak pieniądze MS lub aplikacja internetowa?

Stamtąd zapisz niektóre notatki projektowe, jeśli są uzasadnione i rozpocznij kodowanie!

+0

Uwaga: Właśnie zauważyłem powyższą dyskusję dotyczącą połączenia z bankiem internetowym. Zacznę od prostej księgi opisanej przed próbą. Kiedy będziesz gotowy, Twój bank najprawdopodobniej użyje standardu wymiany/interfejsu API - przy odrobinie szczęścia wystarczy podłączyć np. do bezpiecznej usługi internetowej. – Greg

+0

Harman Tak, to jest nic, co chcę zrobić za kilka tygodni. Na początku chciałem sprawdzić, czy jest w ogóle możliwe. Dzięki za porady. – InsertNickHere

0

Nie sądzę, aby wiele banków (jeśli w ogóle) zapewniało api.

Online budżet aplikacje w Szwecji wydaje się polegać albo na eksporcie transakcji w jakimś formacie Excel lub po prostu masz „Oznacz wszystkie transacations w banksystem, CTRL-C następnie ctrl-v w polu tekstowym”, który jest następnie analizuje.

+0

mint.com oferuje dostęp do wszystkich głównych banków w USA. Podajesz im swoje dane do konta online, które natychmiast przekazują bankowi i uzyskują login "tylko do odczytu". Następnie odrzucają podane poświadczenia i używają poświadczeń "tylko do odczytu", aby aktualizować swoje dane co 24 godziny. – Adam

+0

@Adam: fajnie, byłoby miło mieć to tutaj w Szwecji –

1

Możesz zajrzeć do OFX4J, implementacji specyfikacji, wspomnianej pod numerem here oraz w komentarzu do @nicerobot.

+0

Dzięki, wygląda całkiem blisko do tego, czego potrzebuję, ale w tej chwili nie wiem o szczegółach, więc muszę się bliżej przyjrzeć później tego dnia. – InsertNickHere

1

Szukasz czegoś mint.com -ish? Z mojego rozumienia polityki bezpieczeństwa wynika, jak to robią: Dajesz im swoje poświadczenia konta online, które natychmiast przekazują bankowi i odzyskują login "tylko do odczytu". Następnie odrzucają podane poświadczenia i używają poświadczeń "tylko do odczytu", aby aktualizować swoje dane co 24 godziny.Nie wiem, jak to robią lub czy mają specjalne relacje z bankami, ale jest to możliwe.

+0

Wygląda całkiem interesująco, będę miał później szczegółowy wygląd. – InsertNickHere

1

Pierwszą rzeczą, o której należy pamiętać podczas próby interakcji programowej z bankową stroną internetową bez wyraźnej pisemnej zgody banku, będzie NAJBARDZIEJ PRAWDOPODOBNE złamanie umowy użytkowania witryny i może spowodować większe kłopoty niż jest to warte.

Po drugie, NIE CHCESZ rozpocząć "uczenia się" programowania, próbując zająć się czymś masywnym i wrażliwym. Nie chodzi o to, że coś jest nie tak z ostatecznym celem, ale jest to podróż tysiąca lig i musisz zrobić pierwszy krok.

Powiedziałbym zacząć od prostego środowiska programistycznego, takiego jak python lub perl. Powód, nie musisz się martwić o łączenie, biblioteki, generowanie kodu itp. Przyzwyczaić się do podstaw tego, co chcesz osiągnąć funkcjonalnie, ich ponowne wdrożenie w języku C++ lub Java byłoby następnym krokiem.

Przede wszystkim należy skoncentrować się na nauce programowania klient-serwer.

Napisz klienta, napisać serwer, dowiedzieć się wszystkiego o gniazdach, dowiedzieć się wszystkiego na temat programowania TCP

następnie poznawanie Secure Socket Layers (SSL) oraz Transport Layer Security (TLS).

Po wykonaniu tej czynności spróbuj przejść do C++ lub Java i sprawdź, czy możesz powtórzyć efekt.

Istnieje wiele tutoriali na te tematy.

Kiedy już przyzwyczaisz się do tego, dowiedz się, jakie narzędzia i biblioteki są już dostępne do robienia najpowszechniejszych czynności. Na przykład libcurl doskonale nadaje się do tworzenia popularnych klientów protokołów aplikacji internetowych (HTTP, HTTPS, FTP i tym podobne).

Sprawdź, czy możesz utworzyć interaktywny program, do którego możesz się zalogować, używając przeglądarki internetowej, która wyprowadza pliki w formacie XML i formatuje je przy użyciu kaskadowych arkuszy stylów.

To powinno doprowadzić cię do świata javascript, w którym istnieją potężne narzędzia, takie jak jquery. Jeśli właściwie je zmiksujesz i dopasujesz, odkryjesz, że rozwój może być świetny i szybki.

:-)

Szczęśliwa podróż.

+0

Nie chodzi o uczenie się programowania. Robię to dla 10 InsertNickHere

Powiązane problemy