我需要开发一个自助服务终端系统。唯一的付款方式是信用卡/借记卡。自助服务终端需要与另一台PC联网。例如,如果客户在自助服务终端上订购了某些东西,则需要将其发送到另一台商店,员工可以看到所订购的商品。
以下是我的解决方案:
选项1)基于网络的应用程序
将FLASH,ASP.net或JAVA用于用户界面?
如果我采用这条路线,我该如何与信用卡/借记卡读卡器进行通信?读卡器将安装在自助服务终端上,但自助服务终端软件将在网络上。我是否必须创建一个安全的连接来与读者进行通信?
选项2)在自助服务终端上创建一个应用程序
使用FLASH,JAVA,Windows表示层与.NET?
如何与读卡器进行通信?
哪个选项最好? 1还是2? JAVA,FLASH? WINDOWs .net? 那个linux怎么样?开发自助服务终端是否容易?
感谢您的帮助。
答案 0 :(得分:11)
作为实际实施针对自助服务终端环境的Flash应用程序的人,我强烈建议不要使用它,原因如下:
内存管理不足以让应用程序无人值守地运行数天/周。它将泄漏内存,你最终将不得不重新启动它。只是谷歌的“闪存泄漏”,以了解它有多少问题。他们认为在最新版本中改进了内存管理,但说实话,Flash主要针对浏览器,用户在与其交互几分钟后关闭Flash选项卡/窗口,因此他们没有花费很多时间很多时候优化其内存使用情况。
错误处理不够强大,无法处理扩展的运行环境。如果您的应用因任何原因抛出错误,播放器将基本完全停止,直到您重新启动它。由于(3),写入错误日志也比应该更加困难。
您在Flash环境中使用沙盒,无法直接访问读卡器或其他外部设备或写入系统。使用AIR可以帮助您访问文件系统,但除此之外不多。如果要访问外部设备,则必须编写位于客户端上的代理,并通过套接字将相关数据发送到Flash。如果您决定使用套接字与Flash客户端进行通信,请准备好解读Flash播放器的安全策略。
基本上,Flash是针对与自助服务终端完全不同的环境而构建的,因此不太适合该任务。我还建议避免使用基于Web的界面,因为与访问硬件设备相关的困难相同。哦,对于上帝的爱,不要在Linux上运行Flash。 Linux Flash播放器比Windows版本落后234234英里,会给您带来巨大的麻烦。
就与读卡器通信而言,通常通过USB与读卡器连接,读卡器可以置于“键盘楔”模式或HID模式。在键盘模式下,读卡器将读取卡片刷卡并输出包含滑动内容的纯文本字符串,就像它是键盘一样,您需要解析该字符串以获得所需的数据。 HID模式稍微清洁一点,您可以通过读取USB设备上的滑动来与之交互。
在您列出的选项中,您最好的选择(不幸的是)可能正在编写某种可以在24/7环境中运行的Java或.NET应用程序。如果您需要访问打印机或其他硬件设备(例如自动打印收据),那么Java和.NET对OPOS标准有很好的支持,OPOS标准是与收据打印机通信的标准接口。就Linux和Windows而言,我已经看到两者都成功使用了。
如果您的应用程序正在处理信用卡数据,请不要忘记PCI合规性:)。答案 1 :(得分:4)