如何解码 BASKET table 上的 COMPUTEDITEMS 字段
How to decode COMPUTEDITEMS field on BASKET table
我试图通过检查 BASKET table 中的 COMPUTEDITEMS 字段来查看篮子是如何计算的,我看到它是 base64 编码的,我尝试在 VSCode 中对其进行解码,但没有“BASE64: “在开始时,但它不起作用,它只是输出一些随机字符(也尝试更改文件的编码模式但没有帮助,它是 UTF-8)。您能否举例说明如何解码此字段。
有一种更简单的方法来实现您想要实现的目标。将 Intershop Commerce Management 服务器部署为开发环境后,您可以找到一个名为 dev_basketinfo
的卡式盒。它包含一个名为 InspectBasket
的管道,其起始节点如 Start
和 DownloadDiagram
。在内部它获取当前篮子并显示有关计算步骤、已执行的规则等信息。
更难的方法 是连接到数据库并直接读取存储的值。可以使用标准 JDBC 方式访问计算项列。您需要将内容作为字符大对象 (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
不支持读取其他篮子或订单的计算项。
由于不适合您,您可以尝试使用 decoding recipe provided by CyberChef 来检查内容。它通常与上面的示例代码相同。只需按照步骤操作即可。
我试图通过检查 BASKET table 中的 COMPUTEDITEMS 字段来查看篮子是如何计算的,我看到它是 base64 编码的,我尝试在 VSCode 中对其进行解码,但没有“BASE64: “在开始时,但它不起作用,它只是输出一些随机字符(也尝试更改文件的编码模式但没有帮助,它是 UTF-8)。您能否举例说明如何解码此字段。
有一种更简单的方法来实现您想要实现的目标。将 Intershop Commerce Management 服务器部署为开发环境后,您可以找到一个名为 dev_basketinfo
的卡式盒。它包含一个名为 InspectBasket
的管道,其起始节点如 Start
和 DownloadDiagram
。在内部它获取当前篮子并显示有关计算步骤、已执行的规则等信息。
更难的方法 是连接到数据库并直接读取存储的值。可以使用标准 JDBC 方式访问计算项列。您需要将内容作为字符大对象 (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
不支持读取其他篮子或订单的计算项。
由于不适合您,您可以尝试使用 decoding recipe provided by CyberChef 来检查内容。它通常与上面的示例代码相同。只需按照步骤操作即可。