6

我正在用 C# 开发一个 MDB 软件作为支付阅读器媒体,它通过 MDB 协议与自动售货机通信。目前一切正常,我能够与自动售货机通信。阅读 MDB 协议后,通信就像预期的那样,但我无法理解一些命令/响应......

我只有一个关于我应该发回自动售货机的回复的问题,这可能真的很愚蠢,但我真的不明白应该如何发送。

如 MDB 协议所示,当我从 MDB 机器获得 POLL 并且阅读器(我的计算机)的状态为“会话空闲”时,我可以向自动售货机发送“开始会话”命令。命令通过串行端口以字节为单位发送,并在 MDB 协议中显示为 HEX 或 Binary。BEGIN SESSION 命令应包含以下内容:

Z1 开始会话 Z2-Z3 可用资金 Z4-Z7 支付媒体 ID Z8 支付类型 Z9-Z10 支付数据

由于 MDB 协议中有很好的示例,我了解 Z1-Z7,但我无法理解 Z8-Z10(支付类型和支付数据)。这些示例在我的脑海中并没有自我解释。

MDB 协议说明如下:
""""""""""""""""""""""""""""""""""""""""""""""""""" """"""
Z8:付款方式:
00xxxxxxb = 普通售卡(参考 EVA-DTS 标准,附录 A.1.1 定义)
x1xxxxxxb = 测试媒体
1xxxxxxxb = 免费售卖卡
xx000000b -0 VMC 默认价格
xx000001b -1 用户组(Z9 = EVA-DTS Element DA701)
             价目表编号(Z10 = EVA-DTS 元件 LA101)*
xx000010b
           -2 用户组(Z9 = EVA-DTS Element DA701)
            折扣组指数(Z10 = EVA-DTS Element MA403)
xx000011b
           -3 折扣百分比系数 (Z9=00, Z10 = 0 to 100**,
            在 EVA-DTS Element MA404 中报告为正值)
xx000100b
           -4 附加费百分比系数 (Z9=00, Z10 = 0 to 100**,
            在 EVA-DTS Element MA404 中报告为负值)


* 用户组是所有授权用户的细分。
它允许选择性的成本分配。
用户组通常与价目表没有直接关系。
价目表是价格表。
每个价目表包含每个产品的单独价格。
折扣组表示将应用百分比因子的价目表。
如果 VMC 不知道用户组、价目表或折扣组,
使用正常价格(Z8 默认为 00h)。
Z9 和 Z10 的最小值为 0。

** 百分比以二进制表示(00 到 64h)

注意:并非所有 VMC 都支持这些功能。

Z9-Z10:如上定义的支付数据
""""""""""""""""""""""""""""""""""""""""""""""""""" """"""

有人可以告诉我应该如何将 Z8 和 Z9-Z10 发送到自动售货机。现在我一直在发送(十六进制):“0x02(Z8),0x10(Z9)和0x10(Z10)”这只是一个疯狂的猜测,它正在工作。不知道为什么,但它可能不正确。

Z8和Z9-Z10应该怎么寄?

4

1 回答 1

1

EVA-DTS 标准是它自己的独立标准。

  • MDB-ICP 是一种通信协议。
  • EVA-DTS 是一种数据格式标准。

MDB 可选(可选关键字)使用/集成 EVA-DTS 数据,这是它在这里所要求的。

EVA-DTS 数据是人类可读的 ascii 文本/数字值,由星号分隔,按定义的顺序和长度。星号之间的每个数据单元称为一个数据元素。

选项 1&2 中的 Z9,指的是数据元素 DA701,如果查看 EVA-DTS-6.2.2 标准的附录 A,DA701 的元素名称为“Cashless1 用户组号”,其数据类型为 N0,意思是没有任何隐含小数点的数字,最小长度为 1 位,最大长度为 13。在 MDB 中,不作为 ASCII 字符串(如“15”)发送,而是使用十六进制数字表示,因此用户组 15 将是0x0F。用户组如果不使用它,你可以为每个人设置 0x01。它用于对人进行分组,有不同的价格表,给不同的人不同的价格。不确定这是否是 MDB 功能,但如果不是,任何 VMC 都可以实现它。都是可选的。

Z9你可以自己查

Z8,前两个最高有效位用于指示它是否是自动售货卡支付(如信用卡或任何实际形式的无现金支付)。其余的数字取决于供应商。您使用 4 个选项之一(请阅读 DTS 标准的附录 A 第 1.1 节,以了解它们的含义以及在这种情况下哪些是合适的。取决于所使用的选项(1、2、3 或 4)决定Z9 和 Z10 是什么,就像选项 3 说 z9 将是 0x00 并且 Z10 将成为一个百分比(因为 z8 将描述给定的百分比折扣),而如果您选择选项 1,则 Z10 包含 DTS 元素 LA101 的值。

希望这不是太罗嗦或不连贯。也祝你好运,我们是竞争对手。

于 2019-05-27T00:56:42.320 回答