所以美团抢券变得比较简单了
由于是下午才起床 所以说只了解到下午15点的25-12跟30-15
25-12已经变得很容易了 手动都能抢
30-15就更加简单了 一个小时之内都能抢(这两天的观察是这样的)
目前我知道有三种方法可以抢券:
1、(妈!)
2、手动抢
3、重发请求
说一下第一个方法!
就是找babyBus宝哥,他的帖子里有公益代挂,网址我就不放出来了。
就相当于现实中喊妈,省时省事。
然后说一下 手动的方法
25-12就是改时间 然后改按钮出来
30-15就是在25-12的步骤上加上一个改 rander把券重写出来
改时间可以改系统时间或者重写getTime请求。
改按钮重写info请求把status参数改为0
具体方法移步妖友好好记的帖子!
其次是代码发请求(纯小白单纯抓包,没有H5guard.js)
我个人用的是nodejs来发请求
1、对info接口发出get请求
let url = ‘https://promotion.waimai.meituan.com/lottery/limitcouponcomponent/info?couponReferIds=‘ + couponId + ‘&‘ + token;
参数说明
couponId:券id
2、info请求完成之后就可以直接对抢券的api进行请求
let url = ‘https://promotion.waimai.meituan.com/lottery/limitcouponcomponent/fetchcoupon?couponReferId=‘ + params.couponId + ‘&actualLng=0&actualLat=0&geoType=2&gdPageId=‘ + params.gdPageId + ‘&pageId=‘ + params.pageId + ‘&version=‘ + params.version + ‘&utmSource=‘ + params.utmSource + ‘&utmCampaign=‘ + params.utmCampaign + ‘&instanceId=‘ + params.instanceId + ‘&componentId=‘ + params.componentId + ‘&‘ + Cookie.token + ‘&yodaReady=‘ + params.yodaReady + ‘&csecplatform=‘ + params.csecplatform + “&csecversion=“ + params.csecversion;
参数说明
couponId:券Id
actualLng、actualLat:经纬度(这个是否必要我也不懂 可以直接抓25-12的包然后放进去,可以一直用,因为没有帮别人抢过所以不太理解,一般来说应该不是必要随便填也没有问题)
gdPageId、pageId:页面ID,每个页面都不一样,但是同种类的券是一样的,比如说25-12早上的跟下午的参数都差不多,除了couponId不一样之外都相同。
instanceId、componentId :这两个ID也是跟pageid一样,同种类不同时间的券是相同的,所以抓一次就可以一直使用。
剩下的参数我也不懂是啥了,我看了一下两个券都不会变化太多。
简而言之就是抓一次包 然后把params对象整进去就可以了
const params = {
couponId: ‘F6CFF2A35BD94F49BDEE0CC6F7CF9FE4‘,
gdPageId: ‘306477‘,
pageId: ‘306004‘,
instanceId: ‘16620226080900.11717750606071209‘,
componentId: ‘16620226080900.11717750606071209‘,
version: ‘1‘,
utmSource: ‘‘,
utmCampaign: ‘‘,
yodaReady: ‘h5‘,
csecplatform: ‘4‘,
csecversion: ‘2.0.1‘,
};
上面是15点30-15的参数,都拼接到请求的url中。
25-12就是改变了couponId gdPageId pageId instanceId componentId这几个参数而已
具体可以自己抓包看一下
然后就到请求头了
请求头的话 我是直接抓包 然后把所有的请求头都放进来
具体的参数如下:
const headers = {
‘mtgsig‘: Cookie.mtgsig,
‘Accept‘: ‘application/json, text/plain, */*‘,
‘User-Agent‘: ‘Mozilla/5.0 (Linux; Android 11; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.82 Mobile Safari/537.36 MicroMessenger/8.0.2.1840(0x2800023B) NetType/WIFI Language/zh_CN‘,
‘Content-Type‘: ‘application/json‘,
‘Origin‘: ‘https://market.waimai.meituan.com‘,
‘Sec-Fetch-Site‘: ‘same-site‘,
‘Sec-Fetch-Dest‘: ‘empty‘,
‘Sec-Fetch-Mode‘: ‘cors‘,
‘Referer‘: ‘https://market.waimai.meituan.com/‘,
‘Accept-Language‘: ‘zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7‘,
‘Host‘: ‘promotion.waimai.meituan.com‘,
‘Connection‘: ‘keep-alive‘,
‘X-Requested-With‘: ‘com.tencent.mm‘,
‘Content-Length‘: JSON.stringify(data).length,
Cookie: Cookie.ck,
};
请求体body也是抓包来的 - -
因为mtgsig 跟 mtFingerprint都是算法算出来的
不会逆向 所以只能是笨方法(每次抢券前几分钟去抓包,然后放入代码)
总而言之就是直接把去抢券链接抓一次包
然后放到vscode 创建定时任务 到点get post就完事了
你可以写一个前端小页面用来传输mtgsig 跟 body 挂在服务器上
每天到点前(提前十分钟都没问题)抓一下 然后通过定时任务抢券就可以了
(虽然是半自动,但是好比每天到点盯着抢券页面然后开连点器- -)
注意事项:
1、首先抓包的话尽量抓微信的包,因为浏览器的h5指纹会相对而言比较容易黑。
2、如果一个指纹抢多个号的话,会黑一天;(当然这个不绝对,因为那些大佬可以抢,但是这种笨方法的话是不行的)
3、还有其他奇奇怪怪的异常,自己可以摸索一下。
4、推荐使用第一种方法!
冲冲冲!!!!!!!!