مكتبة 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 Central أو في علامة تبويب إصدار Github
إذا كنت لا تستخدم Maven أو أي أداة أخرى لإدارة التبعية يمكنها فهم مستودعات Maven، فإن القائمة أدناه هي ما تحتاجه لتشغيل EMV-NFC-Paycard-Enrollment.
لبناء إطلاق المشروع:
mvn clean install
يرجى الإبلاغ عن الأخطاء وطلبات الميزات إلى متتبع مشكلات GitHub.
نرحب أيضًا بطلبات الشوك والسحب.
ميلو جوليان
حقوق الطبع والنشر 2020 ميلاو جوليان.
مرخص بموجب ترخيص Apache، الإصدار 2.0 ("الترخيص")؛ لا يجوز لك استخدام هذا العمل إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص في ملف الترخيص، أو على:
http://www.apache.org/licenses/LICENSE-2.0
ما لم يكن ذلك مطلوبًا بموجب القانون المعمول به أو تم الاتفاق عليه كتابيًا، يتم توزيع البرامج الموزعة بموجب الترخيص على أساس "كما هي"، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص لمعرفة الأذونات والقيود التي تحكم اللغة المحددة بموجب الترخيص.