    public boolean downloadTradeBill(String time, String filePath) {
        // time = "2023-11-16"; 事例
        // 获取交易账单
        RSAAutoCertificateConfig config = this.configManager.getConfig("payOrder");
        BillDownloadServiceExtension service = new BillDownloadServiceExtension.Builder().config(config).build();
        GetTradeBillRequest request = new GetTradeBillRequest();
        request.setBillDate(time);
        request.setBillType(BillType.ALL);
        request.setTarType(TarType.GZIP);
        DigestBillEntity bill = service.getTradeBill(request);

        try (InputStream inputStream = bill.getInputStream()) {
            // 使用有缓存的 BufferedOutputStream
            try (BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(filePath))) {
                // 处理大文件时，常用的缓冲区大小为 8192 或 16384。
                // 不过，最佳缓冲区大小可能取决于具体的硬件和系统配置。
                byte[] buffer = new byte[16384];
                int bytesRead;
                while ((bytesRead = inputStream.read(buffer)) != -1) {
                    outputStream.write(buffer, 0, bytesRead);
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        // 验证数据流中已读取数据的摘要
        if (bill.verifyHash()) {
            // 账单是完整准确，可以开启后续操作，例如完成每日对账。
            log.info("微信账单下载验证成功！");
            return true;
        } else {
            // 账单不完整或者被篡改，应清理之前保存的文件
            try {
                Path path = Paths.get(filePath);
                Files.delete(path);
            } catch (IOException e) {
                log.error(e.toString());
            }
            return false;
        }
    }
