Parcourir la source

feat:app-处方单支付问题修复

caoliqin il y a 4 semaines
Parent
commit
e5d1a8047a

+ 10 - 0
fs-service/src/main/java/com/fs/app/service/impl/AppPayServiceImpl.java

@@ -8,6 +8,7 @@ import com.fs.his.domain.FsPayConfig;
 import com.fs.his.domain.MerchantAppConfig;
 import com.fs.his.service.IFsInquiryOrderService;
 import com.fs.his.service.IFsPackageOrderService;
+import com.fs.his.service.IFsStoreOrderService;
 import com.fs.hisStore.service.IFsStoreOrderScrmService;
 import com.fs.live.service.ILiveOrderService;
 import com.fs.system.domain.SysConfig;
@@ -47,6 +48,10 @@ public class AppPayServiceImpl implements AppPayService {
     @Autowired
     private IFsUserVipOrderService vipOrderService;
 
+    @Lazy
+    @Autowired
+    private IFsStoreOrderService fsStoreOrderService;
+
 
     /**
      * 支付宝回调
@@ -114,6 +119,11 @@ public class AppPayServiceImpl implements AppPayService {
                 break;
             case "store":
                 storeOrderService.payConfirm(1, null,tradeNoArr[1],"",result.getTransactionId(),"");
+                break;
+                // 表示app的处方订单
+            case "storeOrder":
+                fsStoreOrderService.payConfirm("", tradeNoArr[1],"","",1,result.getTransactionId(),"");
+                break;
             case "live":
                 liveOrderService.payConfirm(1, null,tradeNoArr[1],"",result.getTransactionId(),"");
                 break;

+ 7 - 4
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -1456,7 +1456,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
 
         FsUser user = userService.selectFsUserByUserId(order.getUserId());
         Map<String, BigDecimal> data = new HashMap<>();
-        if (user != null && StringUtils.isNotEmpty(user.getMaOpenId())) {
+        if (user != null && (StringUtils.isNotEmpty(user.getMaOpenId()) || StringUtils.isNotEmpty(user.getAppOpenId()))) {
             if (param.getUserCouponId() != null && param.getUserCouponId() > 0l) {
                 FsUserCoupon userCoupon = userCouponService.selectFsUserCouponById(param.getUserCouponId());
                 if (userCoupon == null) {
@@ -3155,15 +3155,18 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                     payConfig.setMchKey(fsPayConfig.getWxAppMchKey());
                     payConfig.setSubAppId(org.apache.commons.lang3.StringUtils.trimToNull(null));
                     payConfig.setSubMchId(org.apache.commons.lang3.StringUtils.trimToNull(null));
-                    payConfig.setKeyPath(null);
+                    payConfig.setKeyPath(fsPayConfig.getWxAppKeyPath());
                     payConfig.setNotifyUrl(fsPayConfig.getWxAppNotifyUrl());
+                    log.info("payConfig支付参数,{}:", payConfig);
                     wxPayService.setConfig(payConfig);
                     WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
                     orderRequest.setBody("药品订单支付");
-                    orderRequest.setOutTradeNo("store-"+storePayment.getPayCode());
+                    orderRequest.setOutTradeNo("storeOrder-"+storePayment.getPayCode());
                     orderRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(storePayment.getPayMoney().toString()));
                     orderRequest.setTradeType("APP");
-                    orderRequest.setNotifyUrl(fsPayConfig.getNotifyUrlScrm());
+                    orderRequest.setNotifyUrl(fsPayConfig.getWxAppNotifyUrl());
+                    orderRequest.setSpbillCreateIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
+                    log.info("orderRequest请求参数,{}:", orderRequest);
                     //调用统一下单接口,获取"预支付交易会话标识"
                     try {
                         Object result = wxPayService.createOrder(orderRequest);