自动完成全选购物车有效商品、下单步骤,并提示用户前往APP支付(订单10分钟内有效)
采用多线程并发调用创建订单的接口,大大提高抢购成功率
对POST
请求体中的data
采用了HMAC-SHA256
算法签名,paramsMD5
字段真实有效,可抓包与小程序进行对照验证。
鉴于目前全市(上海)大润发门店普遍运力不足,停接散客单,只针对社区和居委团购、集单保供,本项目于2022年4月17日开源。
本项目仅用于技术上的学习交流,严禁用作商业行为!
因他人的不正当使用所造成的违法、违规行为与项目作者无关!
如有任何问题,可联系作者删除本项目!
{
"token": "用户令牌,可通过抓包微信|支付宝小程序(PC|移动端)/APP获取",
"device_id": "同样也可以通过上述途径抓包获取,也可以使用36位随机字符串(大小写字母+数字)",
"store": 0
}
store
字段涉及门店的选择,前提是配送地址在多家门店的配送范围内,默认选择最近的门店,填0
即可。
如需切换门店,根据小程序/APP界面上的门店顺序(根据距离远近)调整store
字段即可。
- 由于某些原因,没有采用
logging
模块,而采用了自己编写的print_log
函数。 - 配送地址默认选择收货地址中的第一个,以小程序/APP界面显示为准。
- 门店根据配送地址自动选择最近的一家,如需调整请参考配置文件描述。
- 暂不考虑支持预售商品。
- 代码中包含了使用优惠券的相关代码,但因为大润发优鲜的购物车数据保存在服务端,为提高抢购成功概率和避免多线程并发提交订单引发不必要的异常(没有做详尽的测试),故没有启用。
- 如需使用bark、pushdeer、企业微信、钉钉等通知方式,请自行添加代码(难度不大),本项目仅包含抢购主体代码/框架。
- 程序对
POST
请求体中的data
采用了HMAC-SHA256
算法签名,可抓包与小程序进行比较,理论上一致。 - 由于目前大部分大润发停接散单,因此可配送时间一放出来就是已约满,相关代码段测试数据不足,存在一定优化空间。
- 大润发优鲜目前未见对账号的请求频率进行限制(如封号等),但对单IP短时间内高并发请求采取了一定措施(返回403状态码),单账号运行且不修改本程序默认线程数的情况下未见该问题。
- 获取配送地址信息
- 根据配送地址信息获取门店信息
- 检查是否存在未支付订单,若存在则输出提示信息,程序结束
- 刷新购物车:购物车全选+获取购物车信息,若购物车中无有效商品,程序结束
- 获取可配送时间
- 多线程(默认最大线程数为7)创建订单,根据服务器Response判断是否需要刷新购物车/重新获取配送时间
本项目采用 GPL3.0 协议,请所有进行二次开发的开发者遵守 GPL3.0 协议,并且不得将代码用于商用。