共享单车如何实现扫码解锁
1.流程
1.1 用户操作
- 扫码:用户通过共享单车的App扫描车身上的二维码。
1.2 通信与验证
- App与服务器通信:
用户扫码后,App会将请求发送到共享单车的后台服务器。 - 服务器验证:
服务器检查用户账户状态(如余额、信用分等),并确认车辆状态(是否可用、是否已被其他用户锁定)。
1.3 服务器发送解锁指令
- 验证通过后,服务器将解锁指令发送至车辆的智能锁。
1.4 智能锁接收指令并解锁
- 通信方式:智能锁通过蜂窝网络(2G/4G/5G)或蓝牙接收解锁指令。
- 蜂窝网络:用户不需要靠近车辆,适合大范围使用。
- 蓝牙:用户需要在车辆附近,耗电较少,适合无信号区域。
- 解锁执行:
智能锁收到指令后,控制电机或机械部件打开锁具。
1.5 反馈与确认
- 智能锁将解锁状态反馈至服务器,服务器再将结果通知用户App。
- 用户听到提示音或在App上看到“解锁成功”信息。
2.二维码信息
https://api.bikeshare.com/unlock?bike_id=123456&platform=mobike&signature=abc123xyz
2.1 车辆唯一标识
- 车辆ID:
二维码中嵌入一个唯一的标识符,用于标记特定的单车。例如:bike_id=123456
。后端通过这个ID确定具体是哪辆车。
2.2 平台信息
- 运营平台标识:
二维码可能包含共享单车平台的名称或标识,以便后端识别请求来源。例如:platform=ofo
或platform=mobike
。
2.3 API接口地址
- 请求解锁的服务器接口地址:
二维码中可能嵌入服务器的API端点,用户扫描后,App直接调用该接口进行操作。例如:https://api.bikeshare.com/unlock?bike_id=123456
2.4 加密验证信息
- 加密的签名或Token:
用于确保二维码内容的安全性和防伪。防止用户生成伪造二维码。例如:signature=abc123xyz
或token=encrypted_data
2.5 车辆位置(可选)
- 初始位置或站点信息:
有些二维码可能包含车辆出厂的初始位置或推荐停车点的信息。例如:location=lat:40.7128,lng:-74.0060
2.6 扩展参数(可选)
- 车辆类型:
区分普通单车、电动单车等。例如:type=e-bike - 其他附加信息:
如二维码生成时间、批次号等。
3.服务器发送解锁指令是直接发送到车辆的智能锁吗?
3.1 服务器直接发送到智能锁
这种方式通常适用于蜂窝网络通信的场景。
3.1.1 流程:
- 用户在App中发起解锁请求。
- App将请求发送到服务器。
- 服务器验证用户信息、账户状态以及车辆状态。
- 服务器直接通过蜂窝网络(2G/4G/5G)将解锁指令发送给智能锁。
- 智能锁接收到指令后解锁,并将状态反馈至服务器。
3.1.2 优点:
- 实时性较好,减少中间步骤。
- 适合远程操作,无需用户在车辆附近。
3.1.3 缺点:
- 智能锁必须配备蜂窝通信模块,增加硬件成本。
- 依赖网络信号,信号差时可能导致延迟或失败。
3.2 服务器通过用户手机中转指令(蓝牙模式)
这种方式常用于蓝牙通信场景。
3.2.1 流程:
- 用户在App中发起解锁请求。
- App将请求发送到服务器。
- 服务器验证用户信息、账户状态等。
- 服务器将解锁指令发送回用户手机。
- 用户手机通过蓝牙将指令传递给智能锁。
- 智能锁执行解锁操作,并通过手机反馈状态至服务器。
3.2.2 优点:
- 智能锁无需蜂窝模块,硬件成本较低。
- 可在无网络环境下通过蓝牙解锁。
3.2.3 缺点:
- 需要用户与车辆在近距离范围内。
- 解锁依赖用户设备,若手机蓝牙或App出问题可能导致解锁失败。