php – 从网站与现金抽屉沟通
我正在为我公司建立POS解决方案.最难的部分是购买现金抽屉,因为我没有太多的经验,更喜欢一个USB现金抽屉.我找到了一个我感兴趣的模型
CR-4005 http://www.thebarcodewarehouse.co.uk/epos-systems/cash-drawers/cr-4005-b/ 供应商包括可在这里找到的司机 http://www.posiflexusa.com/driver.php 这允许您使用dll文件打开抽屉等.给出的代码的例子如下所示: Public Declare Function OpenUSB Lib "usbcr.dll" () As Long 我对C有很少的经验,但是用谷歌我肯定可以弄清楚这部分. 我遇到的问题是,该解决方案只是一个托管在场外的网站,我需要做的就是从站点问题命令到使用它的客户端机器.所以当他们完成销售时,我可以打开那台特定机器的抽屉. 我需要澄清的是我如何去做这件事.例如,我假设我在客户端机器上安装驱动程序,然后插上钱箱,然后当他们访问该站点时,我需要执行上面显示的C命令来打开抽屉.我遇到的问题是围绕着这个问题如何工作.当然,如果我在服务器上执行命令,它将有效地查看服务器的usb端口,并试图打开抽屉.而不是向客户机发出命令.因此,为了解决这个问题,可能有可能在客户端机器上的c文件,然后我只是使用类似的方式在站点上调用文件 C:Windowsexecute.bat 这又调用客户机上的c文件. 我知道我没有很多信息提供,因为我正在尝试解决这个问题,然后再进行购买,我可能会复杂化,但任何指针或信息将是最受赞赏的.此外,我还没有完全设置这个模型,所以如果你知道一个很好的文档或现有的解决方案的替代方案,我也可以这样做. 笔记 我知道可能会有一个可能的解决方案与chrome api调用 我可以安装xampp并创建一个简单的php文件,调用一个执行必要工作的exe.因此,可能访问客户机上的本地地址可能是另一个潜在的想法(即127.0.0.1/open.php). 更新 我的网站包括POS端的东西已经建成并准备好了.这是使用PHP构建的,并且托管在外部服务器上.我们通过域访问该网站. 当用户在外部站点上执行特定操作时,需要通过打开本地文件(即可以打开抽屉的exe)或访问本机上的本地Web服务器(即localhost)打开本地员工. /打开. 直到抽屉是上面列出的,它通过USB连接到客户端机器.不使用收据打印机.
让我说清楚:
>你做了一个网络应用程序,这是一个POS(大概在PHP中) 选项1: 考虑到: >您可以控制客户POS客户端(如您可以安装软件和设置策略) 然后,您可以尝试使用本机chrome USB库: http://developer.chrome.com/apps/app_usb 它是has it’s caveats,是的,但是你可能会有运气,并且可以打开设备.我已经为一家POS软件公司工作了几年,而串行和usb现金抽屉都有一个非常简单的协议,即使使用FoxPro也可以打开它们. 您必须创建一个小型的Chrome应用程序,发送命令打开抽屉.这个应用程序应该暴露一个函数,一旦你写操作或提交事务到服务器可以调用(例如当你保存销售记录时),所以你可以附加一个回调在jQuery o javascript,这样做后,你发布数据并获得成功的响应. 选项二: Java小程序: 我没有经验.但是您可以使用JNI(java本机接口)调用本机代码.我不知道小程序容器是否以不允许您执行的方式进行沙盒化,但是这两个链接可能会派上用场: How To Call Native (DLL) Code From Java Using JNI 选项3: 操作方式: 另一个选项,似乎对我来说最简单,就是在操作系统级映射一个按键,以便组合执行某些命令.您可以在here中看到如何在Windows中执行此操作的说明.在linux(gnome和kde等)这很容易. 一旦你这样做了,你可以使用this jQuery library,“模拟”按键,所以再次,当你收到你的回应,交易完成,你需要打开现金抽屉,你将要回调执行一个函数您根据我给你的文章预先配置的模拟按键. 当然,这个命令会运行一个本地的本地应用程序,它实际上打开了抽屉,可以在C/C++ / C#或任何支持的设备API中.但我确定是一个标准的界面,所以你可以用任何语言轻松地编写该应用程序. Here’s一个很好的开始为C#. 选项4: 本地Web服务器. 现在你提到有一个本地的Web服务器这实际上可以是一个选项.但是,为什么在客户机上安装XAMPP?有一个更好的方法来做到这一点.答案是在C#/ .NET中编写一个非常简单的HTTP Web服务器.所以按照这种方法,你会想: >在C#/.中编写一个HTTP服务器.Net侦听一个特定的端口(here’s a guide,它只有50行代码) $.ajax({ type: 'POST',dataType: 'json',data: 1,url: '127.0.0.1:8088/open',error: function() { alert('Could not open cash drawer'); },success: function() { //do something else } }); 所以你会发送一个POST请求到本机,它监听8088端口的HTTP协议(或者您在代码中设置的任何内容),然后在内部处理打开抽屉的请求,如果你抛出该代码中的异常比您可以从此C#迷你网络服务器返回HTTP 500响应,以便捕获jquery(或您使用的任何库)的错误处理程序, 而且我强烈推荐,就像我告诉过你一样,这个应用程序只是为了安全起见听着本地的请求,即使你只是做一个简单的操作.它将工作,因为客户端jquery代码正在被本地机器调用. 您还可以优化网络服务器应用程序,以便它读取.ini文件或某些设置文件(.Net具有.config默认值,这是要走的路),以便您可以根据每个客户端进行调整,并且不进行硬编码选项. 祝你好运!让我们知道你是怎么做到的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |