J'essayais d'utiliser http://www.jongsma.org/gc/scripts/ofx-ba.py pour récupérer les informations de mon compte bancaire de wachovia. N'ayant pas de chance, j'ai décidé que j'essaierais de construire manuellement quelques données de demande en utilisant this examplePrenez quelques données ofx avec python
Donc, j'ai ce fichier que je veux utiliser comme données de requête. Appelons-le req.ofxsgml:
FXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX>
<SIGNONMSGSRQV1>
<SONRQ>
<DTCLIENT>20071015021529.000[-8:PST]
<USERID>TheNameIuseForOnlineBanking
<USERPASS>MySecretPassword
<LANGUAGE>ENG
<FI>
<ORG>Wachovia
<FID>4309
</FI>
<APPID>Money
<APPVER>1700
</SONRQ>
</SIGNONMSGSRQV1>
<BANKMSGSRQV1>
<STMTTRNRQ>
<TRNUID>438BD6F4-2106-4C88-8DE5-7625915A2FC0
<STMTRQ>
<BANKACCTFROM>
<BANKID>061000227
<ACCTID>101555555555
<ACCTTYPE>CHECKING
</BANKACCTFROM>
<INCTRAN>
<INCLUDE>Y
</INCTRAN>
</STMTRQ>
</STMTTRNRQ>
</BANKMSGSRQV1>
</OFX>
Puis, en python, je tente:
>>> import urllib2
>>> query = open('req.ofxsgml').read()
>>> request = urllib2.Request('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&pagename=PFM',
query,
{ "Content-type": "application/x-ofx",
"Accept": "*/*, application/x-ofx"
})
>>> f = urllib2.urlopen(request)
Cette commande me donne 500 et this traceback. Je me demande ce qui ne va pas avec ma demande.
visitant l'URL sans données et aucun souci pour les en-têtes,
>>> f = urllib2.urlopen('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&pagename=PFM')
donne la même chose que la visite directement that url,
HTTPError: HTTP Error 403: <BODY><H1>Request not allowed</H1></BODY>.
Ceci est assez évident mais juste une observation. Tout sur le sujet semble être assez démodé. Espérant écrire un simple module python ofx à open source. Peut-être qu'il y a déjà quelque chose de développé que je n'ai pas réussi à trouver?
EDIT - Si je fais une correspondance à plat des informations ci-dessus:
d = {'ACCTID': '10555555',
'ACCTTYPE': 'CHECKING',
'APPID': 'Money',
'APPVER': '1700',
'BANKID': '061000227',
'DTCLIENT': '20071015021529.000[-8:PST]',
'FID': '4309',
'INCLUDE': 'Y',
'LANGUAGE': 'ENG',
'ORG': 'Wachovia',
'TRNUID': 'I18BD6F4-2006-4C88-8DE5-7625915A2FC0',
'USERID': 'm48m40',
'USERPASS': '12397'}
puis urlencode et faire la demande avec ce que les données
query=urllib.urlencode(d)
request = urllib2.Request('https://pfmpw.wachovia.com/cgi-forte/fortecgi?servicename=ofx&pagename=PFM',
query,
{ "Content-type": "application/x-ofx",
"Accept": "*/*, application/x-ofx"
})
f = urllib2.urlopen(request)
HTTP Error 403: <BODY><H1>Request not allowed</H1></BODY>
Peut-être que cela a à voir avec les fins de ligne, moi en utilisant Linux et obtenir/n où peut-être j'ai besoin/r/n ... nope ce n'est pas le seul problème si c'était un. –