使用者認證

使用者需完成認證的申請流程,取得

  • 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 簽章驗証失敗