2

我成功获得了生成命令响应

[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

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

应用程序密码不正确。

任何帮助,将不胜感激。

4

1 回答 1

2

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

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

由于在 Amex 测试用例中使用 Amount 30.00,该卡从 Amex Global 集检测为“AEIPS 20 TEST CARD”。

使用“交易数据”重新计算 ARQC 得到的值与您的卡响应中的值相同 - 0x9F26 =“d2715ae1b83027db”。所以,确认了。

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

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

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

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

于 2015-07-27T20:23:03.583 回答