ahutsunshine / dingdong-grabber

叮咚多策略抢菜/买菜,亲测有效
Apache License 2.0
149 stars 46 forks source link

叮咚启用签名nars和sesi #11

Open ahutsunshine opened 2 years ago

ahutsunshine commented 2 years ago

经验证,叮咚后台已经启用了签名,如果请求不带有相应的签名,则会报下面错误. 所以需要开发带有签名的请求。

{
    "msg": "抱歉人多拥挤,请稍后再试",
    "code": -3000,
    "timestamp": "2022-04-22 22:31:02",
    "success": false,
    "exec_time": null
}
ahutsunshine commented 2 years ago

之前虽然请求参数中有nars和sesi ,但是后台并没有验证,现在已经启用验证了。

teddybbq commented 2 years ago

是不是就无解了? (~ ̄▽ ̄)~

ahutsunshine commented 2 years ago

这就得研究下叮咚到底是怎么签名的了,头疼😅

Highnoon8X commented 2 years ago

我看到另一个项目,用JAVA模拟了签名算法,https://github.com/JannsenYang/dingdong-helper

ahutsunshine commented 2 years ago

来看看,验证下这个签名算法对不对

ahutsunshine commented 2 years ago

@Highnoon8X 这哥们牛逼,我验证了下这签名算法是对的😁

Highnoon8X commented 2 years ago

@Highnoon8X 这哥们牛逼,我验证了下这签名算法是对的😁

坐等移植,哈哈哈!

ahutsunshine commented 2 years ago

@Highnoon8X 更新好了,试试,看看有没有bug,这次更新的有点多

Evergreen0726 commented 2 years ago

@Highnoon8X 更新好了,试试,看看有没有bug,这次更新的有点多

sign.go:28] open ../../sign.js: no such file or directory 文件是在的,是不是我缺什么库

ahutsunshine commented 2 years ago

重新pull更新下,是路径问题, https://github.com/ahutsunshine/dingdong-grabber/commit/26e364f1e7b7e44a4482e0f2653df602131cbbc6 是我本地网络问题,我以为已经把这个fix push上去,没想到网络有问题没push成功

ahutsunshine commented 2 years ago

@Evergreen0726 尝试怎么样?更新下日志呗,便于反馈优化

Evergreen0726 commented 2 years ago

@Evergreen0726 尝试怎么样?更新下日志呗,便于反馈优化

cart.go:78] 更新购物车数据成功, 订单金额:64.60 order.go:147] 无可选的配送时间, 原因: 当前运力紧张,今天各时段已约满,敬请谅解 order.go:147] 无可选的配送时间, 原因: 当前运力紧张,今天各时段已约满,敬请谅解 cart.go:32] 勾选购物车全选按钮成功

看样子是可以了,明早试试

Highnoon8X commented 2 years ago

好像Cookie过期了,我重新抓一下,地址好像变成了:https://gw.api.ddxq.mobi/

Evergreen0726 commented 2 years ago

@Evergreen0726 尝试怎么样?更新下日志呗,便于反馈优化

遇到奇葩的问题。。这配送时间段不对啊,后面就全失败了

I0424 06:00:02.877042 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:02.877108 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面 I0424 06:00:02.960807 86499 cart.go:32] 勾选购物车全选按钮成功 I0424 06:00:03.171999 86499 order.go:138] 更新配送时间成功, 配送时间段: [2023-03-30 05:00:00, 2023-03-30 23:00:00] I0424 06:00:03.179772 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:03.181811 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面

Evergreen0726 commented 2 years ago

@Evergreen0726 尝试怎么样?更新下日志呗,便于反馈优化

遇到奇葩的问题。。这配送时间段不对啊,后面就全失败了

I0424 06:00:02.877042 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:02.877108 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面 I0424 06:00:02.960807 86499 cart.go:32] 勾选购物车全选按钮成功 I0424 06:00:03.171999 86499 order.go:138] 更新配送时间成功, 配送时间段: [2023-03-30 05:00:00, 2023-03-30 23:00:00] I0424 06:00:03.179772 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:03.181811 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面

早上忘pull了。。刚试了下地址改杭州可以下单

ahutsunshine commented 2 years ago

@Evergreen0726 尝试怎么样?更新下日志呗,便于反馈优化

