ISO 8583-如何计算具有子字段的字段的BCD值?

问题描述 投票:2回答:2

任何人都可以回答通常如何为具有子字段值的字段计算BCD数据吗?

我不是在代码方面,因为我把那部分内容固定下来了。

我的意思是说我有X字段,该字段包含5个子值的数据。该字段是BCD,但是每个子值都将转换为BCD,然后附加到字段X,还是将它们明码添加到字段X,然后整体转换为BCD?

无法在任何地方找到明确的答案...即使在我正在处理的邮件规范中也是如此

干杯,迈克·K

iso bcd iso8583
2个回答
1
投票

您必须知道字段X的格式和子字段的格式。让我举一个例子。

假设您想使用字段X将emv数据形式pos传输到主机。X字段的格式如下所述。

Length Attribute 3字节LLL要跟随的数据长度子字段1个可变字节,第一个附加子字段子字段2个var字节第二个附加子字段...子字段n个字节,第n个附加子字段

每个附加子字段的结构如下标签名称2个字节标签长度1个字节标签值..bytes


0
投票

如果一个字段包含子字段,则每个子字段都以其自己的格式打包或解包。

然后不应再次打包或解包子字段。

如果字段包含子字段,则无需定义字段主体的格式。但是,可以定义字段头格式(标签或长度)。

下面的示例包含一个具有三个子字段的字段

Message Structure:
<f type="VAL" name="Parent" len="30">
    <f type="VAL" name="Child1" bodyPacker="BcdBodyPacker" len="9"/>
    <f type="VAL" name="Child2" bodyPacker="BcdBodyPacker" len="10"/>
    <f type="VAL" name="Child3" bodyPacker="BcdBodyPacker" len="11"/>
</f>

Message data:
<f name="Parent">
    <f name="Child1" val="value1_11111111111" valHex="71C551F11111111111"/>
    <f name="Child2" val="value2_2222222222222" valHex="71C552F2222222222222"/>
    <f name="Child3" val="value3_333333333333333" valHex="71C553F333333333333333"/>
</f>

Message bytes in hex:
71C551F1111111111171C552F222222222222271C553F333333333333333

示例的源代码可在GitHub上找到

iso-8583-packer Java库用于创建此示例。我是图书馆的作者。

© www.soinside.com 2019 - 2024. All rights reserved.