【技术解密】是怎么样喝到麦当劳免费雪碧?

       有很多朋友问我,我前段时间发的说说,麦当劳免费雪碧免费喝,而且还是中杯的,非常炫酷,利用午休时间,今天就写个技术文章公布下。
       从 6月29日开始,墨迹天气联合麦当劳推出气温到达35摄氏度就可以免费领一杯中杯雪碧
QQ截图20160817142710.jpg
       不到35摄氏度当然就不行了,但是就算没有到达这个领取雪碧的气温,活动还包含了一个小游戏,几乎是100%获得雪碧,我们通过抓包等手法,发现小游戏最后所GET到的兑换二维码来自于墨迹天气的一个API:
http://co.moji.com/api/cola/raffle?activityid=MC2016062101
QQ截图20160817142916.jpg
       通过打开这个链接可以发现 “msg”字段就是获取成功,而"data"字段包含的两个非常重要的数据,一个是该兑换码的使用日期,下面的“activity”就是兑换雪碧需要的兑换码。虽说直接访问这个API地址也可以获得兑换码从而去兑换,但是看的还是比较凌乱,我们可以通过把这个JSON转换成PHP的数组,从而很直观的从网页上获得兑换码。

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://co.moji.com/api/cola/raffle?activityid=MC2016062101");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
$arr = json_decode($output,true);
$str = "麦当劳雪碧兑换码为";
$str1 = "刷新本页面获得新兑换码";
$str2 = "复制兑换码到<a href='http://cli.im/mob'>http://cli.im/mob</a> 生成二维码即可兑换";
echo $str. " " . $arr['data']['activity']; 
echo $str1." " . $str2;
?> 

    其中的关键就是 $arr = json_decode($output,true);    
    这行将JSON的数据转换成了PHP的数组,最后再通过对这个二维数组进行提取,提取出兑换码,即ECHO(输出)出来即可。
看到这里还有朋友有疑问,不应该去拿二维码兑换吗?你这得到的是兑换码也就是一串数字,那我该怎么用呢?答案很简单,二维码只是个形式,本质数据就是这一串数字,为了能在柜台的扫描枪下扫描兑换,你可以到很多生成二维码的网站,将这串数字生成二维码。例如草料二维码http://cli.im/mob 之类的很多网站都可以。


         我做好了一个页面 xhuonline.com/tb.php 大家可以直接使用

Tags: