小编iso*_*ort的帖子

ISO8583消息解码

我只是ISO 8583消息格式的初学者.

所以,我已经在WIKI和Code Project上搜索了相关信息

所以据我了解的是......

这个消息我们可以划分3个部分......

1.MTI (Message Type Indicator)
     1.1.Version
     1.2.Message Class
     1.3.Message Function
     1.4.Message Origin
2.Bitmap
     Indicate which data elements are present.
3.DataElement
Run Code Online (Sandbox Code Playgroud)

整个ISO消息的本质,包含有关交易的信息,如...

  • 交易类型
  • 量,
  • 顾客ID

等等.

所以,在我阅读这两个Web引用之后,我想将我的ISO消息传递日志划分为MTI,位图和数据元素.

例如.

 (0800 2020000000800000 000000 000001 3239313130303031)
MTI: 0800 (1987 version, Network Management Message, Request, Acquirer)
Bitmap: 20 20 00 00 00 80 00 00 (eg. 20 = 0010 0000 ,so position 3 is on) 
DataElement:(by seeing Bitmap , we can defined data element as follow)
     field 03:000000 (Processing Code) …
Run Code Online (Sandbox Code Playgroud)

ip networking tcp iso8583

5
推荐指数
1
解决办法
1万
查看次数

EMV Tag 91 发行人身份验证数据 - 如何确定响应中的标签格式

如果存在,当在交易响应中返回时,EMV 标签 91 发行者身份验证数据可以有几种不同的格式。根据我(有限)的理解,这可能是由卡品牌决定的。

例如

  • 万事达卡标签 91 包括卡状态更新作为标签 91 数据的一部分
  • Visa 标签 91 包括授权响应代码作为标签 91 数据的最后两个字节。

我需要解决一个问题,即在非批准响应的情况下,标签 8A 授权响应数据不会作为 EMV 标签数据的一部分返回。支付平台已建议取标签 91 的最后 2 个字节并将其分配给标签 8A,但标签 91 并不总是包含授权响应代码值,并且在某些情况下或品牌中并不总是返回标签 8A。

我想实现一个更强大的修复,我们验证标签 91 的格式,而不是仅仅说 If Visa... do this... If Discover... do that。

任何有关如何构建标签 91 的建议(例如对 EMV Book 文档的参考)都将不胜感激。

谢谢,

smartcard emv payment-processing

5
推荐指数
1
解决办法
1万
查看次数

ISO8583消息的标准模板

所以我理解并意识到ISO8583消息不同于spec到spec,但我想知道是否有某个资源可以帮助我确定哪些字段是绝对必须的.例如,'0200'消息肯定有PAN和Amount字段?

我发现很难找到任何这样的资源,即使它们带有额外的信息,看看一些通用模板也是很棒的.

很感谢任何形式的帮助.

emv iso8583

3
推荐指数
1
解决办法
1940
查看次数

获取处理选项响应

我试图了解如何为智能卡创建CDOL1,并且applet开发人员不太乐于助人.当我向卡发送GET PROCESSING OPTIONS命令时,我收到以下回复:

80 0E 7D 00 40 01 01 00 48 01 03 01 50 01 03 00 90 00
Run Code Online (Sandbox Code Playgroud)

我一直试图了解7D模板是什么以及我应该如何构建CDOL,但迄今为止一无所获.我希望有更多经验的人可以帮助我.

apdu smartcard emv

3
推荐指数
1
解决办法
4475
查看次数

读BERTLV时,什么时候停下来?

我有以下 BERTLV: 61394F0BA00000030800001001234579074F05A000012345500E49442D4F6E65205049562042494F5F50107777772E6F626572746875722E636F6D7F66080202800002028000

我试图以递归方式解析它,所以我将第一部分视为 TLV。

标签: 0x61, Len: 0x39, 值:4F0BA00000030800001001234579074F05A000012345500E49442D4F6E65205049562042494F5F50107777772E6F626572746875722E636F6D

然后我进一步分解它,得到

标签: 0x4F, Len: 0x0B, 值: A000000308000010012345

现在,我该如何停止?在这一点上,我知道这个值是这个 TLV 的最后一站,而不是另一个嵌套的 TLV。

asn.1 tlv ber

3
推荐指数
1
解决办法
1493
查看次数

手动生成交流密码

我正在尝试手动生成交流,我有一个生成交流的工具,但是我想自己生成它以了解相同的算法。

我的计算适用于发现卡,但对于万事达卡则失败。据我了解,用于生成交流电的数据取决于标签8C-CDOL1,我们通过Gen AC命令+ AIP + ATC将其提供给卡。

AIP和ATC-由ICC内部访问。

用于生成交流的数据为:-

data part of Gen AC command + value of tag 82 + value of tag 9f36 + 80 + optional 00 to make it multiple of 8.
Run Code Online (Sandbox Code Playgroud)

这是我的逻辑,可能是我使用了错误的数据来计算AC,这就是为什么从测试工具获得不同结果的原因。

终端提供的
授权数据量-000000000201
其他金额-000000000000
终端国家/地区代码-0826-英国
终端验证结果-00 00 00 00 00
交易货币代码-0826-英镑
交易日期-15 04 28
交易类型-00-商品和服务
不可预测的号码-30 90 1B 6A
终端类型-23-出席,仅离线。由商家
数据验证码操作-00 00
ICC动态编号-1E AB C1 26 F8 54 99 76
CVM结果-00 00 00

Gen AC使用CDOL1 80 AE 40 00 2B 0000000002010000000000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000此命令返回9F26。我用于校准的数据是:-

00000000020100000000000008268260000000000008261504280030901B6A2300001EABC126F8549976000000 3800000180 [数据为8的倍数]

其中3800是AIP,0001是ATC,而80是填充[填充方法2 …

apdu emv mastercard

2
推荐指数
1
解决办法
5525
查看次数

标签 统计

emv ×4

apdu ×2

iso8583 ×2

smartcard ×2

asn.1 ×1

ber ×1

ip ×1

mastercard ×1

networking ×1

payment-processing ×1

tcp ×1

tlv ×1