轉載聲明:Ryan的博客文章歡迎您的轉載,但在轉載的同時,請註明文章的來源出處,不勝感激! :-) api
http://my.oschina.net/ryanhoo/blog/86876 app
調用淘寶API的簽名一直不對有幾個緣由: 測試
1. 不須要在排好序的參數串後加APP_SECRET url
(注:注意看第二個緣由。不加sign_method的狀況下,有人說若是沒有此參數,尾部不須要加secret,我沒有驗證。萬一你必定要加sign_method,能夠試試在尾部加和不加secret有什麼區別) spa
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-dd HH:mm:ss,例如:2008-01-25 20:23:30
v version,固定值:2.0