关于 CID中的PIN Try Limit exceeded

实际应用中,遇到这样一个情况,上送55域到后台,后台报ARQC校验错.仔细查找发现,在GAC阶段送给卡片的TVR和上送到后台的TVR不一样. 因为TVR本身要参与ARQC的运算,所以两处送的不一样,会导致卡片计算的ARQC和后台计算的ARQC结果不一样.

 

再说说TVR不一致的原因,是因为在第一次GAC时,卡片返回的CID,bit2置位, 终端程序在处理时,根据这个置位,把TVR中的”PIN Try Limitexceeded”位也置上了. 接着终端请求联机,上送55域. 这样就导致在cdol1中送给卡片的TVR和联机上送到后台TVR不一样.

 

终端不应该根据CID的这个位去置位TVR,CID中的这个位只是卡片告诉终端一个”情况”, 和TVR没有关系.

 

正确的处理,TVR中的”PIN Try Limitexceeded”位,只能在以下几种情况置位.

一是对终端发的verify命令,卡片返回6983或6984, 表示PIN锁定.

二是对终端发的verify命令,卡片返回63C0, 表示剩余PIN尝试次数为0.

你可能感兴趣的:(cid,PIN,终端,ARQC)