谁能回答通常如何为具有子字段值的字段计算 BCD 数据?
我不是指代码,因为我已经确定了那部分。
我的意思是说我有字段 X,它将被发送包含 5 个子值的数据。该字段是 BCD,但是每个子值是否会转换为 BCD,然后附加到字段 X,或者它们是否会以明文形式添加到字段 X,然后作为一个整体转换为 BCD?
在任何地方都找不到明确的答案......甚至在我正在处理的消息规范中也没有
干杯,迈克K
您必须知道字段 X 的格式和子字段的格式。让我给你举个例子。
假设您想使用字段 X 将 emv 数据表单 pos 传输到主机。字段 X
的格式如下所述。
Length Attribute 3 bytes LLL 后面的数据长度
Subfield 1 var bytes First Additional subfield
Subfield 2 var bytes Second Additional subfield
...
Subfield n var bytes nth Additional subfield每个附加子字段的结构如下
Tag Name 2 bytes
Tag Length 1 byte
Tag Value ..bytes
如果一个字段包含子字段,则每个子字段都以自己的格式打包或解包。
然后不应再次打包或解包子字段。
如果字段包含子字段,则无需定义字段体的格式。但是,可以定义字段标题格式(标签或长度)。
以下示例包含一个包含三个子字段的字段
Message Structure:
<f type="VAL" name="Parent" len="21">
<f type="VAL" name="Child1" bodyPacker="BcdBodyPacker" len="6"/>
<f type="VAL" name="Child2" bodyPacker="BcdBodyPacker" len="7"/>
<f type="VAL" name="Child3" bodyPacker="BcdBodyPacker" len="8"/>
</f>
Message data:
<f name="Parent">
<f name="Child1" val="111111111111"/>
<f name="Child2" val="22222222222222"/>
<f name="Child3" val="3333333333333333"/>
</f>
Message bytes in hex:
111111111111222222222222223333333333333333
该示例的源代码可以在GitHub上找到
iso-8583-packer Java库用于创建此示例。我是图书馆的作者。