纠结的淘宝api签名

admin
2012-07-08 / 0 评论 / 343 阅读 / 正在检测是否收录...

因为网站想添加个功能,就是自动转换淘宝客链接,尝试弄了下淘宝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

评论 (0)

取消