Библиотека Java, используемая для чтения и извлечения общедоступных данных с кредитных карт NFC EMV.
Пример приложения для Android доступен в магазине Play.
Сначала вам необходимо создать специального поставщика для обмена APDU на кредитную карту NFC EMV (пример здесь).
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)
}
}
После этого создайте экземпляр парсера и прочитайте карту.
// 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 ();
Объект карты содержит все считанные данные (помощь, номер карты, срок действия, тип карты, история транзакций)
Для Android вы можете создать провайдера с классом 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 '
}
Вы можете скачать эту библиотеку в центре Maven или на вкладке выпуска Github.
Если вы не используете Maven или какой-либо другой инструмент управления зависимостями, который может понимать репозитории Maven, приведенный ниже список — это то, что вам нужно для запуска EMV-NFC-Paycard-Enrollment.
Для сборки запуска проекта:
mvn clean install
Сообщайте об ошибках и просьбах о новых функциях в систему отслеживания проблем GitHub.
Форки и запросы на включение также приветствуются.
Мийо Жюльен
Copyright 2020 Мийо Жюльен.
Лицензируется по лицензии Apache версии 2.0 («Лицензия»); вы не можете использовать эту работу, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии в файле LICENSE или по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если это не требуется действующим законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. Лицензию для определения конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.