簡體   English   中英

如何解碼 BASKET 表上的 COMPUTEDITEMS 字段

[英]How to decode COMPUTEDITEMS field on BASKET table

我試圖通過檢查 BASKET 表中的 COMPUTEDITEMS 字段來查看籃子是如何計算的,我看到它是 base64 編碼的,我嘗試在 VSCode 中對其進行解碼,開始時沒有“BASE64:”,但它不起作用,它只是輸出一些隨機字符(也嘗試更改文件的編碼模式但沒有幫助,它是 UTF-8)。 您能否提供如何解碼此字段的示例。

BASKET 表中的 COMPUTEDITEMS 字段

有一種更簡單的方法可以實現您想要實現的目標。 將您的 Intershop Commerce Management 服務器部署為開發環境時,您可以找到一個名為dev_basketinfo的墨盒。 它包含一個名為InspectBasket的管道,其中包含StartDownloadDiagram等起始節點。 在內部,它獲取當前籃子並顯示有關計算步驟、已執行的規則等信息。

更難的方法是連接到數據庫並直接讀取存儲的值。 計算項列可以使用標准 JDBC 方法訪問。 您需要將內容處理為字符大 object (clob)。 之后,您可以執行以下操作:

StringReader reader = new StringReader(clob.getSubString(BASE64_PREFIX.length(),
            (int)clob.length() - BASE64_PREFIX.length()));
InputStream inputStream = new InflaterInputStream(new Base64InputStream(new ReaderInputStream(reader)));
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");

ReaderInputStream來自 apache commons。

Johannes Metzner描述的簡單方法是推薦的方法。 目前dev_basketinfo不支持讀取其他購物籃或訂單的計算項目。

由於這不適合您,您可以嘗試使用CyberChef 提供的解碼配方檢查內容。 它通常與上面的示例代碼相同。 只需按照步驟操作即可。

暫無
暫無

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

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