可以想到的 有两种可能
1. 刷卡机每隔一段时间 同步一次。卡里记录余额 刷卡以卡记录为优先扣费
2. 实时联网扣费
以上两种方式 分别有以下问题
1. 因为充值数据不能实时更新,刷卡时是接受 卡 和 刷卡机 余额不同步的。
也因此可以私下篡改卡记录, 数据同步时即使发现余额不正常 也抓不到人
2. 即使现在无线覆盖率高 但在部分地方 如隧道,网络也不怎么好
因此实时验证应当出现延时 但是刷卡实际上从未感觉到延时
方案1补充: 非实时同步 其实也能想到优化方案。
1. 开卡时给卡分配有uid, 假如某次同步数据时发现异常 可以锁掉uid。这样 虽然可能在两次同步之间 可能存在盗刷 但是损失可以减到最小。 这种方法 也意味着新开卡 在数据下一次同步前 是无法使用的
方案2补充: 假设实时扣费,以现在的网络水平 通信方 优先确保公交网速 可以满足需求。
但是早年2G时代 必然是很难实时同步的 那时使用的又是何种方式?
公交卡数据究竟是哪种方式同步?是否还有更好的设计?
请各位大佬解惑~~