java - EMV - SELECT 没有得到 PDOL
问题描述
好的,所以我选择了“1PAY.SYS.DDF01”PSE 并得到了这个响应:(“00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31”)“61 1E”,所以我做了获取响应命令并得到此输出: ("00 C0 00 00 1E") ["6F 1C 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 0A 88 01 01 5F 2D 04 68 65 65 6E" ]
然后我转到 READ RECORDS 命令(使用 sfi=1)并得到这个:(“00 B2 01 0C 00”)并得到响应:“6C 1E”所以我又这样做了:(“00 B2 01 0C 1E") 得到响应: ["70 1C 61 1A 4F 07 A0 00 00 00 03 10 10 50 0C 56 69 73 61 20 50 72 65 70 61 69 64 87 01 01"]
之后,当我尝试读取第二条记录的记录时:(“00 B2 02 0C 00”)我得到了这个响应:“6A 83”(找不到记录)
现在我尝试选择我们得到的帮助文件:“61 25”(用这个文件做一个 GET RESPONSE)然后我做了 GET RESPONSE:(“00 C0 00 00 25”)并得到了这个:[“6F 23 84” 07 A0 00 00 00 03 10 10 A5 18 50 0C 56 69 73 61 20 50 72 65 70 61 69 64 87 01 01 5F 2D 04 68 65 65 6E"] [TLV 解码 AID] 3
如您所见,我没有任何PDOL,有人可以帮助我吗?
解决方案
PDOL is optional in ADF selection response data (see EMV 4.3 Book 1, Table 45).
In this case an empty tag '83' is sent in GET PROCESSING OPTIONS
, citing EMV 4.3 Book 3, section 6.5.8.3:
The data field of the command message is a data object coded according to the PDOL provided by the ICC, as defined in section 5.4, and is introduced by the tag '83'. When the data object list is not provided by the ICC, the terminal sets the length field of the template to zero. Otherwise, the length field of the template is the total length of the value fields of the data objects transmitted to the ICC.
GET PROCESSING OPTIONS
is then: 80 A8 00 00 02 83 00 00
推荐阅读
- c# - HttpClient.SendAsync 调用导致服务端多次触发,返回内部服务器错误
- python - 使用子进程获取 print() 实时输出
- neo4j - Cypher:返回集合中所有节点的节点关系和属性
- c# - Unity 错误:层 ID 无效。请使用图层的唯一ID(与列表中的索引不同)
- bash - bash 对列进行求和和分组
- r - 随机数生成功能不起作用
- android - 如何用键和值解析json?
- python - Python Timedelta64 将天数转换为月数
- r - 我如何在 R 中将函数名称与 for 一起使用
- java - 使用 CSVParser 解析多个大型 csv 文件的有效方法