Получите доступ к собственному банковскому счету через собственное приложение

Я использую MS Money уже несколько лет, и из-за моего "интереса к программированию" было бы здорово узнать, с чего начать изучение основ программирования такого приложения. Проще говоря: не о том, как разработать и написать приложение, а о "банковских реквизитах". (Для меня было бы приятным просто показать сумму определенного банковского счета для начала).

Я хотел бы сделать это на C++ или Java, так как я привык к этим языкам.

Будет ли он "слишком большим" для хобби-проекта? Я не очень разбираюсь во всех вопросах безопасности, интерфейсах / технике банковского сервера и т. Д.

На первом месте после "нет" мне нужен надежный источник для обучения.

6 ответов

Решение

Большинство приложений, с которыми я работал, читаются в файле, экспортированном с веб-сайта банка, что относительно просто.

Если вы идете по этой дороге, вам нужно написать код:

  • Авторизуйтесь на сайте банка, чтобы скачать файл через HTTPS
  • Либо получите спецификации для формата файла, либо перепроектируйте его
  • Примените любые бизнес-правила, которые вы выбираете к полученным данным

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

Во-вторых, вы НЕ хотите начинать "учиться" программированию, пытаясь заняться чем-то таким масштабным и чувствительным. Не то, чтобы с конечной целью было что-то не так, но это путешествие в тысячу лиг, и вам нужно сделать свой первый шаг.

Я бы сказал, начните с простой среды программирования, такой как Python или Perl. Причина в том, что вам не нужно беспокоиться о связывании, библиотеках, генерации кода и т. Д. Привыкайте к основам того, чего вы хотите достичь функционально, они переопределяют, что в C++ или Java будет следующим шагом.

Начнем с изучения клиент-серверного программирования.

Написать клиент, написать сервер, узнать все о сокетах, узнать все о программировании TCP,

затем изучение уровней защищенных сокетов (SSL) и безопасности транспортного уровня (TLS).

После этого попробуйте переключиться на C++ или Java и посмотрите, сможете ли вы повторить эффект.

Есть множество учебников по этим темам.

Когда вы привыкнете к этому, узнайте, какие инструменты и библиотеки уже доступны для выполнения самых распространенных задач. Например, libcurl отлично подходит для создания общих клиентов протокола интернет-приложений (HTTP, HTTPS, FTP и т. П.).

Посмотрите, можете ли вы создать интерактивную программу, в которую можно "войти" с помощью веб-браузера, который выводит данные в формате XML и форматирует их с помощью каскадных таблиц стилей.

Это должно привести вас в мир JavaScript, где есть мощные инструменты, такие как jquery. Если вы смешаете и сопоставите их правильно, вы обнаружите, что разработка может быть ОЧЕНЬ веселой и довольно быстрой.

:-)

Счастливого пути.

Вы можете взглянуть на OFX4J, реализацию спецификации Open Financial Exchange, упомянутой здесь и в комментарии @nicerobot.

Вы ищете что-то mint.com-ish? Исходя из моего понимания их политики безопасности, они так и делают: вы предоставляете им свои учетные данные в Интернете, которые они немедленно передают в банк, и возвращаете учетную запись "только для чтения". Затем они отбрасывают предоставленные вами учетные данные и используют учетные данные "только для чтения", чтобы обновлять ваши показатели каждые 24 часа. Я не знаю, как они это делают или имеют ли они особые отношения с банками, но это возможно.

Я думаю, что это вполне разумный хобби проект; Начните с простой книги, а затем вы можете добавлять функции.

Несколько вещей, которые я хотел бы сделать, чтобы начать такой проект:

  • Выберите начальный набор функций. Хорошим началом может стать только одна из бухгалтерских книг / учетных записей - в основном баланс чековой книжки. Сделайте это достаточно общим, чтобы их было несколько.
  • Разработать модель данных. Какие поля будут в вашей книге? Какие ограничения на значения у каждого?
  • Выбирай технологии. На каком языке вы хотите программировать? Как вы будете сохранять данные? Какой графический интерфейс вы хотите - толстый клиент, такой как MS money или веб-приложение?

Оттуда, если это оправдано, напишите некоторые заметки о дизайне и начните писать код!

Я не думаю, что многие (если таковые имеются) банки предоставляют API.

Бюджетные онлайн-приложения в Швеции, кажется, полагаются либо на экспорт транзакций в каком-либо формате Excel, либо на то, что вы просто "помечаете все транзакции в банковской системе, ctrl-c, затем ctrl-v в текстовом поле", который затем анализируется.

Другие вопросы по тегам