Browse Source

同步物流到微信

xdd 2 ngày trước cách đây
mục cha
commit
8ef6f264e2

+ 9 - 0
fs-admin/src/main/java/com/fs/task/ExpressTask.java

@@ -2,6 +2,7 @@ package com.fs.task;
 
 import com.fs.common.annotation.QuartzRunnable;
 import com.fs.express.IExpressService;
+import com.fs.store.service.IFsStoreOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -15,6 +16,9 @@ public class ExpressTask {
 
     @Autowired
     private IExpressService expressService;
+
+    @Autowired
+    private IFsStoreOrderService fsStoreOrderService;
     /**
      * 推送物流信息到快递鸟定时任务
      */
@@ -23,4 +27,9 @@ public class ExpressTask {
         expressService.subscribeExpress();
     }
 
+    @QuartzRunnable(name="同步物流信息到微信")
+    public void syncExpressToWx(){
+        fsStoreOrderService.syncExpressToWx();
+    }
+
 }

+ 3 - 3
fs-api/src/main/java/com/fs/app/controller/PayController.java

@@ -144,9 +144,9 @@ public class PayController {
 
     @ApiOperation("易宝第三方支付回调")
     @PostMapping(value="/ybPayNotify")
-    public String ybPayNotify( @RequestBody String jsonBody ) throws Exception {
+    public String ybPayNotify(@RequestBody OrderCallback o) throws Exception {
+        logger.info("易宝支付回调: {} ",o);
         //验证
-        OrderCallback o= JSONUtil.toBean(jsonBody, OrderCallback.class);
         if(o.getState().equals("0")){
             OrderQueryDTO orderQueryDTO = new OrderQueryDTO();
             orderQueryDTO.setLowOrderId(o.getLowOrderId());
@@ -161,7 +161,7 @@ public class PayController {
                     return storePaymentService.payConfirm(order[1],o.getUpOrderId(),orderResult.getBankTrxId(),orderResult.getBankOrderId());
             }
         }
-        return "";
+        return "SUCCESS";
 
     }
     @ApiOperation("汇付第三方支付回调")

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/mapper/FsStorePaymentMapper.java

@@ -372,7 +372,7 @@ public interface FsStorePaymentMapper
     /**
      * 一个小时状态还没有变化
      */
-    @Select("select * from fs_store_payment where pay_mode='tzbk' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 10 MINUTE)")
+    @Select("select * from fs_store_payment where pay_mode='yb' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 10 MINUTE)")
     List<FsStorePayment> queryPendingDelayState();
 
     @Select("select count(1) from fs_store_payment where order_id=${orderId} limit 1")

+ 21 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -61,6 +61,7 @@ import com.fs.pay.pay.domain.RefundResult;
 import com.fs.pay.pay.dto.OrderQueryDTO;
 import com.fs.pay.pay.dto.WxJspayDTO;
 import com.fs.pay.pay.service.PayService;
+import com.fs.pay.pay.util.PayUtil;
 import com.fs.store.cache.IFsUserCacheService;
 import com.fs.store.cache.impl.IFsStoreProductCacheServiceImpl;
 import com.fs.store.config.StoreConfig;
@@ -256,6 +257,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Autowired
     private ShippingService shippingService;
 
+    @Autowired
+    private OrderQueryService orderQueryService;
+
 
     @Override
     public void syncExpressToWx() {
@@ -271,8 +275,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
             OrderKey orderKey = new OrderKey();
             orderKey.setOrderNumberType(2);
-            orderKey.setTransactionId("1");
 
+            FsStorePayment fsStorePayment = paymentService.selectFsStorePaymentByCode(fsWxExpressTask.getPayCode());
+            if(fsStorePayment != null){
+                orderKey.setTransactionId(fsStorePayment.getBankTransactionId());
+            }
 
             FsUser fsUser = fsUserCacheService.selectFsUserById(fsWxExpressTask.getUserId());
             Payer payer = new Payer();
@@ -308,6 +315,19 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     }
 
+    public void test(){
+        OrderQueryRequest orderQueryRequest = new OrderQueryRequest();
+        orderQueryRequest.setAccount("37519015371852");
+        orderQueryRequest.setUpOrderId("91913098449039003648");
+        orderQueryRequest.setIsNeedUpInfo("1");
+
+        String sign = PayUtil.sign(orderQueryRequest.toSignMap());
+        orderQueryRequest.setSign(sign);
+
+        OrderQueryResponse orderQueryResponse = orderQueryService.queryOrder(orderQueryRequest);
+
+    }
+
     /**
      * 查询订单
      *

+ 6 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java

@@ -19,6 +19,7 @@ import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.huifuPay.dto.*;
+import com.fs.pay.pay.util.PayUtil;
 import com.fs.store.domain.*;
 import com.fs.store.service.IFsStoreOrderService;
 import com.fs.store.service.channel.PaymentHandler;
@@ -388,6 +389,9 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
         orderQueryRequest.setUpOrderId(fsStorePayment.getTradeNo());
         orderQueryRequest.setIsNeedUpInfo("1");
 
+        String sign = PayUtil.sign(orderQueryRequest.toSignMap());
+        orderQueryRequest.setSign(sign);
+
         OrderQueryResponse orderQueryResponse = orderQueryService.queryOrder(orderQueryRequest);
         if(ObjectUtil.equal(orderQueryResponse.getStatus(),100)){
             Long orderId = fsStorePayment.getOrderId();
@@ -396,9 +400,10 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
             if("0".equals(orderQueryResponse.getState())){
                 // 如果查询支付成功 更新订单状态
                 cn.hutool.json.JSONObject upInfo = orderQueryResponse.getUpInfo();
+                String bankTrxId = upInfo.getStr("bankTrxId");
                 String bankOrderId = upInfo.getStr("bankOrderId");
                 orderService.payConfirm(1,orderId, fsStorePayment.getPayCode(),
-                        fsStorePayment.getTradeNo(),bankOrderId, fsStorePayment.getTradeNo());
+                        fsStorePayment.getTradeNo(),bankTrxId, bankOrderId);
                 return true;
                 // 1失败 2已撤销
             } else if("1".equals(orderQueryResponse.getState()) || "2".equals(orderQueryResponse.getState())){

+ 1 - 13
fs-user-app/src/main/java/com/fs/app/controller/PaymentController.java

@@ -67,19 +67,7 @@ public class PaymentController extends AppBaseController {
             }
             payment.setUserId(user.getUserId());
 
-            R payment1 = paymentService.payment(payment);
-            // 台州银行销售收款延迟回查兼容,30秒后查询,防止回调失败的情况
-            if(payment1 != null) {
-                Object o = payment1.get("result");
-                if(o != null) {
-                    TzMiniProgramCodeRespDTO tzMiniProgramCodeRespDTO = (TzMiniProgramCodeRespDTO) payment1.get("result");
-                    FsStorePayment fsStorePayment = paymentService.selectFsStorePaymentByCode(tzMiniProgramCodeRespDTO.getPayCode());
-                    if(ObjectUtil.equal(fsStorePayment.getStatus(),0)){
-                        paymentService.delayQueryTzbk(fsStorePayment);
-                    }
-                }
-            }
-            return payment1;
+            return paymentService.payment(payment);
         } catch (WxErrorException e) {
             e.printStackTrace();
             return R.error(e.getMessage());