最近公司多了个无人售货机,经常做活动在,感觉力度还是很大的,于是抓包看了看,感觉可以做个特价商品微信推送查询功能。
先扫猩猩便利店上的二维码,然后配置代理抓包
我用的工具是 Charles,大家可以用自己顺手的工具。
不会 Charles 抓包的同学可以看看这篇文章,点击我查看
如图所示,找到步骤 1 的网址,在找到步骤 2 中的网址
只需要关注 discount 和 commodityList 这两个数组,分别是特价信息和商品信息。
如图所示,点击生成
代码类似如下
curl -H ':method: GET' -H ':authority: www.xingbianli.com' -H ':scheme: https' -H ':path: /openrack/猩猩便利店货架 ID/commodityList?t=1513208555000' -H 'accept: application/json' -H 'origin: https://h5.xingbianli.com' -H 'user-agent: Mozilla/5.0 (Linux; Android 7.0; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.5.23.1180 NetType/WIFI Language/zh_CN' -H 'referer: https://h5.xingbianli.com/app/app-openrack-h5/main.html?' -H 'accept-encoding: gzip, deflate' -H 'accept-language: zh-CN,en-US;q=0.8' -H 'cookie: xbl_uuid=生成的 UUID' -H 'cookie: token=生成的 TokenID' -H 'x-requested-with: ' 'https://www.xingbianli.com/openrack/猩猩便利店货架 ID/commodityList?t=1513208555000'
将 curl 代码转换 PHP 代码,点击我打开网站
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.xingbianli.com/openrack/猩猩便利店货架 ID/commodityList?t=1513208555000");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = array();
$headers[] = ": path: /openrack/猩猩便利店货架 ID/commodityList?t=1513208555000";
$headers[] = "Accept: application/json";
$headers[] = "Origin: https://h5.xingbianli.com";
$headers[] = "User-Agent: Mozilla/5.0 (Linux; Android 7.0; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.5.23.1180 NetType/WIFI Language/zh_CN";
$headers[] = "Referer: https://h5.xingbianli.com/app/app-openrack-h5/main.html?";
$headers[] = "Accept-Encoding: gzip, deflate";
$headers[] = "Accept-Language: zh-CN,en-US;q=0.8";
$headers[] = "Cookie: token=生成的 TokenID";
$headers[] = "X-Requested-With: ";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
$datas = json_decode($result, true);
//获取便宜商品的价格
$discountProducts = [];
//最终输出
$products = [];
//todayPrice 今日特价 name 商品名称 currentPrice 正常价格
foreach ($datas['data']['discount'] as $items) {
array_push($discountProducts, $items['commodityId']);
$products[$items['commodityId']]['todayPrice'] = $items['currentPrice'];
}
//列出便宜商品
foreach ($datas['data']['commodityList'] as $items) {
if(in_array($items['commodityId'], $discountProducts)) {
$products[$items['commodityId']]['name'] = $items['name'];
$products[$items['commodityId']]['currentPrice'] = $items['basicPrice'];
$products[$items['commodityId']]['bigPicUrl'] = $items['bigPicUrl'];
}
}
echo json_encode($products);
其实还有很多可以做的,比如用用 Server 酱进行推送,或者进行其他有意思的东东。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.