交易不成功后,主机是不是应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)?

Posted

技术标签:

【中文标题】交易不成功后,主机是不是应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)?【英文标题】:Does host should increase ATC (Application Transaction Counter) (EMV tag 9F36) after unsuccessful transaction?交易不成功后,主机是否应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)? 【发布时间】:2017-10-28 02:48:24 【问题描述】:

主机在交易成功后更新ATC,此时ICC和主机DB中的计数器相同。

但是,主机是否应该在交易不成功后(例如在使用不正确 PIN 的交易后)增加/更新自己数据库中的 ATC,因为 ICC 上的计数器增加了? 或者主机不应该在它之后更改 ATC。

我没有在任何 EMV 书籍中找到答案。

【问题讨论】:

【参考方案1】:

主机系统应在确信已从芯片收到真实的 ARQC 时,将其芯片 ATC 的内部跟踪更新为从芯片收到的新值。

请记住,来自芯片的 ATC 始终是正确的值,因此,如果您作为主机收到带有意外 ATC 值的消息,您可以确定来自芯片,即使实际交易因其他原因而失败(即资金不足),您应该始终将主机跟踪值更新为从卡收到的值。

ATC 反映的是在整个生命周期内针对芯片发起的交易数量(通过 GET PROCESSING OPTIONS 调用),而不是成功交易的数量。

【讨论】:

【参考方案2】:

emv 交易的一大目标是停止重放交易。使用授权请求密码验证交易的真实性,ATC 是其生成的一个组成部分,显然是在其验证中。

现在,每次您发出获取处理选项时,芯片都会增加 ATC。因此,当您在线收到一笔交易时,预计该交易的 ATC 始终高于您在发卡行的最后一个 ATC。如果它与卡的发卡行存储的相同或更低,则交易可能是重放。

【讨论】:

一些处理系统还会检查处理系统的ICC和DB中的ATC之间的差异。例如,差异不大于 10。因此,如果处理系统在没有成功事务后未更新自己的 DB 中的 ATC,则可能是 ICC 上的 ATC 更大(例如超过 10)数据库和主机中的 ATC(处理系统)将拒绝交易。那么,主机是否应该在交易不成功后更新自己数据库中的 ATC 呢? 对我来说,这听起来更像是对一般行为的自定义,您需要根据业务需要进行处理。在正常情况下,只要事务在通过 ARQC 验证后的 ATC 高于 DB 中的 ATC,就会更新 ATC。

以上是关于交易不成功后,主机是不是应该增加 ATC(应用程序交易计数器)(EMV 标签 9F36)?的主要内容,如果未能解决你的问题,请参考以下文章

第三篇Zabbix快速开始配置

仅授权信用卡交易是不是应该与数据库中的授权捕获交易分开存储?

在不成功的 Braintree 交易期间返回参数/信用卡信息

GraphQL 检查区块链上是不是存在交易

FXCG时机有多重要?

比特币合约交易怎么玩 新手应该注意什么