园长

学无止境 知行合一

更新:2021年6月18日



原题:FreeWater--方便同学的小项目 2021年6月18日做出更改

相关文章

项目概述


西农学生宿舍里的直饮水机,以前接水刷卡即可,现在学校跟支付宝合作,使用企鹅共享,接水时需要扫码,再点击解锁,再按下机器上的按钮,才能出水,十分繁琐。本项目将扫码并点击手机中”解锁”按钮这一步进行简化,在app中点击一个按钮便可完成。

项目内容


于是我对扫码解锁进行了抓包,发现解锁机器只用提交两个数据,machineFunctionIdtoken,请求地址为 https://userapi.qiekj.com/machine/water/unlock

machineFunctionId是机器的id,token是每个支付宝用户登录企鹅共享生成的token,下一次登录时token会更新,抓到token后不再去登录企鹅共享则该token可一直使用。

该项目后台主要是php提交post,此处感谢π的技术支持。起初只是为了自己方便,而现在2021年6月9日17:19:52该项目已经覆盖29*2台机器(冷热)

该项目核心php文件:

1
2
3
4
5
6
7
8
<?php
$Data_Base_Path="http://water.yzyyz.top/xxxxxx/xxxx/xxx/xxx.txt";
$Url="https://userapi.qiekj.com/machine/water/unlock";
$string=$_GET['machine'];
$ID=Get_Id($Data_Base_Path,$string);
......
......
?>

安卓用户通过app向water.php传入参数,传入的参数代表一台机器,后端通过检索机器找到机器id,再提交post请求,达到一键解锁效果

ios用户可手动配置快捷指令,以达到语音解锁(Siri),或一键解锁

如传入machine=4n1e-ice(4北校1楼东侧冷水),php则在xxx.txt中找到对应id为202009041308369270000010955664458,再将id和token一起向https://userapi.qiekj.com/machine/water/unlock提交post请求,返回值为:

1
2
3
4
5
6
7
8
{
"code": 0,
"msg": "成功",
"data": {
"msgId": "xxxxxx"
},
"t": xxxxx
}

表示解锁成功,值得注意的是,该token代表我的支付宝账户(实现每个人都使用自己的token我不会。。。。),故用户接水花的是我的钱,目前稳定在平均每天10元左右,项目得以继续并不是因为我是土豪,而是因为有各位用户的捐赠,但还是有白嫖用户,故预计后期将上线用户系统,限制白嫖用户的使用。

项目新内容


飞鱼发现了企鹅共享的网页版: https://h5.qiekj.com 在该网页中可以使用手机号及验证码登录,随后我进行抓包内容如下:

发送验证码

请求地址:https://useraoi.qiekj.com/common/sms/sendCode
post参数:phone=手机号&template=reg
返回值:

1
2
3
4
5
6
{
"code": 0,
"msg": "成功",
"data": null,
"t": xxxxxxx
}

表示验证码发送成功

登录

请求地址:https://useraoi.qiekj.com/user/reg
post参数:channel=h5&phone=手机号&verify=验证码
返回值:

1
2
3
4
5
6
7
8
{
"code": 0,
"msg": "成功",
"data": {
"token": "xxxxxxxxxxxx"
},
"t": xxxxx
}

表示登录成功,在这里我们就获取到了token,故重构了前面提到的php,新加传入参数token
则用户可使用自己的账户接水

1
$Token=$_GET['token'];

获取用户信息

请求地址:https://useraoi.qiekj.com/user/info
post参数:token=xxxxxxxxxxxx
返回值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"code": 0,
"msg": "成功",
"data": {
"id": xxxxxxxxxx,
"userName": 用户企鹅共享昵称,
"sex": 0,
"birthday": null,
"phone": 手机号,
"headImageId": 头像链接(直链),
"balance": "0.00",
"unCompleteOrders": null,
"hasVip": false
},
"t": xxxxx
}

标识获取成功,并返回相应信息

更新


1
2
3
4
5
6
7
(2021-06-18 00:44)        2.1 beta 1.0.1修复上版冷水按钮的问题
(2021-06-18 00:00) 2.1 beta 1.0支持自己的账户登录
2.0.2-1 解决软件报毒的问题(采取自愿更新,可在官网下载,软件不提示更新)
2.0.2 更新后端运行策略,(特别感谢π的技术支持)暂时修复侧滑中捐赠存在的问题,选择机器页增加加群按钮,预计同期更新官网部分UI
2.0.1 修复按钮隐藏后不恢复可见性的问题
(2021-05-24 21:34) 2.0 全新版本,支持多楼层使用,增加侧滑页面
(2021-05-20 00:38) 1.0 首次发布,支持四号楼1楼东侧饮水机的使用

2021年6月18日的更新实现了使用自己的账户登录,并新增了用户协议,协议地址:用户服务协议和隐私政策



 评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 volantis 作为主题 。