Biblioteca Java utilizada para leer y extraer datos públicos de tarjetas de crédito NFC EMV.
Aplicación de muestra de Android disponible en Play Store.
Primero debe crear un proveedor personalizado para intercambiar APDU con una tarjeta de crédito NFC EMV (ejemplo aquí).
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)
}
}
Después de eso, cree una instancia de un analizador y lea la tarjeta.
// 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 ();
El objeto de la tarjeta contiene todos los datos leídos (Ayuda, número de tarjeta, fecha de vencimiento, tipo de tarjeta, historial de transacciones)
Para Android, puedes crear un proveedor con la clase 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 '
}
Puede descargar esta biblioteca en Maven central o en la pestaña de lanzamiento de Github
Si no está utilizando Maven o alguna otra herramienta de administración de dependencias que pueda comprender los repositorios de Maven, la siguiente lista es lo que necesita para ejecutar EMV-NFC-Paycard-Enrollment.
Para construir el lanzamiento del proyecto:
mvn clean install
Informe errores y solicitudes de funciones al rastreador de problemas de GitHub.
Las bifurcaciones y las solicitudes de extracción también son bienvenidas.
Julien Millau
Copyright 2020 Millau Julien.
Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"); no puede utilizar este trabajo excepto de conformidad con la Licencia. Puede obtener una copia de la Licencia en el archivo LICENCIA, o en:
http://www.apache.org/licenses/LICENSE-2.0
A menos que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para conocer el idioma específico que rige los permisos y limitaciones de la Licencia.