[Other]来做一个微信打印机吧 -- 微信打印的设计思路參考
项目源代码地址:https://github.com/callmewhy/why-wechat-printer
近期微信打印机小火了一把。比方印美团。747微信打印机,都是利用微信公共平台实现照片的打印。
详细流程:
- 扫描二维码关注公共主页
- 发送图片
- 发送微信打印机上的打印码
简单三步,实现微信打印照片的功能。
那么它是怎么实现的呢?在此提供一下自己的思路供大家參考。
源代码已经写好了。确实可行。
假设大家有好的思路欢迎一起分享^_^
微信的后台接口
用户把照片发给微信公共账号,在接收到的时候是有图片的url的,所以我们不用考虑图片的存储问题。
- 在接收到用户发送图片消息的时候,把用户的ID和图片的地址写入到数据库的wx_images表中,
- 在接受到用户的文字信息的时候,推断一下是不是四位数字的打印码。然后写入到刚刚那条记录里,以供打印机依据打印码获取。
至此,微信接口的任务就算是完毕了。
打印机的后台接口
打印机在执行之后,首先要做的事情是获取打印码。
设置打印码的目的。是为了防止有人随便发送照片捣乱。所以在打印机刚执行的时候,要去server获取它自己的打印码。
为了防止打印码反复,我新建了一个wx_printers表。
用random随机插入了100条数据,也就是100个随机的打印码,然后用一个状态标示符来标记这个打印码的状态是已用还是未用。
打印机执行之后会先去server获取一个打印码并存到本地。然后依据这个打印码不断地訪问server,获取打印任务。
获取到打印任务之后,直接下载图片并存到本地的暂时文件。然后调用打印的借口。