我使用Java代码和Android NFC功能与非接触式支付卡进行通信。
我的代码与一堆Visa和万事达卡一起使用,但我遇到了Visa卡特定子类别的问题。
以下是我采取的步骤和遇到的问题:
此时我收到6984返回代码 - 据我所知 - 转换为PIN Try Limit超出但我无法看到这是来自GPO的合法回复。
我也不希望看到这一点,因为那里没有认证尝试,而且它是非接触式交易。这是否表明该卡已在其他地方失效?
我应该注意到,我编写的代码执行从卡访问Track2数据所需的最小步骤,而不是尝试重新创建完整的EMV内核处理。
由于
答案 0 :(得分:3)
由于EMV应用程序具有Visa AID,我认为它是为非接触式内核3构建的。内核3规范定义了如果卡返回状态代码6984
以响应GET PROCESSING OPTIONS命令,读者应使用另一个界面(例如EMV联系人界面)与卡通信。
答案 1 :(得分:2)
我遇到了你上面提到的同样的问题。 就我而言,它的Visa Blink卡。
=> 80 A8 00 00 02 83 02 00
<= 67 00
=> 80 A8 00 00 04 83 02 00 00 00
<= 69 84
我发现该卡不喜欢短GPO命令(即使短命令与万事达卡一起正常工作)。所以解决方案是使用长GPO命令。
1 /使用更长的GPO命令,没有国家/地区代码:
80A8000023832180000000000000000000000000000000000000000000000000000000000000000000
2 /使用更好的GPO命令并传递国家代码:
80A80000238321A0000000000000000001000000000000084000000000000840070203008017337000
在任何一种情况下(无论是否传递国家代码)都可以。
答案 2 :(得分:0)
就在 2 天前,我遇到了与此类似的问题。我正在研究客户使用的 VISA 非接触式卡,我也会从 GPO 获得 6984,但我的问题是通过向卡发送特定的国家和货币代码来解决的。
我觉得很烦人,你会得到“尝试另一个界面”,这基本上意味着联系或磁条(有效),而且你无法得到提示你发送错误的货币和国家代码到非接触式卡。或者至少在我看来是这样。