Bibliothèque Java utilisée pour lire et extraire les données publiques des cartes de crédit NFC EMV.
Exemple d'application Android disponible sur Play Store.
Vous devez d’abord créer un fournisseur personnalisé pour échanger des APDU avec une carte de crédit NFC EMV (exemple ici).
public class YourProvider implements IProvider {
@ Override
public byte [] transceive ( final byte [] pCommand ) {
// implement this
}
@ Override
public byte [] getAt () {
// implement this to get card ATR (Answer To Reset) or ATS (Answer To Select)
}
}
Après cela, créez une instance d'analyseur et lisez la carte.
// Create provider
IProvider provider = new YourProvider ();
// Define config
Config config = EmvTemplate . Config ()
. setContactLess ( true ) // Enable contact less reading (default: true)
. setReadAllAids ( true ) // Read all aids in card (default: true)
. setReadTransactions ( true ) // Read all transactions (default: true)
. setReadCplc ( false ) // Read and extract CPCLC data (default: false)
. setRemoveDefaultParsers ( false ) // Remove default parsers for GeldKarte and EmvCard (default: false)
. setReadAt ( true ) // Read and extract ATR/ATS and description
;
// Create Parser
EmvTemplate parser = EmvTemplate . Builder () //
. setProvider ( provider ) // Define provider
. setConfig ( config ) // Define config
//.setTerminal(terminal) (optional) you can define a custom terminal implementation to create APDU
. build ();
// Read card
EMVCard card = parser . readEmvCard ();
l'objet carte contient toutes les données lues (Aide, numéro de carte, date d'expiration, type de carte, historique des transactions)
Pour Android, vous pouvez créer un fournisseur avec la classe IsoDep :
public class Provider implements IProvider {
private IsoDep mTagCom ;
@ Override
public byte [] transceive ( final byte [] pCommand ) throws CommunicationException {
byte [] response ;
try {
// send command to emv card
response = mTagCom . transceive ( pCommand );
} catch ( IOException e ) {
throw new CommunicationException ( e . getMessage ());
}
return response ;
}
@ Override
public byte [] getAt () {
// For NFC-A
return mTagCom . getHistoricalBytes ();
// For NFC-B
// return mTagCom.getHiLayerResponse();
}
public void setmTagCom ( final IsoDep mTagCom ) {
this . mTagCom = mTagCom ;
}
}
< dependency >
< groupId >com.github.devnied.emvnfccard</ groupId >
< artifactId >library</ artifactId >
< version >3.0.1</ version >
</ dependency >
dependencies {
compile ' com.github.devnied.emvnfccard:library:3.0.1 '
}
Vous pouvez télécharger cette bibliothèque sur Maven Central ou dans l'onglet version de Github
Si vous n'utilisez pas Maven ou un autre outil de gestion des dépendances capable de comprendre les référentiels Maven, la liste ci-dessous contient ce dont vous avez besoin pour exécuter EMV-NFC-Paycard-Enrollment.
Pour construire le lancement du projet :
mvn clean install
Veuillez signaler les bogues et les demandes de fonctionnalités au système de suivi des problèmes GitHub.
Les Forks et les Pull Requests sont également les bienvenus.
Millau Julien
Copyright 2020 Millau Julien.
Sous licence Apache, version 2.0 (la « Licence » ); vous ne pouvez pas utiliser cette œuvre sauf en conformité avec la licence. Vous pouvez obtenir une copie de la Licence dans le fichier LICENSE, ou à :
http://www.apache.org/licenses/LICENSE-2.0
Sauf disposition contraire de la loi applicable ou accord écrit, le logiciel distribué sous la licence est distribué « TEL QUEL », SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Consultez la licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la licence.