소스 검색

监听支付结果

wujiefeng 1 년 전
부모
커밋
d68b0e8a20

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/model/pay/ChinaumsSenselessSrcReserve.java

@@ -12,5 +12,5 @@ public class ChinaumsSenselessSrcReserve {
 
     private String userId;
 
-    private ShareOrder shareOrder;
+    private String orderNo;
 }

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/ChinaumsSenselessPayService.java

@@ -307,7 +307,7 @@ public class ChinaumsSenselessPayService extends SuperService {
         shareOrder.setShareOrderType(ShareOrderType.Pay);
         shareOrder.setShareOrderNo(shareOrderNo);
         shareOrderDao.save(shareOrder);
-        request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid)));
+        request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid, "orderNo", orderNo)));
         payProductParameter.setMeta(BeanUtil.bean2Map(request));
         com.github.microservice.pay.client.ret.ResultContent<Object> collectionResultContent = senselessPayService.collection(payProductParameter);
         return ResultContent.buildContent(collectionResultContent.getContent());

+ 9 - 5
FullCardServer/src/main/java/com/zhongshu/card/server/core/stream/ChinaumsSenselessPayStream.java

@@ -14,6 +14,7 @@ import com.zhongshu.card.server.core.service.payment.OrderNoInfoService;
 import com.zhongshu.card.server.core.service.payment.PayCallService;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -38,24 +39,27 @@ public class ChinaumsSenselessPayStream extends StreamConsumer<ChinaSenselessPay
     public void accept(ChinaSenselessPayRet chinaSenselessPayRet) {
         log.info("****************收到银联支付/退款结果通知:{}", JsonUtil.toJson(chinaSenselessPayRet));
 
-        OrderNoType orderNoType = orderNoInfoService.getOrderNoType(chinaSenselessPayRet.getMchntOrderId());
+
 
         String srcReserveStr = chinaSenselessPayRet.getSrcReverse();
         ChinaumsSenselessSrcReserve srcReserve = JsonUtil.toObject(srcReserveStr, ChinaumsSenselessSrcReserve.class);
+        String merOrderId = srcReserve.getOrderNo();
+        OrderNoType orderNoType = orderNoInfoService.getOrderNoType(merOrderId);
+
         if (orderNoType.equals(OrderNoType.Pay)){
             ResultContent<List<TransactionLogModel>> listResultContent = chinaumsSenselessPayService.handlePay(srcReserve.getProjectOid(),
                     srcReserve.getOid(),
                     srcReserve.getUserId(),
                     new BigDecimal(chinaSenselessPayRet.getTotalAmount()),
-                    chinaSenselessPayRet.getMchntOrderId(), null);
-            payCallService.unionFrictionlessPayFinish(chinaSenselessPayRet.getMchntOrderId(), listResultContent, chinaSenselessPayRet.getStatus());
+                    merOrderId, null);
+            payCallService.unionFrictionlessPayFinish(merOrderId, listResultContent, chinaSenselessPayRet.getStatus());
         }else if (orderNoType.equals(OrderNoType.Refund)){
             ResultContent<List<TransactionLogModel>> listResultContent = chinaumsSenselessPayService.handleRefund(srcReserve.getProjectOid(),
                     srcReserve.getOid(),
                     srcReserve.getUserId(),
                     new BigDecimal(chinaSenselessPayRet.getTotalAmount()),
-                    chinaSenselessPayRet.getMchntOrderId(), null);
-            payCallService.unionFrictionlessPayRefundFinish(chinaSenselessPayRet.getMchntOrderId(), listResultContent, chinaSenselessPayRet.getStatus());
+                    merOrderId, null);
+            payCallService.unionFrictionlessPayRefundFinish(merOrderId, listResultContent, chinaSenselessPayRet.getStatus());
         }else {
             log.info("未知的订单类型");
         }