【问题标题】:Unable to generate correct application cryptogram无法生成正确的应用程序密码
【发布时间】:2015-07-24 12:26:19
【问题描述】:

我已成功获得 Generate Command 响应

[9F02 06   (Amount, authorized, numeric)]:   000000003000 
[9F03 06   (Amount, other, numeric)]:        000000000000 
[9F1A 02   (Terminal country code)]:         0826 
[95 05     (Terminal verification results)]: 0000000000
[5F2A 02   (Transaction currency code)]:     0826 
[9A 03     (Transaction date)]:              150724 (2015-05-28)
[9C 01     (Transaction type)]:              00 
[9F37 04   (Unpredictable number)]:          12345678

命令是

80 AE 4000 1D 000000003000 000000000000 0826 0000000000 0826 150724 00 12345678 00

响应成功

8012800008d2715ae1b83027db06020103a0b0009000

Cryptogram Information Data : 00
Application Transaction Counter : 0008
Application Cryptogram : d2715ae1b83027db
Issuer Application Data : 06020103a0b000

一切都很好,但是每当我在测试环境中执行事务时,我都会得到

应用程序密码不正确。

任何帮助将不胜感激。

【问题讨论】:

  • 您没有告诉您使用的是哪个卡/卡品牌。由于这种不同的“密钥推导方法”,“密钥推导数据”和“交易数据”应该用于密码计算。简单来说,支付领域中使用了几种 ARQC/ARPC 算法。我希望您在谈论测试卡,并且您的测试环境知道正确的 UDK 或主密钥 (MK) 来检查 Cryptogram。
  • @iso8583.infosupport 我在测试环境中使用 AMex 卡。但我没有使用任何键
  • 测试描述是否指定了要使用的交易日期?如果是,那么为什么评论中有 9AF3 == 150724 和日期(2015-05-28)?

标签: smartcard apdu emv


【解决方案1】:

首先,在您的数据样本中,打包 YYMMDD 格式的“交易日期”与人类可读格式 (YYYY-MM-DD) 的值不同。日期不同。

如果您发送了不正确的交易数据或与此 ARQC 无关的交易数据,您将无法在主机环境中进行密码验证。

由于在 Amex 测试用例中使用了 Amount 30.00,因此检测到该卡 作为 Amex Global 的“AEIPS 20 测试卡”。

使用“交易数据”重新计算 ARQC 给了我同样的结果 在您的卡响应中的值 - 0x9F26 = "d2715ae1b83027db"。所以,它是 确认。

在这种情况下,ARPC 将是“3784BAE0B266DF17”。

经过认证的测试环境或 Amex 测试系统 (ATS) 本身可以为您提供 ARQC/ARPC 重新计算的详细信息。确定测试环境是否可以验证您的卡品牌。

问题通常出现在开发人员错误地打包用于外部测试主机验证的财务消息和交易数据中。 (如您最初的请求。)

对从卡、终端到主机系统的交易进行完整跟踪,您将了解数据错位的位置。

【讨论】:

  • 他们向我展示了根据我的密码“d2715ae1b83027db”重新计算的密码“2C 36 CA 56 E1 35 BB DC”。如果我使用他们的密码,他们会验证请求,但我尽力生成与他们相同的密码,但失败了。你能推荐一些东西吗
猜你喜欢
  • 1970-01-01
  • 2016-05-08
  • 2016-07-17
  • 1970-01-01
  • 2021-10-07
  • 2012-04-11
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多