淘宝H5通用签名

淘宝一些H5接口是没有签名校验的比如

查看商品详情

$appKey = '12574478';
$data = ['itemNumId' => '10031645140'];
$dataToUrl = urlencode(json_encode($data));
$url = 'https://acs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?data='.$dataToUrl .'&appKey='.$appKey.'&api=mtop.taobao.detail.getdetail&v=6.0&type=json&dataType=json';

但是有很多接口是需要签名验证的

根据二合一参数e获取商品详情

$appKey = '12574478';
$uland = 'https://uland.taobao.com/coupon/edetail?e=rbP5ScFAGQASttHIRqcefTA90Q5m4VLznE1XpdhIQG1a8ZBqz0UffeOIcm/lcoAZo887BSIbu9Dbzo+H4Olax8sRJQdumWv9OAj9evKDahba4h8MrZ+dth9k8bqqSHKTgBzHkoM7XTQC0vfau6E/9Zk7cDx8UPrKiYwdarE/mZlrHb6YhPHui/n/Q7Z5VIMr96FWPrxU3Ctr92VUv3g==';

签名结构体如下:

MD5(TOKEN.'&'.TIMESTAMP.'&'.APPKEY.'&'.DATA)

详细示例:

$appKey = '12574478';//固定
//淘宝转链后地址
$uland = 'https://uland.taobao.com/coupon/edetail?e=fTvrbP5ScFAGQASttHIRqcefTA90Q5m4VLznE1XpdhIQG1a8ZBqz0UffeOIcm/lcoAZo887BSIbu9Dbzo+H4Olax8sRJQdumWv9OAj9evKDahba4h8MrZ+dth9k8bqqSHKTgBzHkoM7XTQC0vfau6E/9Zk7cDx8UPrKiYwdarE/mZlrHb6YhPHui/n/Q7Z5VIMr96FWPrxU3Ctr92VUv3g==';
//获取token
$url = "https://acs.m.taobao.com/h5/mtop.alimama.union.hsf.mama.coupon.get/1.0/?appKey={$appKey}&v=1";
$cookie_all = get_headers($url, true)['Set-Cookie'];
$m_h5_tk= explode(";", $cookie_all[0])[0];   //_m_h5_tk的cookie信息
$m_h5_tk_enc= explode(";", $cookie_all[1])[0]; //_m_h5_tk_enc的cookie信息
$cookie = $m_h5_tk. ";" . $m_h5_tk_enc . ';';  //拼接cookie值
$_m_h5_tk = substr($m_h5_tk, strripos($m_h5_tk, "=") + 1);//_m_h5_tk的cookie值
$token= explode("_", $_m_h5_tk)[0];//_m_h5_tk的cookie值第一段就是token
//组装data
parse_str(parse_url($uland)['query'], $e);
$data = [
    'floorId' => '13193',//固定
    'variableMap' => json_encode($e)
];
$data = json_encode($data);
$urlData = urlencode($data);
//生成签名
$time = time().rand(100,999);
$sign = md5($token.'&'.$time.'&'.$appKey.'&'.$data);
//组装链接
$apiUrl = 'https://h5api.m.taobao.com/h5/mtop.alimama.union.xt.biz.quan.api.entry/1.0/?jsv=2.4.0&appKey='.$appKey.'&t='.$time.'&sign='.$sign.'&api=mtop.alimama.union.xt.biz.quan.api.entry&v=1.0&timeout=20000&AntiCreep=true&AntiFlood=true&type=json&dataType=jsonp&callback=mtopjsonp2&data='.$urlData;
//发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
$curl_data = curl_exec($ch);
curl_close($ch);
$res = !empty(json_decode($curl_data,true)) ? json_decode($curl_data,true) : [];
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值