【平臺介紹】
誠信通是阿里巴巴為從事中國國內貿易的中小企業推出的會員制網上貿易服務。主要用以解決網絡貿易信用問題,是建立在阿里巴巴上的攤位。
通過這個攤位可直接銷售產品,并宣傳企業和產品。
【授權說明】
誠信通是授權型平臺。
appKey:商家ID
appSecret:秘鑰
access_token:授權碼
【獲取方式】
一、注冊開發者身份,需同時具備以下兩個條件:
1、具備一個阿里巴巴中國站帳號;
2、必須綁定了通過個人實名(公司企業)認證的支付寶帳號;個人開發者必須綁定通過個人實名認證的支付寶賬號,企業開發者必須綁定通過商家認證的支付寶賬號;
二、開發者身份綁定的支付寶賬戶用于產品分成結算的收款賬戶。因此為了確認您的身份和安全考慮,必須通過支付寶認證。
三、支付寶實名認證流程請參考:支付寶認證手冊
四、已經注冊為開發者后,需要更改支付寶,請線下提交申請,具體審核流程請參考如下流程:
五、獲取證書
1)什么是應用證書:證書指的是開發者在阿里巴巴開放平臺創建應用是默認給開發者的應用開發證書。證書包含四個內容:
證書編號:App Key
證書密鑰:App Secret
接口權限:開發者可以調用的API權限,包含基礎開放與增值包
證書流量:應用可以調用API的流量限制
也就是“權限+流量+appkey+app secret=證書”,每個應用都有對應的應用開發證書,在應用創建時開發者獲得證書。
2)什么是App Key?
App Key是應用的唯一標識,阿里巴巴開放平臺通過App Key來鑒別應用的身份。
3)什么是App Secret?
AppSecret是阿里巴巴開放平臺給應用分配的密鑰,開發者需要妥善保存這個密鑰,這個密鑰用來保證應用來源的可靠性,防止被偽造。
應用程序可通過調用開放平臺提供的API獲取到阿里巴巴的會員、交易等數據,因為涉及數據隱私,所以在使用前必須獲得阿里巴巴會員的授權,才可以調用API(公開數據除外)。而Access_token則做為用戶唯一的授權標識。
阿里巴巴開放平臺采用OAuth 2.0作為授權協議,授權流程可以簡單歸納為:
(1)獲取臨時令牌;
(2)用臨時令牌換取長時令牌以及訪問令牌;
(3)訪問令牌過期后用長時令牌刷新訪問令牌。
關于臨時令牌、訪問令牌以及長時令牌的介紹請參考下一節概念介紹
授權分類
1)托管式授權
第三方開發者提供的app會托管在應用市場進行售賣,用戶要通過應用市場訪問app,那么這樣的app就要采用托管式授權方式。
2)WEB端授權
第三方開發者提供的app屬于網頁應用,但是不在應用市場售賣,可以自用或者自行售賣,用戶直接在瀏覽器中輸入app入口地址即可訪問,
那么這樣的app就要采用WEB授權方式。
3)客戶端授權
第三方開發者提供的app屬于客戶端應用,用戶需要下載應用到本地客戶端才能使用,那么這樣的app就要采用客戶端授權方式。
托管式授權流程詳解
第三方開發者提供的app會托管在應用市場進行售賣,用戶要通過應用市場訪問app,那么這樣的app就要采用托管式授權方式。
授權及使用授權時序圖
托管式授權是指將授權托管給應用市場,由應用市場發出授權請求的方式。
1) 用戶通過應用市場使用app
2) 應用市場向1688開放平臺發起授權請求
3) 如果用戶沒有授權或者授權過期,需要輸入用戶名密碼,并確認授權;否則跳到下一步
4) 應用市場獲得臨時令牌code,并302跳轉到app入口地址,同時帶入參數code
5) app使用code換取access_token
https://gw.open.1688.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方法提交;必須使用httpsgetToken接口參數說明:
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","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"}
說明:resource_owner為登錄id,memberId為會員接口id,aliId為阿里巴巴集團統一的id,refresh_token_timeout表示refreshToken的過期時間
7) 使用令牌訪問用戶隱私數據
例如訪問以下api : http://gw.open.1688.com/openapi/param2/1/cn.alibaba.open/member.get/1?memberId=xxx&access_token=ACCESS_TOKEN&_aop_signature=SIGENATURE 簽名示例見 API簽名規則