簡體   English   中英

通過 API 從 Shopware 5 獲取訂單列表

[英]Get order list from Shopware 5 via API

我正在構建一個小型(python)工具以通過 API 從我的 SW5 商店檢索訂單。

為此,我將用戶名和 API 密鑰組合成一個字符串(以“:”分隔),然后將整個字符串轉換為字節串。 這個字節串然后被 base64“編碼”並指定為標題,如下所示:

`

def get_order_shopware5():
    
    header = {"Authorization": "Basic NjE2NDZkNjk2ZTNhNTM2ZTY1NzA0OTZlNmI2YzRhNjQ2YzY0NTA1MTM1Mzg0NjdhN2E0ODRlMzk3OTZiNGU2NDZlNzA2ODM1Nzk2YzU0NWEzODM2NjQ1MDZkNTM"}
    print(header)
    
    res = requests.get("https://shopname.de/api/orders", headers=header)
    
    print(res.content)

` 但當我調用該函數時,我總是會收到“b'{"success":false, "message": "Invalid or missing auth"}'"作為響應。

當我通過瀏覽器手動訪問www.shopname.de/api/orders並輸入憑據時,一切正常。 所以我假設合成器或憑據轉換上有問題。 但我無法弄清楚到底是什么。

我很感激任何提示!

問候,喇嘛

PS:我已經嘗試了多個版本的標頭合成器以及將原始字符串轉換為字節串的不同方法(有/沒有空格,有/沒有使用完整字節)。 但到目前為止沒有任何效果。

如果有人感興趣:

首先是 URL 錯誤 -> “https://shopname.de/api/orders/”而不是“https://shopname.de/api/orders”。 細節決定成敗:D。

第二件事是 Shopware 文檔造成的輕微混淆。 它說:

  1. 將用戶和密鑰組合在一個字符串中 - 用“:”分隔。
  2. 將其轉換為八位字節(字節)字符串
  3. 將生成的字符串轉換為 base64 字符串並在前面添加“Basic”。
  4. 像這樣創建標題 -> Authorization: Basic [KEY_VALUE]

3/4 是正確的。 如果您跳過第 2 步,一切正常。

格雷茨

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM