Perpustakaan Java digunakan untuk membaca dan mengekstrak data publik dari kartu kredit NFC EMV.
Aplikasi sampel Android tersedia di Play Store.
Pertama, Anda perlu membuat Penyedia khusus untuk menukar APDU dengan kartu kredit NFC EMV (contoh di sini).
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)
}
}
Setelah itu, buat instance parser dan baca kartunya.
// 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 ();
objek kartu berisi semua data yang dibaca (Bantuan, nomor kartu, tanggal kadaluwarsa, jenis kartu, riwayat transaksi)
Untuk Android, Anda dapat membuat penyedia dengan kelas 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 '
}
Anda dapat mengunduh perpustakaan ini di Maven Central atau di tab rilis Github
Jika Anda tidak menggunakan Maven atau alat manajemen ketergantungan lainnya yang dapat memahami repositori Maven, daftar di bawah ini adalah daftar yang Anda perlukan untuk menjalankan EMV-NFC-Paycard-Enrollment.
Untuk membangun peluncuran proyek:
mvn clean install
Silakan laporkan bug dan permintaan fitur ke pelacak masalah GitHub.
Permintaan Garpu dan Tarik juga diterima.
Millau Julien
Hak Cipta 2020 Millau Julien.
Berlisensi di bawah Lisensi Apache, Versi 2.0 ("Lisensi"); Anda tidak boleh menggunakan karya ini kecuali sesuai dengan Lisensi. Anda dapat memperoleh salinan Lisensi dalam file LISENSI, atau di:
http://www.apache.org/licenses/LICENSE-2.0
Kecuali diwajibkan oleh undang-undang yang berlaku atau disetujui secara tertulis, perangkat lunak yang didistribusikan berdasarkan Lisensi didistribusikan berdasarkan DASAR "APA ADANYA", TANPA JAMINAN ATAU KETENTUAN DALAM BENTUK APAPUN, baik tersurat maupun tersirat. Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan batasan berdasarkan Lisensi.