diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java index 72afccb..a28c47a 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java @@ -150,5 +150,5 @@ public interface VvTradeOrderLineDao extends BaseMapper List selectVvTradeOrderLineByBuyerIdTrackNumber(Long buyerId, String trackNumber); - List selectByTradeOrderIdAndTransactionId(Long tradeOrderId, String transactionId); + List selectByTradeOrderIdAndTransactionId(Long tradeOrderId, @IF String transactionId); } \ No newline at end of file diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppWeiXinPayNotifyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppWeiXinPayNotifyController.java index 09f4dd4..5d17016 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppWeiXinPayNotifyController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppWeiXinPayNotifyController.java @@ -46,19 +46,18 @@ public class AppWeiXinPayNotifyController { // Step 1: 解析微信支付回调通知的JSON ObjectMapper objectMapper = new ObjectMapper(); JsonNode rootNode = objectMapper.readTree(requestBody); - // 获取加密数据 String ciphertext = rootNode.get("resource").get("ciphertext").asText(); String associatedData = rootNode.get("resource").get("associated_data").asText(); String nonce = rootNode.get("resource").get("nonce").asText(); // Step 2: 解密加密数据,使用AES-GCM解密 String decryptedData = decrypt(ciphertext, associatedData, nonce); - // Step 3: 处理解密后的数据 JsonNode resultData = objectMapper.readTree(decryptedData); String transactionId = resultData.get("transaction_id").asText(); // 微信支付订单号 String outTradeNo = resultData.get("out_trade_no").asText(); // 商户订单号 String tradeState = resultData.get("trade_state").asText(); // 支付状态 + log.info("handleWeChatPayCallback outTradeNo:{},tradeState:{},transactionId:{},decryptedData:{}", outTradeNo, tradeState,transactionId,decryptedData); // 根据支付结果处理商户业务逻辑 if ("SUCCESS".equals(tradeState)) { // 支付成功的逻辑,更新订单状态 @@ -66,7 +65,6 @@ public class AppWeiXinPayNotifyController { } // Step 4: 返回处理结果,通知微信支付停止回调 return "{\"code\":\"SUCCESS\",\"message\":\"OK\"}"; - } catch (Exception e) { e.printStackTrace(); // 如果处理失败,返回错误信息 @@ -94,8 +92,8 @@ public class AppWeiXinPayNotifyController { private void updateOrderStatus(String outTradeNo, String transactionId) { // 这里是更新商户订单状态的逻辑,例如标记订单已支付 - log.info("订单 " + outTradeNo + " 已支付,交易号:" + transactionId + "开始更新子订单信息"); - List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectByTradeOrderIdAndTransactionId(NumberUtil.objToLong(outTradeNo), transactionId); + log.info("handleWeChatPayCallback 订单 " + outTradeNo + " 已支付,交易号:" + transactionId + "开始更新子订单信息"); + List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(NumberUtil.objToLong(outTradeNo)); for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) { vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus()); vvTradeOrderLineEntity.setGmtPay(new Date());