蝦皮API串接 學習指南 問題排除 分享 error_sign Wrong Sign

寫完登入的授權之後,想說要來取訂單資料

結果竟然出現sign錯誤!

奇怪了,原本授權不是也是這樣寫,怎麼會出錯呢???

object(stdClass)[2]
  public 'request_id' => string '465ae0710eakkkkkkkk130a264d5320' (length=32)
  public 'error' => string 'error_sign' (length=10)
  public 'message' => string 'Wrong sign.' (length=11)

這時候也是拜請了Google大神!

登愣!!看來應該也是很多人遇到這個問題啊!!

看了官方的QA

6. 為什麼請求API後返回”Wrong Sign”?
請先檢查以下幾點:
a. 請先檢查partner id與partner key所屬的環境與API請求的環境是否一致。
b. 計算簽名(sign)的時間戳(timestamp)與請求API的時間戳是否相同。
c. 建立基本字串的順序與方式是否正確 。
基本字串的順序請參考附件說明或平台文件Creating the sign base string。
參考來源:
https://seller.shopee.tw/edu/article/6716/openapi-v2-intro-faq

才發現,原來還有分呼叫的API不同,然後兜的字串有所差異,真的是搞死人了啊!!

解答:

建立 Sign 基礎字串

有 3 種類型的 API 需使用不同的參數來建立 Sign 基礎字串(其共同參數相同)。

依照以下順序將 API 路徑和下方的共同參數連接成一個基礎字串:

以 Shop APIs:Partner_id、API 路徑、Timestamp、Access_token、Shop_id
以 Merchant APIs:Partner_id、API 路徑、Timestamp、Access_token、Merchant_id
以 Public APIs:Partner_id、API 路徑、Timestamp

以取Shop APIs來看,就必須兜五個字串,PHP的程式碼如下:

$path = "/api/v2/order/get_order_list";
$timest = time();
$partner_id = 12345678;
$partnerKey = "oifjdslfjdsfiasjdfkkkkkkkkiasjdfpsdf'asdfkjadsjfpsadojfp";
$baseString = sprintf("%s%s%s%s%s", $partner_id, $path, $timest, $access_token, $shopid);
$sign = hash_hmac('sha256', $baseString, $partnerKey);

改好之後,果然正確了,然後又出現另一個錯誤…繼續除蟲吧!!

如果有什麼問題,也可以在下方留言處與我們分享,感謝您!!

手刀試用=>蝦皮對帳王

手刀試用=>康捷雲端ERP

相關文章

👉 進出貨一覽表 簡單王 操作步驟詳解

👉 簡單王-進出貨匯入上傳工具 操作步驟詳解

👉 蝦皮對帳王-蝦皮對帳結果一覽表-為什麼要對帳?無對應???

👉 蝦皮對帳王-對帳原理分析-有訂單,有撥款だいじょうぶ(大丈夫);有訂單,沒撥款 歐NO~~~~~!!!

[蝦皮服務] 訂單完成後什麼時候能夠收到款項呢?

期待您的留言

Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *