酒店蓝牙售货机0元购
酒店蓝牙售货机0元购
机型1

正常购买流程:
- 扫描设备上的二维码进入小程序
- 授权蓝牙连接,连接成功后可以选购商品
- 支付订单
- 服务器返回一段数据
- 手机将数据传送给设备,设备校验成功后即可打开货舱
尝试直接修改订单支付的结果,虽然小程序显示“开柜中…”,但一直无法打开,应该就是缺少步骤4的关键数据。
后来在分析小程序代码时发现一个API:/VendingSystem/front/smallWxpay/getPaySafeCode ,结合相关代码,发现使用这个接口的数据也能打开货柜。
这个接口并没有对订单支付状态进行校验,只要能创建一个订单,就可以调用这个接口获得其中的result数据。

有了result数据如何打开货柜?修改原始小程序的逻辑比较困难,于是尝试写个小程序调用BLE通讯的API,网上有类似功能的开源项目,下载一套代码修改一下即可实现。


视频:
https://static-1256168285.cos.ap-chengdu.myqcloud.com/IMG_0368.MOV
图片:

机型2

这个机型的结构比较简单,也比较容易破解。直接修改HTTP报文中的数据即可破解。
将resultCode由原来的202改成200后,小程序就认为支付成功,进入了开柜的流程。


开柜图:
