调用淘宝API的签名一直不对有几个原因:
1.不需要在排好序的参数串后加APP_SECRET
(注:注意看第二个原因。不加sign_method的情况下,有人说如果没有此参数,尾部不需要加secret,我没有验证。万一你一定要加sign_method,可以试试在尾部加和不加secret有什么区别)
2.API说sign_method是系统参数并且是必须的,事实上,可以不要。默认md5
3.额外多出来一个partner_id参数,少了就说签名错误。
partner_id=top-apitools
4.Session不是必须的,API的系统参数说明没有讲清楚,对于有些API,这个参数是必须的。在沙箱环境下,如果你不加Session,他会提示你出错的。
正确的调用方法:
使用沙箱测试,它会给出正确的拼凑URL,你根据它来准备参数,即可正常调用。
以 'taobao.item.get' 接口为例
我们实际需要参数如下:
app_key 你应用的app_key
fields 请求的返回字段(如detail_url,num_iid,title,nick...)
method 接口名:taobao.item.get
num_iid 商品的item id:例如20547892232
partner_id 莫名其妙蹦出来的参数,值为top-apitools
sign 计算出来的签名值。。最坑爹的一个参数
timestamp 签名之前无需encode,允许误差10分钟。 yyyy-mm-ddHH:mm:ss,例如:2008-01-2520:23:30
v version,固定值:2.0 |
|