问题标签 [emv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
smartcard - EMV 联系人发卡机构公钥验证
我在验证 EMV 联系人发卡机构公钥时遇到问题。文档说:“验证 RID、证书颁发机构公钥索引和证书序列号的串联是否有效。如果不是,则 SDA 失败。” 我将这些连接起来并将它们发送到 SHA1 函数以获得一个哈希值,该哈希值将与公钥的哈希值进行比较,并且我出现了比较错误;因为它们的值不相等。我误解了文件吗?
java - javax.smartcardio 读取所有智能卡
我必须阅读 MASTERCARD、VISA、VISA ELECTRON 等的主帐号 (PAN)。我写了这段代码,但它不起作用有人可以帮助我吗?
我不知道为什么它不起作用我的答案是
6985
是我在期待 PAN 时收到的错误。我究竟做错了什么?
nfc - 在请求 EMV 卡的 GPO 命令时出现解析器错误
我对 VISA 卡的 GET PROCESSING OPTIONS (GPO) 命令有一些问题。
以下是我对 VISA 申请的 SELECT 命令的回复:
我从中提取了以下 PDOL:9F66049F02069F37049F1A02
我不确定 tag 9F66
。
我的 GPO 命令如下所示:
但我得到一个解析器错误作为响应:
android - 通过 Android isoDep.transceive 成功“计算加密校验和”后,Google 钱包状态为“未知”
我仍在尝试模拟销售点 (POS) 系统并使用 Google 钱包完成交易。我在堆栈溢出方面得到了很好的答案。请参阅Android isoDep.transceive on Generate AC command always return 6D00 unsupported
即使 POS 和谷歌钱包的每一步通信都是成功的,但我无法通过谷歌钱包,上面写着“状态未知,请与收银员核实付款是否成功”。
我只需要谷歌钱包来声明“状态待定”,就像在麦当劳(在美国)一样。我实际上不在乎整个交易是否会处理并清除我的银行。
我是事务处理的新手,似乎我错过了一个基本步骤。任何想法将不胜感激。
以下是成功的步骤。
“PayPass – M/Chip 交易处理”规范规定“在完成 COMPUTE CRYPTOGRAPHIC CHECKSUM 响应后,PayPass 卡可以从 PayPass 读卡器中取出。”
所以我假设 POS 到 Google Wallet 的通信已经完成,但 Google Wallet 似乎需要更多信息。
android - 获取处理选项在 Visa 非接触式卡上意外返回 6984 代码
我正在使用 Java 代码和 Android NFC 功能与非接触式支付卡进行通信。
我的代码适用于一堆 Visa 和 MasterCard,但我遇到了与 Visa 卡的特定子类别有关的问题。
以下是我采取的步骤和遇到的问题:
- 我使用 PPSE 识别应用程序
- 选择应用程序 AID (A0000000031010) 文件控制信息包括我构建的 PDOL
- 发送一个获取处理选项
在这一点上,我得到一个 6984 返回代码 - 据我所知 - 转换为超过 PIN 尝试限制,但我无法看到这是来自 GPO 的合法响应。
鉴于没有进行身份验证尝试,我也不希望看到这一点,而且这是非接触式交易。这是否表明该卡已在其他地方失效?
我应该注意到我正在编写的代码执行从卡访问 Track2 数据所需的最少步骤,它不是试图重新创建完整的 EMV 内核处理。
谢谢
payment - 获取处理选项的问题
我A0000000032010
在 Visa 非接触式卡上选择了应用程序 ( )
当我发出 GPO 命令时:
我得到错误:
有谁知道是什么原因造成的?
android - 使用三星 Galaxy S4 从 Visa Paywave NFC 启用卡读取信用卡数据的 APDU 命令
我正在使用上述代码使用三星 Galaxy s4 读取 VisaPayWave NFC 卡详细信息(持卡人姓名、有效期、卡号等)。我得到的输出是 [106,-126]。我认为我使用的 APDU 命令不正确。请提出正确的命令。
emv - 更新 EMV 卡参数
有谁知道如何通过发布者脚本的发布后命令更新标签 5F24(应用程序到期日期),如果我可以获得可以使用发布者脚本更新的标签列表,这将是很大的帮助。
提前致谢。
smartcard - 获取处理选项给出 0x6984
我正在尝试读取 AFL - EMV 借记卡中的应用程序文件定位器。对于一些卡片,当我通过 apdu 时,比如 -
0x80, 0xA8, 0x00, 0x00, 0x02, 0x83, 0x00 ,0x00 (with no PDOL )
在这里它给出 0x900 但对于某些卡它给出 0x6984
对于那些给出0x6984的卡,我尝试发送apdu 喜欢-
0x80, 0xA8, 0x00, 0x00, 0x04, 0x83, 0x02, 0x08,0x26 , 0x00;
具有 PDOL 值,在这里它工作正常并根据需要提供 AFL。
按照标准说: -
6.5.8.3 Data Field Sent in the Command Message
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
我的理解是 - PDOL 首先由 ICC 提供,然后我们在 GPO 命令中使用它。
我很困惑为什么有些卡在没有 PDOL 的情况下可以正常工作,或者有些卡不能。PDOL 在 GPO 中的意义是什么,我如何从 ICC 获取 PDOL 以及我们如何在 GPO 命令中使用它?
c - 如何重置 EMV 预付借记卡离线资金
我已经按照“Visa Contactless Payment Specification v2.0.2”中的说明完成了qVSCD(Quick Visa Smart Debit/Credit)的开发路径,并成功地用C语言实现了所有步骤。但是,他们没有具体说明如何实现离线计数器的重置,仅在 8.3 节中简要提及。任何对此有任何技术知识的人?
我想为预付借记卡开发一个 EMV 应用程序,可以在其中使用和添加到他们的离线余额(通过充值)。我正在为 Bitel 终端开发 C 语言。谢谢。