小米开放购买代码门,购买权限门后续——在开放购买之前,能不能购买成功已经被小米服务器决定 。关于小米购买权限门事件得从这篇帖子说起,如果你们现在打开上面的网址,会显示提示: 作者被禁止或删除 内容自动屏蔽。但是作者似乎并没有干什么,只是在帖子内容里说了几句脏话,小米论坛管理员就屏蔽了该作者,不禁让人浮想连篇。根据下面的回复我们还是可以知道大概发生了什么事情。在小米论坛上,另外有人引用了该作者的原帖,复制粘贴了该作者的帖子内容,并且加以验证。帖子地址如下。
这位作者因为没有激烈的言辞,内容没有被禁止,我们可以看到帖子的内容,数据显示,在回复数达到102的时候,论坛管理员出现,使得这篇帖子没有被继续回复,浏览数不过2000,因此,大部分人还并不知道,小米抢购需要排队后,并不是所有的帐号只要预约了就有权限参与抢购小米手机,有的帐号可以连续不断,从8月12号到10月8号,每次只要排一次队就可以顺利抢到一台小米手机,可以说,逢抢必中。他们并不清楚,其实,小米每次抢购是否能通过排队进入抢购页面,早就被小米后台决定好了。如何知道你有没有机会呢?帖子里作者给出方法
1. 首先登录自己的账号
2. 在浏览器地址栏输入 tc.hd.xiaomi.com/hdget?callback=hdcontrol 访问然后会返回一段代码,
格式如下:
hdcontrol({“stime”:1381645438,”status”:{“allow”:false,”miphone”:{“hdstart”:false,”hdstop”:false,”hdurl”:””,”duration”:null},”mibox”:{“hdstart”:false,”hdstop”:false,”hdurl”:””,”duration”:null}}}))
如果allow后返回的是 false 就表示没有权限,禁止购买了,就算你速度再快,也不可能买到,返回是true才表示有权限,才有机会能购买到。
这个怎么理解呢?要理解这个得首先用JS格式转换器,把上面的代码进行转换,转换结果如下
hdcontrol(
“stime”: 1381645438
“status”: {
“allow”: false,
“miphone”: {
“hdstart”: false
“hdstop”: false
“hdurl”: “”,
“duration”: null
},
“mibox”: {
“hdstart”: false,
“hdstop”: false,
“hdurl”: “”,
“duration”: null
}
}
}))
抢购开始的时候,hdurl 后面会是小米手机的抢购网址(去域名后)。稍微懂代码常识的人都知道,当allow后面的值为false的时候意味着下面的代码将不被执行,也就是说,你进不了页面,把抢购网页复制到浏览器链接栏直接打开,小米服务器也会驳回你的请求,把你送回排队页面。这还意味着,当allow后面的值为true时,你向小米服务器发送的请求才会被受理,让你进入抢购页面,于是allow后面的值为true就成为了是否有机会购买小米手机的一个重要权限。根据这篇帖子作者的原话(已被禁止),我们知道,一开始这个作者的帐号allow后面的值为true,并且该作者因为allow后面的值为true,在排队系统出来后成功购买了多台小米手机,并且根据多个帐号的测试结果,得出结论:allow后面的值为true才能进入抢购页面选购小米手机,而且作者强调了,是有机会,有进去的概率,而为false则是无限排队,或者进去就被弹出,无法购买小米手机,相信你们中一定有很多人已经忘记了小米选版本的页面是什么样子。该作者之所以曝光这个问题,是因为既得利益的失去,他的帐号前几次allow后面的值还为true,还能购买小米手机,现在allow后面的值为false,无法购买。正是因为这个动机,让我相信该作者,觉得他说的有道理。楼主自己用自己的帐号进行了测试,发现为false,这正好验证了我无法进入抢购页面,无限排队的事实。但是这不足以说明问题,我还需要对比,我有个同事,每次排队只要排一次,第二次点进入活动,立马进去,每次都能买到一台小米手机,让楼主眼红了很久,楼主曾经尝试了所有的东西,包括电脑系统,网速,网络,浏览器,每一次我都让自己的抢购环境和他一样,但是每一次我都是无限排队,他每次都进。这让楼主纳闷了很久,我把同事的帐号拿来进行测试,顿时五雷轰顶,简直要背过气,气疯了。
hdcontrol({
“stime”: 1381645344,
“status”:
“allow”: true,
“miphone”:
“hdstart”: false,
“hdstop”: false,
“hdurl”: “”,
“duration”: null
},
“mibox”: {
“hdstart”: false,
“hdstop”: false,;
“hdurl”: “”,
“duration”: null; e;
}
},
}))
以上是他的返回值,自此楼主总算明白了为什么他每次抢购都能成功,真的不是网速不是人品不是运气,根本问题就出在帐号上。
楼主仔细研究过抢购时调出来的排队窗口,这个窗口的作用有两个,一个是统一化数据传送格式,使得所有通过排队向小米服务器发送请求的数据格式相同,便于服务器识别,另一个就是错时减轻服务器压力。这也正是直接复制粘贴抢购网址到链接栏被弹回开放购买页面的原因,服务器拒绝非上述格式的请求,想通过直接复制粘贴网址的形式肯定行不通。那么通过直接发送数据的形式请求抢购页面是不是行的通呢?我以为是可以的,只要数据格式和通过排队发送的数据格式一样就可以。那请求是不是能通过呢?是不是可以通过大量的发送数据,请求抢购页面呢?一开始我以为是可行的,直到我看见了上面因为既得利益失去所以曝光内幕的作者发的帖子,恍然大悟。最终的决定权其实还是不在用户手里,排队只是减轻服务器压力,延长抢购时间的一个策略,能不能进入抢购页面购买手机,甚至都不怎么和概率相关,关键得看小米的服务器。我大胆的作出了一个假设,小米系统后台偷偷的对一部分帐号进行了特殊标记,一般情况下看不出区别,但是每次抢购活动就会体现出差别,比如优先购买权。比如之前同事的帐号,排队只要一次,可以连续买多台。上面帖子里的方法就可以进行检测,allow后面的值为true,就代表你的帐号被特殊标记上了,有优先购买权,(14号下午六点左右,该通道已经关闭,今天再次开放,大家可以去进行测试,测试得出为true 进入这个网页[这是9月3号的抢购页面,因为留着有作用,具体的作用,发现小米排队BUG的人都知道是干啥的,在这个页面点击立即购买,true只需要排一次队即可进入小米网,原因是hdurl后为空,自动跳回主域,正好是在这个页面测试得到的结果会和你们今天的抢购结果非常接近,在这个页面无限排队也就等于你的帐号今天会一直排队到活动结束,不信,我们拭目以待)。
评论前必须登录!
注册