2010-06-28 10 views
7

He utilizado MS Money durante varios años y debido a mi "interés de codificación" sería genial saber por dónde empezar a aprender los conceptos básicos para la programación de dicha aplicación. Es mejor decirlo: no se trata de cómo diseñar y escribir una aplicación, sino de los "detalles bancarios". (Solo mostrar el monto de una cierta cuenta bancaria para el comienzo sería un objetivo agradable para mí).Acceso a la cuenta bancaria propia a través de la aplicación auto-escrita

Me gustaría hacerlo en C++ o Java, ya que estoy acostumbrado a estos idiomas.

¿Será "demasiado grande" para un proyecto de pasatiempo? No sé mucho sobre todos los problemas de seguridad, las interfaces/técnicas del servidor del banco, etc.

En primer lugar después de un "no", necesito una fuente confiable para aprender.

+8

Probablemente el mayor problema es obtener la cooperación de su banco. Es posible que no quieran que te conectes a su sistema (los bancos pueden ser muy conservadores con respecto a la seguridad) y pueden ver cualquier intento como un ataque. Sugeriría verificar qué acceso se le permitiría tener primero. –

+4

@David Thornley Puedes cambiar todos los "mays" por "testamentos" sin NINGUNA duda –

+0

@David Thornley Sí, pensé en eso, pero dado que mi banco ofrece un servicio en línea, espero que haya una forma de acceder a él sin violando cualquier licene/ley. – InsertNickHere

Respuesta

9

La mayoría de las aplicaciones con las que he trabajado se leen en un archivo exportado desde el sitio web del banco, lo que es relativamente sencillo.

Si ese es el camino que usted está buscando para bajar tendrá que escribir código para:

  • de sesión en el sitio Web del banco para descargar el archivo a través de HTTPS
  • o bien obtener las especificaciones para el archivo formato o técnicas de ingeniería inversa
  • Aplicar cualesquiera reglas de negocio que elija a los datos resultantes
+0

Pensé en analizar archivos que puedo exportar desde la cuenta en línea de mi banco. Pero he escrito mucho para "analizar algo", así que me salté eso. A pesar de eso, podría ser un buen comienzo para aprender algo sobre el tema de la conexión bancaria. – InsertNickHere

+0

@insertnickhere Creo que no vas a evitar algún tipo de análisis sintáctico. Aunque supongo que el banco tendrá al menos un formato que sea XML, como OFX. Y creo que la solución de Angelo-genovese es el enfoque que usan algunas aplicaciones financieras en algunos casos. Al menos parece que eso es lo que Quicken busca en algunas de mis cuentas, así que supongo que otros también lo harían. – nicerobot

+0

@nicerobot Comprueba esto, mi banco usa CSV. D'oh. ;-) – InsertNickHere

1

Creo que es un proyecto de pasatiempo bastante razonable; comience con un libro de contabilidad simple y luego puede agregar características.

Algunas cosas que haría para comenzar un proyecto de este tipo:

  • Decidir sobre un conjunto de características inicial. Un buen comienzo podría ser solo uno de los libros contables/cuentas, básicamente equilibrar un talonario de cheques. Haga esto lo suficientemente general como para que pueda tener varios.
  • Diseña un modelo de datos. ¿Qué campos tendrá su libro mayor? ¿Qué restricciones sobre los valores de cada uno?
  • Elija tecnologías. ¿En qué idioma quieres programar? ¿Cómo persistirás la información? ¿Qué GUI quieres? ¿Un cliente gordo como MS dinero o una aplicación web?

A partir de ahí, ¡redacte algunas notas de diseño si está justificado y comience a codificar!

+0

Nota: Acabo de notar la discusión anterior sobre la conexión a un banco en línea. Comenzaría con el simple libro de contabilidad que describí antes de intentar eso. Cuando esté listo, su banco probablemente usará un estándar de intercambio/api; con suerte, puede conectarse, por ejemplo. a un servicio web seguro. – Greg

