因为网站想添加个功能,就是自动转换淘宝客链接,尝试弄了下淘宝api,签名部分折腾的头疼,一直被淘宝的api测试工具误导,一直被网上乱七八糟的说法误导。做下记录,别忘记了。
签名规则是:
官方说明:http://open.taobao.com/doc/detail.htm?id=111#s6
除了图片和签名,其余提交的所有参数都要md5下。参数要按照升序(a-z)排列。如果参数首字母相同,就按照第二个字母排序。
总结下sign = 大写(md5(appsecret+appkey+参数+appsecret))
另外拼装url的时候要注意,参数值都要url编码的。
解释的好苍白,还是上代码吧。没有appkey 自己添加,因为是测试代码,比较乱,自己修改
$sign = ''; $appsecret = ""; $appkey = ""; $ctime = date("Y-m-d H:i:s"); $timestamp = urlencode($ctime); $parame = array( 'app_key'=>$appkey, 'fields'=>'num_iid,title,nick,pic_url,price', 'format'=>'xml', 'method'=>'taobao.taobaoke.items.convert', 'nick'=>'', 'num_iids'=>'15293327612', 'sign_method'=>'md5', 'timestamp'=>'', 'v'=>'2.0', ); $parame['timestamp']=$ctime; ksort($parame); foreach($parame as $key => $value){ $sign .= $key.$value; } $sign = $appsecret.$sign.$appsecret; //echo $sign; $sign = strtoupper(md5($sign)); $apiurl = "http://gw.api.taobao.com/router/rest?sign=".$sign."&"; foreach($parame as $key => $value){ $apiurl .= $key.'='.urlencode($value).'&'; } echo $apiurl;
评论 (0)