我成功获得了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
一切都很好,但每当我在测试环境中执行交易时,我都会
应用程序密码错误。
任何帮助都将不胜感激。
答案 0 :(得分:2)
首先在您的数据样本"交易日期"打包的YYMMDD格式与人类可读格式(YYYY-MM-DD)中的值不同。日期不同。
如果您发送了与此ARQC无关的错误交易数据或交易数据,您将无法在主机环境中验证密码。
由于在Amex测试用例中使用了金额30.00,因此检测到了卡片 as" AEIPS 20 TEST CARD"来自Amex Global set。
使用"交易数据重新计算ARQC"给了我同样的 卡片响应中的值 - 0x9F26 =" d2715ae1b83027db"。所以,它是 确认。
在这种情况下ARPC将是" 3784BAE0B266DF17"。
认证测试环境或Amex测试系统(ATS)本身可以为您提供ARQC / ARPC重新计算详细信息。当然,测试环境可以验证您的卡品牌。
通常在财务消息和交易数据中发布,其中开发人员错误地打包以进行外部测试主机验证。 (与原始请求一样。)
从卡片,终端到主机系统全程跟踪交易情况,您将获得数据错位的位置。