我读到here,说EVM卡将签署一些交易数据。
我想用我的卡,手机来完成此操作,并验证结果上的签名是否正确。
首先,我发出了以下命令(“ request APDU”):
00:A4:04:00:0E:32:50:41:59:2E:53:59:53:2E:44:44:46:30:31:00
“应用程序ID”之一是:
A00000038410
因此,我发出了以下命令(“选择付款应用程序”):
00:A4:04:00:07:A0:00:00:00:03:10:10:00
并返回此“处理选项数据对象列表(PDOL)”:
9F66049F02069F37045F2A02
我阅读了here的解码方式,因为在任何地方都找不到官方规格:
- 9F6604-标签9f 66表示终端交易限定符
- 9F0206-标签9f 02代表授权金额。 PDOL列表中必须添加授权的数量,并将其编码为6小时字节。
- 9F3704-标签9f 37代表不可预测的数字,因此将其编码为4个字节并将其添加到列表中
和here如何对此进行解码:
- 5F2A02-TX货币代码
我知道下一步是运行“获取处理选项”,但这是我遇到的问题。我尝试过:
- 80:A8:00:00:02:83:00:00
- 80:A8:00:00:12:83:10:01:02:03:04:05:06:07:08:01:02:03:04:05:06:07:08:00
- 80:A8:00:00:12:83:10:F3:20:40:00:00:00:00:01:00:00:04:04:06:03:05:08:00
- 80:A8:00:00:02:83:10:F3:20:40:00:00:00:00:01:00:00:04:04:06:03:05:08:00
所有人都返回了6D:00的结果(指令代码未编程或无效)。
我尝试查看“ emv book 3”和“ emv book 4”,但似乎都没有包含相关信息。
接下来我需要做什么才能进行交易,签名并检查结果?
答案 0 :(得分:0)
您的GPO命令需要提供卡所要求的PDOL值。请求的标签是:
Uri video = Uri.parse(response.body().getVideo());
mProgressBar.setVisibility(View.GONE);
mVideoView.setVisibility(View.VISIBLE);
mVideoView.setZOrderOnTop(true);
mVideoView.setVideoURI(video);
因此,这些命令需要以相同的顺序提供它们,并具有预期的长度。
假设您要发送以下示例值:
9F66 - 4 bytes
9F02 - 6 bytes
9F37 - 4 bytes
5F2A - 2 bytes
您的GPO命令将如下所示:
9F66: 11223344
9F02: 112233445566
9F37: 11223344
5F2A: 1122
PDOL数据为80A800001283101122334411223344556611223344112200
的地方。
希望这会有所帮助
答案 1 :(得分:0)