## 授權說明
應用程序可通過調用速賣通開放平臺提供的API獲取到速賣通的會員、交易等數據,因為涉及隱私,在使用前必須獲得速賣通會員的授權,方可調用API(公開數據除外),而access_token則做為用戶唯一的授權標識。
速賣通開放平臺采用OAuth 2.0作為授權協議,授權流程可以簡單歸納為:?
(1)獲取臨時令牌;?
(2)用臨時令牌換取長時令牌以及訪問令牌;?
(3)訪問令牌過期后用長時令牌刷新訪問令牌。?
關于**臨時令牌**、**訪問令牌**以及**長時令牌**的介紹請參考下一節
### 概念介紹展開
### 授權分類
注意:請根據自己APP的情況選擇對應的授權方式,如果使用了錯誤的授權方式可能給您APP的使用帶來不便
**1、WEB端授權**
第三方開發者提供的app屬于網頁應用,可以自用或者自行售賣,用戶直接在瀏覽器中輸入app入口地址即可訪問,那么這樣的app就要采用WEB授權方式。
**2、客戶端授權**
第三方開發者提供的app屬于客戶端應用,用戶需要下載應用到本地客戶端才能使用,那么這樣的app就要采用客戶端授權方式。
### WEB端授權流程詳解隱藏
授權及使用授權時序圖

