Answer:
If you want to reject a card with no ODA (Offline Data Authentication) capabilities, you can get ODA capabilities from the tag DFEF7F.
DFEF7F: 88 or 82: ODA performed and success
DFEF7F: not present or other value: Card not request ODA or ODA failed
Please refer to the definition of DFEF7F in detail below:
Bit 7 – ODA/Online performed: 1 performed, 0 Not performed
Bit 6 – RFU
Bit 5 – RFU
Bit 4 – RFU
Bit 3 – fDDA performed: 1 performed, 0 Not performed
Bit 2 – fDDA failed: 1 Failed, 0 Succeed
Bit 1 – SDA performed: 1 performed, 0 Not performed
Bit 0 – SDA failed: 1 Failed, 0 Succeed
The VISA kernel in our reader is VCPS(Online + offline) + Online ODA function.
For Transit transactions, if you want to get Online request + Online ODA.
Here is the recommended config if you do a Visa transit transaction using the current Visa Kenel:
TTQ: 27 00 40 00 (Online ODA support)
9F1B: 00 00 00 00 (Can go online)
For the transaction result:
Online request + DFEF7F(88 0r 82): Online ODA performed and success
Any result + DFEF7F(00) or DFEF7F not present: The Card doesn't request Online ODA, this kind of card does not meet the requirement for transit transactions.
Declined + DFEF7F (Present and Not 88 or 82 or 00): ODA performed and failed.
For TTQ in transaction results, because our reader will go online, we will always set Byte 2 bit 8=1 whatever the setting is.
In Transit Spec, this bit can be 0 or 1. In VCPS TTQ byte 2 bit 7-8 is dynamic, not static.