使用者認證
使用者需完成認證的申請流程,取得
- StoreAuth 所需的 ApiKey(驗證碼) 與 SharedSecret(簽章)
申請流程
StoreAuth
可直接於商店後台申請,申請入口:[商店後台 > 商店設定 > 服務申請 > 大量上傳應用程式介面])
認證方式
何謂認證
認證是對於發送 request 的一方的身份識別及檢核的一段處理程序。
透過認證的處理程序讓接收與發送request的雙方可以基於信任的基礎,讓應該受到保護的資料可以被存取,因此請妥善保管。
- StoreAuth 的憑證為 ApiKey + SharedSecret,以下的章節將分別在介紹 ApiKey 及 SharedSecret。
以下為認證流程的簡單說明圖:
認證流程
當你使用SuperMall提供的API時,請依據使用的 auth method 準備好以下的資料讓你的request可以完成認證:
StoreAuth
- ApiKey
- ApiKey是一組具有唯一識別性的代號,StoreAuth可以透過你的ApiKey取得你的SharedSecret。請妥善保管您的ApiKey,他將會是StoreAuth對您的商店的唯一識別碼。
- 長度: 32 bytes
- 格式如下:
8b337636394c4a9d24292ca20fe06b66
- Signature
- 每一個request都必須包含一組可以被驗證的request sign,否則request將會被拒絕。request signature需要利用你的SharedSecret來計算過,所以請妥善保管你的SharedSecret,應該只有你與StoreAuth知道這一組SharedSecret。
- 長度: 44 bytes
- 格式如下:
O07WYrbfP1CgdtWRFzuuFELE_QmZ6nGp7QC_yjeIGnM-
- Date
- 每一個request都必須包含這個request的time stamp。
以下我們假設您已經取得了ApiKey與SharedSecret,當您要對SuperMall提供的API發送request時,都必須透過StoreAuth才可執行。以下說明圖將對發送request端與StoreAuth與SuperMall API間的流程做個簡單的說明:
如何製作簽章
Step 1
Step2
ApiKey (請輸入您從 [商店後台>商店設定>服務申請>大量上傳應用程式介面] 取得的 [驗證碼])
8b337636394c4a9d24292ca20fe06b66
Shared Secret (請輸入您從 [商店後台>商店設定>服務申請>大量上傳應用程式介面] 取得的 [簽章])
O07WYrbfP1CgdtWRFzuuFELE_QmZ6nGp7QC_yjeIGnM-
TimeStamp (請呼叫 /echo API 取得系統時間)
1522477101
Query String (call API 傳入之參數, 以 /v2/Product/SubmitMain (New) 為例)
SaleType=Normal&ProductName=測試商品請勿下單&MallCategoryId=152984711&SalePrice=1&ShortDescription=測試用,不會出貨&PayTypeId=1&ShippingId=1&SpecTypeDimension=0&Stock=100&SaftyStock=1&Format=xml
Request Content = API Key+TimeStamp+Query String
ApiKey=8b337636394c4a9d24292ca20fe06b66&TimeStamp=1522477101&SaleType=Normal&ProductName=測試商品請勿下單&MallCategoryId=152984711&SalePrice=1&ShortDescription=測試用,不會出貨&PayTypeId=1&ShippingId=1&SpecTypeDimension=0&Stock=100&SaftyStock=1&Format=xml
Signature = HMacSHA1(RequestContent, Secret)
7fb0b39ecd990a43be3482f35a62992bc067e5be
將以上資料含Signature 送至Server,整包Request 的內容如下
https://tw.ews.mall.yahooapis.com/stauth/v2/Product/SubmitMain?ApiKey=8b337636394c4a9d24292ca20fe06b66&TimeStamp=1522477101&SaleType=Normal&ProductName=%E6%B8%AC%E8%A9%A6%E5%95%86%E5%93%81%E8%AB%8B%E5%8B%BF%E4%B8%8B%E5%96%AE&MallCategoryId=152984711&SalePrice=1&ShortDescription=%E6%B8%AC%E8%A9%A6%E7%94%A8%EF%BC%8C%E4%B8%8D%E6%9C%83%E5%87%BA%E8%B2%A8&PayTypeId=1&ShippingId=1&SpecTypeDimension=0&Stock=100&SaftyStock=1&Format=xml&Signature=7fb0b39ecd990a43be3482f35a62992bc067e5be
錯誤代碼
ErrorCode | ErrorMessage |
---|---|
20 | 沒有傳入Format 參數(Format=xml or Format=json) |
99 | 系統內部錯誤,請稍後再試 |
101 | 驗證資訊不足(請檢查ApiKey/TimeStamp/Signature是否有傳入) |
102 | TimeStamp已經失效 |
103 | 不合法的使用者(請確定是否已經申請ApiKey and Secret) |
104 | 簽章驗証失敗 |