C# 应用程序作为现有 POS 软件的附加组件

编程


你好,

我读过很多关于使用 C# 中的 MS POS.net 库开发 POS 应用程序的文章。 但是,我的要求略有不同。

我想构建一个 C# 应用程序,该应用程序将作为现有 POS 软件(在任何 POS 设备上)的附加组件安装。 我正在构建一个附加组件,以在数据库中记录有关账单和客户的额外详细信息。

我有以下疑问

1.可能吗?
2. 如果1的答案是肯定的,那么是否可以有两个软件可以接收来自POS设备的事件? 就像扫描的条形码一样?

非常感谢任何帮助

问候
塔赫尔

解决方案1

1.可能吗?

任何 POS机? 不。

全球最常见的 POS 设备是老式收银机。 您无法在其上运行 C# 应用程序。

全球下一个最常见的 POS 设备可能是由 NCR 等公司提供的专有 POS 系统,这些系统安装在主要零售商处。 它们不一定运行 Windos,即使运行,它们也不会被配置为允许您安装第三方附加组件。

一般的中小型企业要么使用收银机,要么从 NCR 或 HP 等公司购买 POS 设备,这些公司还向他们出售运行该设备的软件。 该软件至少可以跟踪库存或生成销售报告。 该供应商还有一个软件选项可以跟踪其他详细信息,并且它已经集成并与该系统配合使用。 这些供应商不太可能有太多动力为您提供开放 API 以添加到他们的系统中,而且如果您可以从同一供应商处获得第三方解决方案,您的普通企业也不太可能冒险使用第三方解决方案。

那么你的目标是什么?

实际上去寻找您想要为其开发应用程序的 POS 设备。

它只是一个条形码阅读器,加上一个磁条阅读器,再加上一些在基于 Windows 的 PC 上运行的软件吗?

在这种情况下,是的,是的 可能的 取决于您想做多少工作。

(但在进一步讨论之前,请查明是否有人真正会使用您想要的产品。有多少企业拥有这种 POS 系统?原始供应商是否已经提供了与您想要的类似的软件选项?调查一些了解企业的​​情况,并了解 (a) 他们是否需要或想要您想要的产品,以及 (b) 他们是否会从您那里而不是从原始供应商那里购买。)

2. 如果1的答案是肯定的,那么是否可以有两个软件可以接收来自POS设备的事件? 就像扫描的条形码一样?

是的,但您可能必须编写自己的设备驱动程序才能做到这一点。

现有的 POS 软件不太可能有开放的 API,您可以从中获取数据。 POS 软件的原始作者设计该系统的想法也不太可能是与另一个软件包共享磁条读取器和条形码读取器。

如果是这种情况,那么您仍然可以替换这些设备的现有设备驱动程序(或者,也许更简单,将驱动程序添加到设备的设备驱动程序链中),以便您可以在设备发送到其他软件包。

(为了让您了解我在说什么,这里有一篇关于拦截击键的代码项目文章:

按键监控[^]

从其他设备拦截数据可能更复杂,但概念是相同的。)

如果您必须编写内核级驱动程序来执行您想要的操作,那么您最终将使用本机 C 或 C++ 而不是 C# 编写它。

所以答案是:

是的,这是可能的。
但是,除非有真正令人信服的理由这样做,否则不值得付出如此多的工作。

解决方案2

这是绝对有可能的! 熟悉 POS 组件如何协同工作。 1)收银员正在处理的POS接口。 2) EPS 或将连接到 POS 终端、密码键盘、条形码阅读器、秤以及与处理器/银行等连接的支付系统。找出 TCP/IP 数据包格式,因为许多处理器正在使用特定网络协议 – 从 XML 到某种 TLV 协议等。创建客户端/服务器应用程序来拦截从 EPS 发送到处理器的数据包,提取要存储在 DB 中的必要数据并将数据包转发到处理器,然后接收处理器的响应并将其发送回 POS。
注意 – 所有这些都假设不涉及加密! 此外,通过这种方法,您将不会知道现金或支票或礼品卡交易,因为它们可能通过不同的处理器进行处理,除非您为每个可能的目的地添加“嗅探器”。

POS—>EPS—->你的嗅探器—>处理器—>银行:然后返回。

コメント

タイトルとURLをコピーしました