+0

Harman Sí, esto no es nada que quiera hacer en unas pocas semanas. Al principio, quería ver si era posible. Gracias por tus consejos de todos modos. – InsertNickHere

0

No creo que muchos bancos (si los hay) proporcionan api.

línea presupuestarias aplicaciones en Suecia parecen depender ya sea en la exportación de las transacciones en algún formato Excel, o simplemente Tiene "marca de todos los transacations en el banksystem, ctrl-c luego Ctrl-V en un cuadro de texto", que es luego analiza.

+0

mint.com cuenta con acceso a todos los principales bancos de EE. UU. Usted les da las credenciales de su cuenta en línea que entregan inmediatamente al banco y obtienen un inicio de sesión de cuenta de "solo lectura". A continuación, eliminan las credenciales que proporcionó y usan las credenciales de "solo lectura" para actualizar sus métricas cada 24 horas. – Adam

+0

@Adam: genial, sería bueno tener eso aquí en Suecia –

1

Puede consultar OFX4J, una implementación de la especificación Open Financial Exchange, mencionada here y en un comentario de @nicerobot.

+0

Gracias, se ve bastante cerca de lo que necesito, pero en este momento no conozco los detalles, así que tengo que echar un vistazo más de cerca más adelante este día. – InsertNickHere

1

¿Está buscando algo mint.com -ish? Según entiendo de su política de seguridad, así es como lo hacen: les das las credenciales de tu cuenta en línea, que otorgan de inmediato al banco y obtienen un inicio de sesión de cuenta de "solo lectura". A continuación, eliminan las credenciales que proporcionó y usan las credenciales de "solo lectura" para actualizar sus métricas cada 24 horas.No sé cómo lo hacen o si tienen una relación especial con los bancos, pero es posible.

+0

Parece bastante interesante, tendré una mirada detallada más adelante. – InsertNickHere

1

La primera cosa que hay que recordar cuando se trata de interactuar mediante programación con un sitio web de banca sin autorización expresa por escrito del banco será muy probablemente una violación del acuerdo de uso del sitio web, y puede aterrizar en más problemas de lo que vale.

En segundo lugar, NO desea iniciar la programación 'de aprendizaje' al tratar de abordar algo tan masivo y sensible. No es que haya algún problema con el objetivo final, pero ese es un viaje de mil leguas y debe dar el primer paso.

Yo diría que empiece con un entorno de programación simple, como python o perl. Por lo que no tiene que preocuparse por los enlaces, las bibliotecas, la generación de códigos, etc. Acostúmbrese a lo básico de lo que quiere lograr funcionalmente, y vuelva a implementarlo en C++ o Java, que sería el siguiente paso.

Para comenzar centrándose en aprender la programación cliente-servidor.

construir un cliente, un servidor de escribir, aprender todo acerca de los zócalos, aprender todo acerca de la programación de TCP,

luego aprender acerca de Secure Socket Layers (SSL) y Transport Layer Security (TLS).

Una vez que haya hecho esto, intente cambiar a C++ o Java y vea si puede repetir el efecto.

Hay TONELADAS de tutoriales sobre estos temas.

Una vez que se haya acostumbrado a eso, conozca las herramientas y las bibliotecas que ya están disponibles para hacer las cosas más comunes. Por ejemplo, libcurl es ideal para crear clientes comunes de protocolos de aplicaciones de Internet (HTTP, HTTPS, FTP y similares).

Vea si puede crear un programa interactivo con el que pueda "iniciar sesión" usando su navegador web que genera material en XML y lo formatea usando hojas de estilo en cascada.

Esto debería llevarlo al mundo javascript, donde hay poderosas herramientas como jquery. Si los combina y los combina correctamente, descubrirá que el desarrollo puede ser muy divertido y bastante rápido.

:-)

Happy journeying.

+0

No se trata de aprender a programar. Hago esto por 10 InsertNickHere

Cuestiones relacionadas