我们有代码来查询来自各种EMV TLV的值。 但是,在PED序列号的情况下,标签的规格" 9F1E"在 http://www.emvlab.org/emvtags/ 有: -
名称说明源格式模板标签长度P / C接口 设备(IFD)序列号分配的唯一和永久序列号 到制造商终端的IFD 8 9F1E 8原语
但是上面给出了8的限制,而我们的VeriFone PED有9个长的SN。
所以示例代码依赖于标签" 9F1E"无法检索全长。
int GetPPSerialNumber()
{
int rc = -1;
rc = GetTLV("9F1E", &resultCharArray);
return rc;
}
在上面,编写GetTLV()来获取标记arg并将值填充到char数组。
有没有开发人员找到一个很好的方法来检索完整的9?
答案 0 :(得分:3)
你是正确的 - 这里有一个不匹配。 TLV的好处在于,您并不需要一个规范来告诉您该值的长度。你的GetTLV()本身就强加了这个限制;显而易见的解决办法就是放松一下。
我们实际上甚至没有查看TLV解析级别上记录的长度。每个标签都映射到BL中的一个关联实体(有时多于一个,这要归功于他们自己的非接触路由的方案),我们可以选择我们想要对那些实施长度限制的实体。