授權流程
如果已經授權并且得到refreshToken,那么可以參考[refreshToken換取accessToken流程詳解](http://gw.api.alibaba.com/dev/doc/intl/sys_auth.htm?ns=aliexpress.open#exchangeAccessToken)一節;如果是首次授權,那么授權流程如下:
**1) 用戶使用app,訪問在速賣通的隱私數據**
**2) app發起授權請求**
~~~
http://authhz.alibaba.com/auth/authorize.htm?client_id=xxx&site=aliexpress&redirect_uri=YOUR_REDIRECT_URL&state=YOUR_PARM&_aop_signature=SIGENATURE
a) client_id:app注冊時,分配給app的唯一標示,又稱appKey
b) site:site參數標識當前授權的站點,直接填寫aliexpress
c) redirect_uri: app的入口地址,授權臨時令牌會以queryString的形式跟在該url后返回
d) state:可選,app自定義參數,回跳到redirect_uri時,會原樣返回
e) aop_signature:簽名
參數簽名(_aop_signature)為所有參數key + value 字符串拼接后排序,把排序結果拼接為字符串data后通過bytesToHexString(HAMC-RSA1(data, appSecret))計算簽名。 驗證簽名的方式為對參數執行同樣的簽名,比較傳入的簽名結果和計算的結果是否一致,一致為驗簽通過。
注:只有客戶端和WEB端授權流程發起授權請求這一步使用參數簽名串組裝規則,只用url請求參數作為簽名因子;其他簽名均需加入urlPath作為額外因子(見API簽名串組裝規則)。
~~~
**3) 用戶輸入用戶名密碼,并確認授權**
**4) 返回臨時授權碼code給app**?
具體返回方式,參照redirect_uri說明
**5) 使用code獲取令牌**
~~~
https://gw.api.alibaba.com/openapi/http/1/system.oauth2/getToken/YOUR_APPKEY?grant_type=authorization_code&need_refresh_token=true&client_id= YOUR_APPKEY&client_secret= YOUR_APPSECRET&redirect_uri=YOUR_REDIRECT_URI&code=CODE
注:此接口必須使用POST方法提交;必須使用https
getToken接口參數說明:
a) grant_type為授權類型,使用authorization_code即可
b) need_refresh_token為是否需要返回refresh_token,如果返回了refresh_token,原來獲取的refresh_token也不會失效,除非超過半年有效期
c) client_id為app唯一標識,即appKey
d) client_secret為app密鑰
e) redirect_uri為app入口地址
f) code為授權完成后返回的一次性令牌
g) 調用getToken接口不需要簽名
注:如果超過code有效期(2分鐘)或者已經使用code獲取了一次令牌,code都將失效,需要返回第二步重新獲取code
~~~
**6) 返回令牌**?
getToken返回結果:{"aliId":"8888888888","resourceOwner":"xxx","expires_in":"36000","access_token":"8795258a-6c8f-43a5-b8d0-763631edb610","refresh_token":"8795258a-6c8f-43a5-b8d0-763631edb610","refresh_token_timeout":"20121222222222+0800"}?
說明:resource_owner為登錄id,aliId為阿里巴巴集團統一的id,refresh_token_timeout表示refreshToken的過期時間
**7) 使用令牌訪問用戶隱私數據**?
例如訪問以下api:http://gw.api.alibaba.com/openapi/param2/1/aliexpress.open/api.findAeProductById/1?productId=xxx&access_token=ACCESS_TOKEN&_aop_signature=SIGENATURE?
簽名示例見[API簽名規則](http://gw.api.alibaba.com/dev/doc/intl/sys_signature.htm?ns=aliexpress.open#apiRule)
### refreshToken換取accessToken流程詳解隱藏
換取accessToken流程
如果refreshToken有效并且accessToken已經過期(超過10小時),那么可以使用refresh_token換取access_token,不用重新進行授權,然后訪問用戶隱私數據。
注意:如果refreshToken已經超過了半年的有效期,用戶修改密碼,用戶訂購到期或者用戶通過[取消授權工具](http://authhz.alibaba.com/auth/intl/my.htm)取消了對app的授權,那么都需要用戶重新授權獲取refreshToken
~~~
換取accessToken的url示例如下:
https://gw.api.alibaba.com/openapi/param2/1/system.oauth2/getToken/YOUR_APPKEY
請求參數如下:
grant_type=refresh_token&client_id=YOUR_APPKEY&client_secret=YOUR_APPSECRET&refresh_token=REFRESH_TOKEN
注:此接口必須使用POST方法提交;必須使用https
a) 此處grant_type參數必須為refresh_token,表示通過refreshToken換取accessToken,而不是通過臨時code換取
b) 調用getToken接口時不需要簽名
~~~
### 換取新的refreshToken流程詳解隱藏
換取refreshToken流程
如果當前時間離refreshToken過期時間在30天以內,那么可以調用postponeToken接口換取新的refreshToken;否則會報錯。
注意:有自動功能的應用(用戶不進入應用主頁也能使用第三方應用,因為在應用后臺可以自動調用api處理用戶數據,如自動重發類的應用)才需要調用此接口。如果沒有自動功能,那么不需要調用,因為用戶必須在應用主頁操作才能獲取以及修改用戶數據,所以即使refreshToken過期了,用戶再次通過應用市場進入應用主頁時授權一次即可
~~~
換取refreshToken的url示例如下:
https://gw.api.alibaba.com/openapi/param2/1/system.oauth2/postponeToken/YOUR_APPKEY
請求參數如下:
client_id=YOUR_APPKEY&client_secret=YOUR_APPSECRET&refresh_token=REFRESH_TOKEN&access_token=ACCESS_TOKEN
返回結果類似getToken的返回結果:
{"aliId":"8888888888","resource_owner":"xxx","memberId":"xxxxxxx","expires_in":"36000","refresh_token":"479f9564-1049-456e-ab62-29d3e82277d9","access_token":"f14da3b8-b0b1-4f73-a5de-9bed637e0188","refresh_token_timeout":"20121222222222+0800"}
注:此接口必須使用https,get和post都行
a) 調用postponeToken接口需要授權,所以必須帶上access_token參數
b) 調用postponeToken接口時不需要簽名
c) refresh_token參數表示當前使用的refreshToken,如果refreshToken的有效期和當前時間的差值小于30天,那么調用此接口后當前使用的refreshToken失效,返回一個新的refreshToken
~~~
- 首頁
- 系統說明
- APP接入說明
- 授權說明
- 簽名規則
- API調用說明
- SDK使用說明
- 常見問題
- 測試工具
- 基本類型說明
- 物流
- 讀取下一級別的地址信息
- 獲取中國省份
- 批量獲取線上發貨標簽
- 修改聲明發貨
- 獲取線上物流發貨郵政小包訂單及國際物流運單號信息
- 獲取線上發貨標簽
- 根據訂單號獲取線上發貨物流方案
- 創建線上發貨物流訂單
- 獲取中郵小包支持的國內快遞公司信息
- 列出平臺所支持的物流服務
- 聲明發貨
- 查詢物流追蹤信息
- 中國地址信息
- 物流訂單的地址信息
- 地址信息
- 取消物流訂單返回信息
- Money
- 運單號面單打印請求參數
- 運單號面單PDF打印查詢參數
- 物流追蹤詳細信息
- 物流方式
- 物流訂單信息
- 線上發貨物流方式
- 創建物流訂單結果信息
- 國內物流方式信息
- 物流訂單申報產品信息
- 會員服務
- 查詢會員賬戶等級
- 買家等級查詢結果
- 糾紛
- 獲取保修服務數據
- 獲取生效保修信息
- 根據主訂單號查詢糾紛
- 根據主訂單號查詢保修數據
- 糾紛中賣家新增訂單留言
- 賣家提交糾紛仲裁
- 賣家確認收貨
- 賣家放棄退貨申請
- 賣家拒絕糾紛
- 賣家同意糾紛
- 糾紛圖片上傳
- 根據糾紛ID查詢糾紛詳情
- 查詢糾紛列表信息
- 保修服務數據
- 保修生效數據
- 保修詳情數據
- 糾紛操作結果
- 糾紛List返回對象
- 糾紛detail結果
- 糾紛詳情
- 糾紛信息
- 糾紛處理過程
- 糾紛協商方案
- 貨幣信息
- 貨幣單位
- limitRefundAmount
- 消息推送
- 查詢式獲取失敗的消息列表
- 失敗消息批量確認
- 游標式獲取失敗的消息列表
- 推送消息分頁
- 推送消息
- 數據
- 查詢商品交易表現
- 查詢商品每日瀏覽量
- 查詢商品每日加入購物車數據
- 查詢商品每日被曝光數據
- 查詢商品每日銷量數據
- 查詢商品每日收藏數量
- 公共
- 查詢速賣通平臺公告信息
- 查詢速賣通服務市場公告信息
- 查詢開放平臺公告信息
- QueryListResult
- 公告接口返回結果
- 公告信息
- 平臺消息查詢參數
- 營銷
- 獲取指定活動詳細信息
- coupon活動查詢
- 評價
- 賣家對未評價的訂單進行評價
- 查詢待賣家評價的訂單信息
- 站內信
- 訂單留言更新處理狀態(NEW)
- 訂單留言打標簽(NEW)
- 根據買賣家loginId查詢站內信(NEW)
- 訂單留言獲取關系列表(NEW)
- 訂單留言更新已讀(NEW)
- 訂單留言查詢詳情列表(NEW)
- 新增站內信/訂單留言(NEW)
- 訂單留言詳情結果集
- 訂單留言圖片
- 訂單留言附屬信息
- 更新插入操作返回結果
- 訂單留言列表結果集
- 交易
- 延長買家收貨時間
- 訂單交易信息查詢
- 訂單收貨信息查詢
- 訂單基礎信息查詢
- 訂單列表簡化查詢
- 未放款訂單請款
- 訂單請款時上傳證明附件
- 查詢訂單放款信息
- 交易訂單詳情查詢
- 交易訂單列表查詢
- 訂單放款信息
- 訂單放款元素信息
- 訂單放款子元素信息
- 訂單基礎信息
- 訂單交易信息
- 訂單交易子訂單信息
- 延長買家收貨結果
- 請求放款結果
- 簡單訂單列表信息
- 簡單訂單元素信息
- 訂單詳情信息
- 簡單訂單產商品信息
- 訂單詳情子訂單信息
- 訂單列表信息
- 訂單元素信息
- 訂單商品信息
- 訂單詳情糾紛信息
- 訂單詳情放款信息
- 操作日志信息
- 個人基本信息
- 地址信息
- 訂單詳情物流信息
- 訂單詳情留言信息
- 訂單詳情商品信息
- 貨幣信息
- 訂單詳情退款信息
- Currency
- 上傳圖片
- 上傳圖片到臨時目錄(推薦使用)
- 上傳圖片到臨時目錄
- 圖片銀行
- 上傳圖片到圖片銀行(推薦使用)
- 根據path查詢圖片信息
- 獲取圖片銀行信息
- 刪除未被引用圖片
- 上傳圖片到圖片銀行
- 查詢圖片銀行分組信息
- 圖片銀行列表分頁查詢
- 圖片記錄對象(api.queryPhotoBankImageByPaths)
- 圖片分組對象
- 圖片記錄對象(api.listImagePagination)
- 分頁查詢對象
- 產品
- 查詢商品狀態
- 商品違禁詞查詢
- 編輯SKU的可售庫存
- 編輯商品單個SKU庫存
- 編輯商品單個SKU價格
- 編輯商品的多語言標題或詳描
- 獲取賣家可用櫥窗數
- 創建產品分組
- 根據類目id獲得適用的尺碼表信息列表
- 修改商品所引用的尺碼模板
- 賣家櫥窗使用詳情查詢
- 編輯商品類目屬性
- 商品分組設置
- 查詢指定商品ID所在產品分組
- 獲取當前會員的產品分組
- 編輯產品類目、屬性、sku
- 編輯商品的單個字段
- 獲取屬性需要優化的商品列表
- 通過淘寶產品的url進行單品認領
- 商品櫥窗設置
- 服務模板查詢
- 獲取淘寶原始產品信息
- 查詢信息模板列表
- 查詢單個信息模板詳情
- 商品上架
- 商品下架
- 修改編輯商品信息
- 獲取單個產品信息
- 商品列表查詢接口
- 發布產品信息
- 上架商品錯誤詳情
- 多媒體信息
- 商品信息
- 淘代銷商品對象
- 淘代銷商品簡要信息
- 產品分組
- 產品子分組
- 產品分組ID對象
- 商品違禁詞對象
- 淘代銷商品信息
- 商品信息模塊對象
- 商品櫥窗信息
- 商品基本信息
- 尺碼模版信息對象
- AeopProductOptimizeResult
- AeopOptimizeProduct
- 淘代銷認領結果對象
- AeopAEProductDisplayDTO
- 商品類目屬性對象
- SKU屬性集對象
- SKU對象
- 運費
- 用戶運費模板列表信息
- 運費計算
- 通過模板ID獲取運費模板詳情
- 運費模板詳細內容
- 運費模板自定義按件或按重內容
- 運費模板按重自定義內容
- 運費計算結果
- 運費模板基礎信息內容
- 運費模板自定義標準內容
- 運費模板ID及名稱及是否為默認
- 類目
- 查詢指定類目適合的尺碼模板
- 判斷發布類目尺碼模板是否必須
- 根據發布類目id、父屬性路徑(可選)獲取子屬性信息
- 關鍵詞推薦發布類目
- 獲取單個類目信息
- 獲取指定類目下子類目信息
- 發布屬性描述信息(一層)
- 發布屬性值詳細信息(一層)
- 發布屬性描述信息(二層)
- 發布屬性值詳細信息(二層)
- 發布屬性描述信息(三層)
- 發布屬性單位
- 發布屬性值詳細信息(三層)
- 發布類目描述信息
- AeAttributeDTO