最近闲着没事干,想给朋友的小店搞个下单审核通过后一键打印的功能。 现在有很多做好的方案,比如易联云等,但这类打印机都有一个问题,就是要走他们的服务端,而由于涉及到隐私,把客户的信息泄漏给第三方显然是完全不合理的,所以,有没有可能的替代方案?
如
直接用电脑链接普通打印机然后调用打印机驱动来打印是可行的,但是这样功耗比较高,优化一点就是使用 nas/树莓派 来调度,但这样缺点是部署不易且无法实现云端。
或者通过抓包分析打印机与服务端的通信协议也可以考虑,但是考虑到 tls 的问题,由于打印机的指令集不是很了解( x86 arm 系列还好)且不一定能提取到系统,所以就不大好做 mitm ,那么问题来了,由于一款打印机与服务端通信是基于 ws/http/tcp 的(即不含 tls 方便分析通讯协议)这样也有可能劫持他自己做个三方服务端来实现。。
写到这里,我觉得是不是我想复杂了,你们怎么做的呢?你们就不担心客户信息泄露吗
1
44670 2022-12-03 18:04:54 +08:00
可以考虑玩这种热敏打印模块: https://www.adafruit.com/product/597
|
2
Puteulanus 2022-12-03 18:23:05 +08:00 1
搞个树莓派不是才容易实现云端吗,openwrt 之类的打印服务器应该都有轮子了,写个连接你服务的轮询,或者用内网穿透 /组网之类的跟服务器直接连起来
劫持现有打印机的请求不也得有个劫持的设备。。 |
3
lmmortal 2022-12-03 19:08:19 +08:00
楼上说的应该是基于 CUPS 的,这套系统对热敏打印的支持很差,尤其是国内很多低价的不知名品牌打印机,这些打印机都没有 Linux 驱动。我建议还是在 Windows 下面搞,你可以了解一下 bartender ,它有.Net SDK 可供调用,同时 bartender 的开发商网站上也有对很多打印机的支持驱动,打印机自身官网一般也有驱动
|
4
ZXCDFGTYU 2022-12-03 21:23:48 +08:00
我个人用的惠普打印机( ns1005w )是支持但不仅限于 ipp 标准协议的,可以自己基于这个去封装自己的业务逻辑实现。客户端->你的业务模块->打印机,客户端与你业务模块通过 http/tcp 通信,业务模块通过构建的 ipp 协议与设备通信。之前我曾经想做过类似的东西,都搞清楚实现方法了,就是因为各种原因没继续去做。
|