遇到奇葩的问题。。这配送时间段不对啊,后面就全失败了

I0424 06:00:02.877042 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:02.877108 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面 I0424 06:00:02.960807 86499 cart.go:32] 勾选购物车全选按钮成功 I0424 06:00:03.171999 86499 order.go:138] 更新配送时间成功, 配送时间段: [2023-03-30 05:00:00, 2023-03-30 23:00:00] I0424 06:00:03.179772 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:03.181811 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面

我也发现这配送时间段不对,但是这确实是后台返回的信息直接打印出来的

Evergreen0726 commented 2 years ago

@Evergreen0726 尝试怎么样?更新下日志呗,便于反馈优化

遇到奇葩的问题。。这配送时间段不对啊,后面就全失败了 I0424 06:00:02.877042 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:02.877108 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面 I0424 06:00:02.960807 86499 cart.go:32] 勾选购物车全选按钮成功 I0424 06:00:03.171999 86499 order.go:138] 更新配送时间成功, 配送时间段: [2023-03-30 05:00:00, 2023-03-30 23:00:00] I0424 06:00:03.179772 86499 client.go:109] 请求结果有异常, 详情: {"success":false,"error":null,"code":-3000,"message":"","msg":"当前人多拥挤,请稍后尝试刷新页面","data":[]} E0424 06:00:03.181811 86499 cart.go:52] 获取购物车商品失败, 错误: 当前人多拥挤,请稍后尝试刷新页面

我也发现这配送时间段不对,但是这确实是后台返回的信息直接打印出来的

感觉被叮咚调戏了😏

zhiTa-Y commented 2 years ago

现在应该不行了吗,小程序直接看不到请求的地址了,也抓不到包

ahutsunshine commented 2 years ago

@zhiTa-Y 我的版本是2.85.2, 可以访问 我的-收获地址,然后搜索user/address

image
zhiTa-Y commented 2 years ago

@ahutsunshine 能加个联系方式吗,大佬

ahutsunshine commented 2 years ago

@zhiTa-Y 不要加联系方式了,有问题就在这里讨论吧😅加了联系方式我也没办法提供更多细节的,有问题我尽量在这里帮你们解决

zhiTa-Y commented 2 years ago

@ahutsunshine 你现在还能抓取到getMultiReserveTime这个接口吗

ahutsunshine commented 2 years ago

@zhiTa-Y 最新版我简单看是没有这个接口了,还没研究最新版的运行逻辑,不过我觉得不用在乎这个吧,作为一个使用者,只需要提供cookie就行了

LovelyWhite commented 2 years ago

@ahutsunshine 我感觉后台并没有验证此签名,我抓取 给到 渠道的 叮咚中就不带 nars 和 sesi。 相同的接口 /v1/user/address 小程序:有 nars 与 sesi 给到关爱通:没有 nars 与 sesi,只有 device_token

ahutsunshine commented 2 years ago

@LovelyWhite 关爱通是什么?可以说说这玩意,也许有机会抢一波😂 小程序肯定启用了的,这个很好验证的,你抓到获取购物车或者预约时间的api,然后不带nars,sesi或者改它们的值立刻就返回3000错误

LovelyWhite commented 2 years ago

给到是 公司福利平台,需要公司开通的,没开通的用不了

zhiTa-Y commented 2 years ago

@ahutsunshine 你现在能抓到预约时间的接口吗,现在好像改用了微信的云函数

ahutsunshine commented 2 years ago

@zhiTa-Y 只有老版本可以还可以使用预约的接口,新版本没了

zhiTa-Y commented 2 years ago

@ahutsunshine 那现在就能使用老版本的进行抢了吗

ahutsunshine commented 2 years ago

叮咚对老版本增加了严格风控了,抢菜很容易被判定为异常的,现在还没什么好的方式避免这个,得研究新版本的逻辑和协议更新程序了。

zhiTa-Y commented 2 years ago

@ahutsunshine 但是我看新版本也是请求的getMultiReserveTime这个,应该是把接口转换成了云函数,这样就导致抓不到包了吧

ahutsunshine commented 2 years ago

得想想法子了😅

zhiTa-Y commented 2 years ago

应该是不行了,微信小程中用的链路通信,还是转移到app吧