Lecture Carte Eid

Posté par Anonyme le 11/6/2006 18:23:39
Bonjour,

Y a t'il une personne qui à déja implementé la lecture des données d'une carte d'identité Electronique ?

Si oui serait possible d'obtenir une pal copie du projet ?

j'ai ce code recu par un membre, mais il me retourne des erreurs et je ne sais pourquoi.
J'ai testé avec le code VB fourni par le ministere cela fonctionne il lit les données de ma carte en VB. Mais impossible de lire en WinDev

// erreur
1. librairie non initialisée BEID_E_NOT_INITIALIZED = Library not initialized
2. GetValue n'est pas un objet autoamtion

// Le CODE
//Declaration global du projet
// Constante des codes d'erreurs

CONSTANTE
BEID_OK=0
BEID_E_SYSTEM=1
BEID_E_PCSC=2
BEID_E_CARD=3
BEID_E_BAD_PARAM=4
BEID_E_INTERNAL=5
BEID_E_INVALID_HANDLE=6
BEID_E_INSUFFICIENT_BUFFER=7
BEID_E_COMM_ERROR=8
BEID_E_TIMEOUT=9
BEID_E_UNKNOWN_CARD=10
BEID_E_KEYPAD_CANCELLED=11
BEID_E_KEYPAD_TIMEOUT=12
BEID_E_KEYPAD_PIN_MISMATCH=13
BEID_E_KEYPAD_MSG_TOO_LONG=14
BEID_E_INVALID_PIN_LENGTH=15
BEID_E_VERIFICATION=16
BEID_E_NOT_INITIALIZED=17
BEID_E_UNKNOWN=18
BEID_E_UNSUPPORTED_FUNCTION=19
BEID_E_INCORRECT_VERSION=20
BEID_E_INVALID_ROOT_CERT=21

FIN

//Declaration global de la fenêtre
chCardID est une chaîne sur 12
chChipID est une chaîne sur 16
chStreet est une chaîne // UTF-8 a convertir en Ascii
chHouseNumber est une chaîne
chPhoto est une chaîne
eHandle est un entier

eBirthDate est une chaine
eBirthDateLocation est une chaine // UTF-8 a convertir en Ascii
eNationality est une chaine sur 3
oBEID est un objet Automation dynamique
oTStatus est un objet Automation dynamique
oIdData est un objet Automation dynamique
oTCheck est un objet Automation dynamique
oAddress est un objet Automation dynamique
oPicture est un objet Automation dynamique

/ /Code de clic un bouton
QUAND EXCEPTION DANS
oBEID = allouer un objet Automation "EIDLibCtrl.EIDLib"
oTStatus = oBEID>>Init("",0,0,&eHandle)
// - Traitement des erreurs
SI oTStatus>>GetGeneral() <> BEID_OK ALORS
Erreur(GeneralCode(oTStatus>>GetGeneral()))
FIN

// - Lecture bloc 1
oTStatus = oBEID>>GetID(oIdData,oTCheck)
// - Traitement des erreurs
SI oTStatus>>GetGeneral() <> BEID_OK ALORS
Erreur(GeneralCode(oTStatus>>GetGeneral()))
...
FIN

// - Lecture bloc 2
oTStatus = oBEID>>GetAddress(oAddress,oTCheck)
// - Traitement des erreurs
SI oTStatus>>GetGeneral() <> BEID_OK ALORS
Erreur(GeneralCode(oTStatus>>GetGeneral()))
...
FIN

// - Lecture bloc 3
oTStatus = oBEID>>GetPicture(oPicture,oTCheck)
// - Traitement des erreurs
SI oTStatus>>GetGeneral() <> BEID_OK ALORS
Erreur(GeneralCode(oTStatus>>GetGeneral()))
...
FIN

// - Récupération des données

chCardID = oIdData>>GetValue("CardNumber")
chChipID = oIdData>>GetValue("ChipNumber")

chStreet = oAddress>>GetValue("Street")
chHouseNumber = oAddress>>GetValue("HouseNumber")
...

// - Pour la photo
chPhoto = SysRep(srProfile) + "\eid-cache\(unknown)_BELPIC_" + chChipID +
"_4035"

FAIRE
Erreur(ExceptionInfo(errComplet))
ExceptionActive()
FIN

oBEID>>Exit()
libérer oTStatus
libérer oTCheck
libérer oIdData
libérer oAddress
libérer oPicture
libérer oBEID



// Procedure appelée en cas d'erreur

PROCEDURE GeneralCode(Num_Erreur)
SELON Num_Erreur

CAS BEID_OK : RENVOYER "Function succeeded"
CAS BEID_E_SYSTEM : RENVOYER "Unknown system error (see system error code)"
CAS BEID_E_PCSC : RENVOYER "Unknown PC/SC error (see PC/SC errorcode)"
CAS BEID_E_CARD : RENVOYER "Unknown card error (see card status word)"
CAS BEID_E_BAD_PARAM : RENVOYER "Invalid parameter (NULL pointer, out of bound, etc.)"
CAS BEID_E_INTERNAL : RENVOYER "An internal consistency check failed"
CAS BEID_E_INVALID_HANDLE : RENVOYER "The supplied handle was invalid"
CAS BEID_E_INSUFFICIENT_BUFFER : RENVOYER "The data buffer to receive returned data is too small for the returned data"
CAS BEID_E_COMM_ERROR : RENVOYER "An internal communications error has been detected"
CAS BEID_E_TIMEOUT : RENVOYER "A specified timeout value has expired"
CAS BEID_E_UNKNOWN_CARD : RENVOYER "Unknown card"
CAS BEID_E_KEYPAD_CANCELLED : RENVOYER "Input on pinpad cancelled"
CAS BEID_E_KEYPAD_TIMEOUT : RENVOYER "Timout returned from pinpad"
CAS BEID_E_KEYPAD_PIN_MISMATCH : RENVOYER "The two PINs did not match"
CAS BEID_E_KEYPAD_MSG_TOO_LONG : RENVOYER "Message too long on pinpad"
CAS BEID_E_INVALID_PIN_LENGTH : RENVOYER "Invalid PIN length"
CAS BEID_E_VERIFICATION : RENVOYER "Error in a signature verification or a certificate validation"
CAS BEID_E_NOT_INITIALIZED : RENVOYER "Library not initialized"
CAS BEID_E_UNKNOWN : RENVOYER "An internal error has been detected, but the source is unknown"
CAS BEID_E_UNSUPPORTED_FUNCTION : RENVOYER "Function is not supported"
CAS BEID_E_INCORRECT_VERSION : RENVOYER "Incorrect library version"
CAS BEID_E_INVALID_ROOT_CERT : RENVOYER "Wrong Root Certificate"
AUTRE CAS : RENVOYER "Unknow code : " +Num_Erreur

FIN

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=4185&post_id=17229