Java-Bibliothek zum Lesen und Extrahieren öffentlicher Daten von NFC-EMV-Kreditkarten.
Android-Beispiel-App im Play Store verfügbar.
Zuerst müssen Sie einen benutzerdefinierten Anbieter erstellen, um APDU mit einer NFC-EMV-Kreditkarte auszutauschen (Beispiel hier).
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)
}
}
Erstellen Sie anschließend eine Instanz eines Parsers und lesen Sie die Karte.
// 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 ();
Kartenobjekt enthält alle gelesenen Daten (Hilfe, Kartennummer, Ablaufdatum, Kartentyp, Transaktionsverlauf)
Für Android können Sie einen Anbieter mit der IsoDep-Klasse erstellen:
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 '
}
Sie können diese Bibliothek auf Maven Central oder im Github-Release-Tab herunterladen
Wenn Sie Maven oder ein anderes Abhängigkeitsmanagement-Tool nicht verwenden, das Maven-Repositorys verstehen kann, finden Sie in der folgenden Liste, was Sie zum Ausführen von EMV-NFC-Paycard-Enrollment benötigen.
So erstellen Sie den Projektstart:
mvn clean install
Bitte melden Sie Fehler und Funktionswünsche an den GitHub Issue Tracker.
Forks und Pull Requests sind ebenfalls willkommen.
Millau Julien
Copyright 2020 Millau Julien.
Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen dieses Werk nur in Übereinstimmung mit der Lizenz verwenden. Eine Kopie der Lizenz erhalten Sie in der Datei LIZENZ oder unter:
http://www.apache.org/licenses/LICENSE-2.0
Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, wird die im Rahmen der Lizenz vertriebene Software „WIE BESEHEN“ und OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Die spezifische Sprache, die die Berechtigungen und Einschränkungen im Rahmen der Lizenz regelt, finden Sie in der Lizenz.