这对我来说有点奇怪......我的研究表明,对于 VISA,该应用程序将始终可用,但对于万事达卡,这不是强制性的......
无论如何,这是我发送给读卡器以选择该应用程序的命令:
// OP CL P1 P2 LN DATA------------------------------------- EL
//select command 00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00
NSString* str= @"1PAY.SYS.DDF01";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
int datalength = data.length;
NSMutableData *selectPSECommand = [[NSMutableData alloc] init];
[selectPSECommand appendBytes:"\x00" length:1]; //command class
[selectPSECommand appendBytes:"\xA4" length:1]; //APDU_INSTRUCTION_SELECT_FILE
[selectPSECommand appendBytes:"\x04" length:1]; //select file by name
[selectPSECommand appendBytes:"\x00" length:1]; //First or only occurrence of file
[selectPSECommand appendBytes:&datalength length:1]; //data length
[selectPSECommand appendData:data]; //the data we are sending
[selectPSECommand appendBytes:"\x00" length:1]; //expected response length. here it is 0. We are only selecting a file.
代码示例适用于 Objective C。
将您发送的数据与我发送的数据进行比较,看看是否一致。与此同时,我将研究通过 AID 列表运行。
希望能帮助到你。埃兹弗拉格