Page 1 sur 1

dev. d'une passerelle OFX

Publié : 11 janvier 2010, 18:33
par yaubi
Bonjour,

Ce message s'adresse principalement à Cyril, développeur principal de cette merveilleuse application :)

Je suis en train de réaliser le prototype d'une passerelle OFX, permettant le téléchargement direct depuis les banques françaises ne le proposant pas déjà. Ca à l'air de fonctionner pour mes comptes au Crédit Agricole CMDS.

Pour l'instant, je ne renseigne que le champs "Serveur" avec l'url de ma passerelle, donc sans aucune authentification.

Comment sont utilisés les champs "Identifiant" et "Mot de passe" ? pour une éventuelle authentification HTTP (Basic ou Digest) ?

A quel moment les 3 autres champs ('Organisation", "ID institution" & "ID banque") interviennent-ils ?

Je n'ai pas trouvé les spécifications décrivant l'interconnexion : logiciel de compta <==> service d'export OFX. Un petit coup de pouce serait le bienvenue ! :)

Re: dev. d'une passerelle OFX

Publié : 11 janvier 2010, 20:14
par Angeman
En fait toutes les informations sont envoyées en clair dans une requête OFX via HTTP, l'authentification ne se fait pas via HTTP mais directement dans la requête.
Ca ressemble à ça :

Code : Tout sélectionner

OFXHEADER:100 
DATA:OFXSGML 
VERSION:102 
SECURITY:NONE 
ENCODING:USASCII 
CHARSET:1252 
COMPRESSION:NONE 
OLDFILEUID:NONE 
NEWFILEUID:NONE 

<OFX> 
<SIGNONMSGSRQV1> 
<SONRQ> 
<DTCLIENT>20100111 
<USERID>test 
<USERPASS>test 
<LANGUAGE>ENG 
<FI> 
<ORG>USAA 
<FID>24591 
</FI> 
<APPID>QWIN 
<APPVER>1500 
</SONRQ> 
</SIGNONMSGSRQV1> 
<BANKMSGSRQV1> 
<STMTTRNRQ> 
<TRNUID>AA15D735-2643-4C94-AE2F-882C9886B877 
<STMTRQ> 
<BANKACCTFROM> 
<BANKID>314074269 
<ACCTID>1234567890 
<ACCTTYPE>CHECKING 
</BANKACCTFROM> 
<INCTRAN> 
<DTSTART>19700101 
<INCLUDE>Y 
</INCTRAN> 
</STMTRQ> 
</STMTTRNRQ> 
</BANKMSGSRQV1> 
</OFX>
Et ensuite le serveur est censé renvoyé le fichier OFX avec les opérations.

Que fait la passerelle, elle se connecte puis lance automatiquement le lien de téléchargement du fichier OFX, c'est ça ?

Re: dev. d'une passerelle OFX

Publié : 11 janvier 2010, 23:47
par yaubi
Oui, c'est ça. Pour chaque requête OFX, la passerelle suit bêtement le chemin qu'on ferait avec un navigateur :
- récupération du cookie de session ;
- authentification avec login/mot de passe "truqué" (leur espèce de pavé numérique aléatoire à la c*n) ;
- choix d'une période de transactions ;
- téléchargement et transmission du fichier OFX tel que fournit par la banque.

Jusqu'à présent, je ne m'étais pas penché sur le format OFX en lui-même, mais si tu me dis qu'il comporte l'authentification (merci pour l'info) et certainement d'autres informations intéressantes, je vais y porter plus d'attention.

J'ai cependant une interrogation concernant le dé-doublonnage des transactions déjà importées. Comment se passe-t'il, du coté d'iCompta ? Mes exports OFX possèdent un attribut FITID, identifiant chaque transaction de manière unique. Je pensais qu'iCompta l'utilisait pour détecter les doublons d'import. Mais ça ne semble pas être le cas puisque, si je modifie l'intitulé d'une transaction, elle est importée de nouveaux par la suite.

Je pourrais faire en sorte que la passerelle ne choisissent que les dernières transactions, mais ça nécessite de conserver un état qui, il me semble, a plus sa place du coté du client que de la passerelle elle-même. Une idée ?

Re: dev. d'une passerelle OFX

Publié : 11 janvier 2010, 23:54
par Angeman
Bah pas la peine de t'embêter avec ça, je vais améliorer l'import en version 2 afin de gérer les opérations déjà importées notamment. Dans la version actuelle les opérations ne sont pas réimportées que si on n'a pas changé ni le nom ni la date ni le montant de l'opération téléchargée.

Re: dev. d'une passerelle OFX

Publié : 12 janvier 2010, 00:04
par yaubi
Ok, c'est ce que j'avais cru comprendre. Super si tu peux prendre en compte le FITID ou équivalent ! :) Du coup, du coté de la passerelle, je peux télécharger large (comme : depuis le début de l'année civile jusqu'à maintenant, pour peu que la banque le permette), sans risquer les doublons.