下载支付账单 ,bill.verifyHash()返回false但是实际下载的账单完整无误。这是为何
public void downloadTradeBill() { // 使用RSAAutoCertificateConfig,构造service Config config = WechatPayConfig.initConfig(); BillDownloadServiceExtension service = new BillDownloadServiceExtension.Builder().config(config).build(); GetTradeBillRequest request = new GetTradeBillRequest(); request.setBillDate("2024-09-24"); request.setBillType(BillType.ALL); request.setTarType(TarType.GZIP); DigestBillEntity bill = service.getTradeBill(request); System.out.println("bill = " + bill); if (!bill.verifyHash()) { System.out.println(" 校验不通过 " ); // return; } File outputFile = new File("E:/交易账单.xlsx"); try (InputStream inputStream = bill.getInputStream()) { // 使用有缓存的 BufferedOutputStream try (BufferedOutputStream outputStream = new BufferedOutputStream(Files.newOutputStream(outputFile.toPath()))) { // 处理大文件时,常用的缓冲区大小为 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); } } 以上是我下载微信支付账单 的代码,根据你们的文档,下载后,需要调用 bill.verifyHash()进行校验,我调bill.verifyHash()返回false,但是实际下载 下来的账单 是完整的无误的。我能把账单下载下来,说明支付相关的配置,包括签名啊啥的肯定也是正确的吧。 所以这里是咋回事呢? PS:我分多日 ,每日重试了多次,所以返回false不是偶发,而是每次返回false。所以绝对不可能是网络出啥问题。