2014-07-08 4 views
5
byte[] APDUCommand = { 
      (byte) 0x00, // CLA Class   
      (byte) 0xA4, // INS Instruction  
      (byte) 0x04, // P1 Parameter 1 
      (byte) 0x00, // P2 Parameter 2 
      (byte) 0x0A, // Length 
      0x63,0x64,0x63,0x00,0x00,0x00,0x00,0x32,0x32,0x31 // AID 
     }; 


    Intent intent = getIntent(); 
    Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
    IsoDep iso = IsoDep.get(tag);   
    iso.connect(); 

    byte[] result = iso.transceive(APDUCommand); 

मैं VisaPayWave एनएफसी कार्ड के विवरण (कार्ड धारक का नाम, समाप्ति तिथि, कार्ड नंबर आदि) सैमसंग गैलेक्सी का उपयोग कर पढ़ने के लिए ऊपर दिए गए कोड का उपयोग कर रहा एस 4। मुझे जो उत्पादन मिल रहा है वह है [106, -126]। मुझे लगता है कि मैं उपयोग कर रहा हूँ APDU कमांड सही नहीं है। कृपया सही आदेश का सुझाव दें।APDU आदेश वीजा payWave NFC सक्षम कार्ड से क्रेडिट कार्ड डेटा सैमसंग गैलेक्सी एस 4 का उपयोग कर पढ़ने के लिए

उत्तर

2

अपने APDU आदेश परिभाषा

byte[] APDUCommand = { 
     (byte) 0x00, // CLA Class   
     (byte) 0xA4, // INS Instruction  
     (byte) 0x04, // P1 Parameter 1 
     (byte) 0x00, // P2 Parameter 2 
     (byte) 0x07, // Length 
     (byte) 0xA0,0x00,0x00,0x00,0x03,0x10,0x10 // AID 
    }; 
+0

यह काम नहीं कर रहा है। क्या कोई सुझाव दे सकता है कि मैं क्या कर रहा हूं। क्या मुझे सभी डेटा पढ़ने के लिए एकाधिक एपीडीयू कमांड चाहिए? यदि हां कृपया मुझे एल्गोरिदम या कोड बताएं। – user3816152

+0

यह आदेश पहला कदम है। सबसे पहले आपको एप्लेट चुनने की जरूरत है ताकि आप डेटा पढ़ सकें। आपको यह सुनिश्चित करना होगा कि एप्लेट सक्रिय है। – lletami

1

बदलें lletami के रूप में उत्तर दिया, वीजा payWave आम तौर पर चिकित्सा A0000000031010 साथ चयन है। तो आप एपीडीयू

00 A4 04 00 07 A0000000031010 00 

पेवेव एप्लिकेशन का चयन करने के लिए उपयोग कर सकते हैं।

संपर्क ईएमवी भुगतान कार्ड पर, आप भी PPSE (निकटता भुगतान प्रणाली पर्यावरण) को चुन सकते हैं एक उपलब्ध आवेदनों की (और उनके एड्स) सूची प्राप्त करने के:

00 A4 04 00 0E 325041592E5359532E4444463031 00 

ईएमवी भुगतान आवेदन का चयन केवल है पहला कदम। पठनीय क्रेडिट कार्ड डेटा प्राप्त करने के लिए आपको कई और आदेश जारी करने होंगे (this answer देखें)।

उदाहरण के लिए, आप एक प्रोसेसिंग विकल्प कमांड जारी कर सकते हैं (उदाहरण के लिए this answer, this answer और this answer देखें)।

और/या आप ज्ञात प्राथमिक फ़ाइलों से डेटा प्राप्त करने के लिए रीड रिकॉर्ड्स कमांड जारी कर सकते हैं। जैसे

00 B2 01 0C 00 

एफई 1 का रिकॉर्ड 1 पढ़ने के लिए,

00 B2 02 0C 00 

एफई 1 का रिकार्ड 2 पढ़ने के लिए, या

00 B2 01 14 00 

एफई 2 का रिकॉर्ड 1 पढ़ने के लिए, आदि

संभावित आदेश और डेटा संरचनाओं के बारे में जानने के लिए आप http://www.emvco.com/ से भुगतान प्रणाली के लिए ईएमवी विनिर्देश प्राप्त कर सकते हैं।

0

आपका प्रतिक्रिया कोड [106, -126] किसी भी हस्ताक्षरित मूल्यों को लागू करने के बजाय हेक्साडेसिमल के रूप में बेहतर प्रतिनिधित्व किया जाता है।

यह वास्तव में 6 ए 82 होगा - जो एपीडीयू प्रतिक्रिया कोड के एसडब्ल्यू 1 और एसडब्ल्यू 2 बनाता है। 6 ए 82 "गलत पैरामीटर (पी) पी 1 पी 2 से मेल खाता है; फ़ाइल नहीं मिली"। अधिक जानकारी के लिए ईएमवी बुक 1 देखें। अर्थात। "0x63,0x64,0x63,0x00,0x00,0x00,0x00,0x32,0x32,0x31" कार्ड पर नहीं मिला था - लेकिन "0xA0,0x00,0x00,0x00,0x03,0x10,0x10" होना चाहिए।

जैसा कि लेटामी कहते हैं, आपके एपीडीयू कमांड को 'संपीड़ित संख्यात्मक' (जैसा कि ईएमवी बुक 1 में वर्णित है) का उपयोग करके एआईडी समेत पुनर्निर्माण की आवश्यकता है, जो बाइनरी कोडेड दशमलव के समान ही है।

संबंधित मुद्दे