Biblioteca Java usada para ler e extrair dados públicos de cartões de crédito NFC EMV.
Exemplo de aplicativo Android disponível na Play Store.
Primeiro você precisa criar um provedor personalizado para trocar APDU por um cartão de crédito NFC EMV (exemplo aqui).
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)
}
}
Depois disso, crie uma instância do analisador e leia o cartão.
// 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 ();
objeto cartão contém todos os dados lidos (Auxílio, número do cartão, data de validade, tipo de cartão, histórico de transações)
Para Android, você pode criar um provedor com a 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 '
}
Você pode baixar esta biblioteca no Maven central ou na guia de lançamento do Github
Se você não estiver usando o Maven ou alguma outra ferramenta de gerenciamento de dependências que possa entender os repositórios Maven, a lista abaixo é o que você precisa para executar o EMV-NFC-Paycard-Enrollment.
Para construir o lançamento do projeto:
mvn clean install
Por favor, reporte bugs e solicitações de recursos ao rastreador de problemas do GitHub.
Forks e solicitações pull também são bem-vindos.
Millau Julien
Direitos autorais 2020 Millau Julien.
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar esta obra exceto em conformidade com a Licença. Você pode obter uma cópia da Licença no arquivo LICENSE ou em:
http://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.