仿支付宝乘车码,是如何提交数据的?

新android项目仿乘车码,司机扫乘客二维码实现乘车。
想问一下,数据处理的逻辑?考虑到在汽车上可能会有信号弱的情况,是否应该做长连接心跳机制?放在何处监听?
没有接触过这种逻辑,希望各位能提供一点建议,谢谢!!

首先必须保证司机有信号。
用户的码尽量服务器获取,如果用户没网,则根据当前时间、用户登录信息、用户设备信息、用户手机号等加密生成1分钟内有效的秘钥,二维码内容大致如下“car:userId=10&kye=***”(支付宝隐去了键值对,几位表示类型,几位表示用户,几位表示秘钥)其中userId是标识当前用户的,key就是上述生成的类似md5的秘钥。
本地加密算法必须保密,让app端引用so库,用c++加密,Android考虑再使用第三方加固防止被破解

上述保证了后,过程就比较简单了:
司机扫码提交给服务器,服务器验证当前userId的key是否有效即可,如果有效则验证成功并保存此key。(有效的定义:用相同算法结果一致并且此key没有保存过)