EMV NFC Paycard Enrollment
3.0.1
Java 库用于从 NFC EMV 信用卡读取和提取公共数据。
Android 示例应用程序可在 Play 商店中获取。
首先,您需要创建一个自定义提供商以与 NFC EMV 信用卡交换 APDU(示例见此处)。
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 问题跟踪器报告错误和功能请求。
也欢迎分叉和请求请求。
米约·朱利安
版权所有 2020 米洛·朱利安。
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守许可,否则您不得使用本作品。您可以在许可证文件中获取许可证的副本,或者从以下位置获取:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件均按“原样”分发,不带任何明示或暗示的保证或条件。请参阅许可证,了解许可证下管理权限和限制的特定语言。