在微信Native支付的回调函数里如何获得Description?
transaction没有getDescription函数,如何获得Description
String privateKeyContent = new String(Files.readAllBytes(Paths.get(rootPath + wxpayCertPath)), StandardCharsets.UTF_8); // 动态获取序列号 String serialNo = getCertificateSerialNo(); RSAAutoCertificateConfig config = new RSAAutoCertificateConfig.Builder() .merchantId(WxpayConfig.mchId) .privateKey(privateKeyContent) .merchantSerialNumber(serialNo) .apiV3Key(WxpayConfig.apiKey) .build(); // 修复1:使用新的NotificationParser方式(推荐) // =============== 推荐方式:使用NotificationParser =============== NotificationParser parser = new NotificationParser(config); // 构建请求参数 com.wechat.pay.java.core.notification.RequestParam requestParam = new com.wechat.pay.java.core.notification.RequestParam.Builder() .serialNumber(request.getHeader("Wechatpay-Serial")) .nonce(request.getHeader("Wechatpay-Nonce")) .signature(request.getHeader("Wechatpay-Signature")) .timestamp(request.getHeader("Wechatpay-Timestamp")) .body(requestBody) .build(); // 解析为Transaction对象 Transaction transaction = parser.parse(requestParam, Transaction.class); System.out.println("微信回调验签成功!"); System.out.println("requestBody="); System.out.println(requestBody); System.out.println("requestParam="); System.out.println(requestParam); // 转换微信支付回调数据为Wxpay对象 Wxpay wxpay = new Wxpay(); wxpay.setOut_trade_no(transaction.getOutTradeNo()); wxpay.setTransaction_id(transaction.getTransactionId()); // 金额处理:分转元 float totalAmount = (float) transaction.getAmount().getTotal() / 100; wxpay.setTotal_fee(totalAmount); String description = transaction.getDescription(); // 关键修正! String[] parts = description.split(";", 2); // 按分号分割