关于智慧食堂现场刷卡设备替换方案的研究
作者:互联网
基础:硬件更换、设备(服务器、扫码消费机、线材、辅材、安装调试费)、扫码设备数据处理程序
附加可选:图表分析消费数据
方案一(推荐)(硬件扫码器或主动扫码)
优点:自建系统,可塑性强,不受第三方系统限制
后期可定制,维护性好
缺点:需要实际搭建硬件系统测试,论证稳定性
架构设计:
硬件:扫码设备通过无线网络连接到互联网,供电接口接电源
数据通过无线模块透传到服务器处理,协议:MQTT
每个二维码设备通过设备编号绑定定额,通过管理后台维护定额的大小,二维码设备id可和菜品id、菜品名称绑定
数据:每一个二维码设备传输扫码所得的用户id及本身的设备id;
新建设备id和价格对应表;在软件系统内维护设备id对应的价格;
扣费逻辑:扫码后,设备将扫码所得的用户id和设备id透传到MQTT服务,后台处理接收的mqtt数据,接口通过查询设备id得到所对应的价格,用用户id和价格做扣费逻辑
用户端:
生成支付二维码,二维码包含:用户id(可选:当前时间戳 ;需要定时刷新(时间戳用于校验二维码有效性))
二维码界面下显示:用户姓名、当前余额(余额30s请求),设置刷新按钮,可点击刷新查看最新余额
扣费:
余额<消费金额,小程序提示扣费 失败
余额≥消费金额,正常扣费并更新数据,小程序重新请求获取最新余额
安全策略
为了便利性,小额付款无需输入支付密码(由于食堂均是小额,故目前线下就餐均设置为无需输入支付密码)
但是便利性的同时需要考虑安全性,用户端二维码设置过期时间,超过1min失效,防止二维码被盗用
数据库配置字典表字段自主设置是否设置二维码过期(不校验时间戳即认为不过期)
校验方式:
二维码图片从服务端请求(每分钟请求,可手动更新),二维码图片包含的时间戳由接口从服务端生成
校验用服务器时间戳与接收到的时间戳比对,一致则继续,否则返回校验失败(”支付失败,付款二维码已失效,请点击更新后重新扫码“)
使用当前unix的时间戳,精确到分钟即可:获取到秒级的时间戳之后,使用t = t-t%60即可获取到一个分钟级别的时间戳,从而做到每分钟更新
小程序端设置定时器,每次请求二维码后重新计时,超时显示”二维码已失效,点击更新付款二维码“,重新请求
用户断网情况:小程序端离线生成二维码(包含用户id和手机当前时间戳,需要保证手机时间和服务器时间1min内)
更加安全方式:
original_secret = xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
secret = BASE32_DECODE(TO_UPPERCASE(REMOVE_SPACES(original_secret)))
input = CURRENT_UNIX_TIME() / 60
hmac = SHA1(secret + SHA1(secret + input))
four_bytes = hmac[LAST_BYTE(hmac):LAST_BYTE(hmac) + 4]
large_integer = INT(four_bytes)
small_integer = large_integer % 1,000,000
该代码片段来源于: 简书
应急预案
技术预防策略:
• 主动策略,扫码设备掉线报警(通过后台、短信等方式提醒)
• (面向食堂工作人员的)屏幕滚动记录当前食堂实时消费(显示:就餐人、消费额、状态(扣费成功、失败、退回(扣费为成功的显示该功能))、创建时间),以防止用户断网情况,不知道是否扣费成功
• 对于用户多扫情况,食堂师傅可依据就餐人和消费额点击款项退回按钮,退回当前这一笔金额
• 任意金额处理,可在管理后台增减变动的金额(为了安全和信息完整,需要附理由和操作人)
为了应对突发的情况,智慧食堂系统针对性的开发了应急就餐功能,功能如下:
1. 食堂突发断网情况:设备本地存储(text等形式)用户id、消费额信息,如果食堂就餐时间出现断网情况,就餐人员也可正常扫码就餐,扣费信息自动存储在设备中,当网络正常时,人工维护到系统中(一键导入)
2. 扫码设备故障:每处多配备一台定额机器,供应急使用
食堂管理系统不仅实现食堂现代化信息化管理,还为食堂考虑异常情况应对措施,为食堂提供定制化的解决方案。
程序无法访问,需要多机分布,保证程序永久可用
问题原因
有如下两种可能的问题原因。
• 客户端发送Publish和Subscribe报文时,微消息队列MQTT版的服务端将进行权限验证。如果权限验证失败则会断开连接。
• 不同的客户端使用相同的Client ID连接微消息队列MQTT版服务时,连接会被强制断开。
方案二
对接第三方刷卡设备,要求满足数据实时对接需求
优点:
缺点:需要寻找合适的第三方供应商,并能提供数据实时互通
该供应商的系统需要部分开放,以接口形式等和智慧食堂
系统互通,以实现实时刷卡数据接入智慧食堂系统
方案三(备选)
便利蜂模式
每日上新,入口处设置触摸屏供自主选菜品,确定后生成取号码,发送给打菜阿姨,(可修改)确定后打菜并打印带二维码的凭条,自助机支付
小程序自主点餐,支付,(打菜阿姨配触摸屏,可查看当前所有订单)凭取号码打菜
标签:扫码,刷卡,扣费,替换,食堂,二维码,id,设备 来源: https://blog.csdn.net/lushuilann/article/details/121745106