12
0

2 Commitit 096cd431c2 ... e7ef6eba2b

Tekijä SHA1 Viesti Päivämäärä
  fcw e7ef6eba2b Merge remote-tracking branch 'origin/sit' into sit 6 päivää sitten
  fcw a47678b548 fix(payment): 修复支付宝支付策略和支付控制器逻辑 6 päivää sitten

+ 9 - 9
alien-store/src/main/java/shop/alien/store/controller/PaymentController.java

@@ -72,18 +72,18 @@ public class PaymentController {
             @RequestParam(required = false) String payAmount) {
         log.info("PaymentController:prePay, price: {}, subject: {}, payType: {}, orderNo: {}, storeId: {}", price, subject, payType, orderNo, storeId);
         try {
-            if ("wechatPayMininProgram".equals(payType) && storeId != null && orderNo != null && payer != null) {
-                return diningServiceFeign.prePay(
-                        authHeader(request), price, subject, payType, payer, orderNo, storeId,
-                        couponId, payerId, tablewareFee, discountAmount, payAmount);
-            }
+//            if ("wechatPayMininProgram".equals(payType) && storeId != null && orderNo != null && payer != null) {
+//                return diningServiceFeign.prePay(
+//                        authHeader(request), price, subject, payType, payer, orderNo, storeId,
+//                        couponId, payerId, tablewareFee, discountAmount, payAmount);
+//            }
             // 微信服务商 APP:传入 orderNo 时与小程序策略一致,绑定/刷新 store_order 与微信商户单号
             if ("wechatPayPartner".equals(payType) && storeId != null && orderNo != null) {
                 return paymentStrategyFactory.getStrategy(payType).createPrePayOrder(
                         price, subject, payer, orderNo, storeId, couponId, payerId,
                         tablewareFee, discountAmount, payAmount);
             }
-            if ("aliPayPartner".equals(payType) && storeId != null && orderNo != null && payer != null) {
+            if ("aliPayPartner".equals(payType)) {
                 return paymentStrategyFactory.getStrategy(payType).createPreAliPayOrder(orderNo, price, subject, smid, storeId);
             }
             return paymentStrategyFactory.getStrategy(payType).createPrePayOrder(price, subject, storeId);
@@ -143,9 +143,9 @@ public class PaymentController {
             @RequestParam String payType,
             @RequestParam(required = false) Integer storeId) {
         try {
-            if ("wechatPayMininProgram".equals(payType) && storeId != null) {
-                return diningServiceFeign.searchOrderByOutTradeNoPath(transactionId, payType, storeId);
-            }
+//            if ("wechatPayMininProgram".equals(payType) && storeId != null) {
+//                return diningServiceFeign.searchOrderByOutTradeNoPath(transactionId, payType, storeId);
+//            }
             return paymentStrategyFactory.getStrategy(payType).searchOrderByOutTradeNoPath(transactionId, storeId);
         } catch (Exception e) {
             return R.fail(e.getMessage());

+ 12 - 4
alien-store/src/main/java/shop/alien/store/strategy/payment/impl/AlipayPartnerPaymentStrategyImpl.java

@@ -24,10 +24,8 @@ import shop.alien.util.common.constant.PaymentEnum;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.Base64;
+import java.util.*;
 import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
 
 @Slf4j
 @Component
@@ -52,12 +50,14 @@ public class AlipayPartnerPaymentStrategyImpl implements PaymentStrategy {
         AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
 
         // 设置商户订单号
+        // 生成随机订单号
+        orderNo = "alipay_zft_" + System.currentTimeMillis() + new Random().nextInt(999999);
         model.setOutTradeNo(orderNo);
 
         // 设置订单总金额
         // 除以100
         BigDecimal total = new BigDecimal(amount).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
-        model.setTotalAmount(total.toPlainString());
+//        model.setTotalAmount(total.toPlainString());
 
         // 设置订单标题
         model.setSubject(subject);
@@ -119,6 +119,14 @@ public class AlipayPartnerPaymentStrategyImpl implements PaymentStrategy {
 //        queryOptions.add("hyb_amount");
 //        queryOptions.add("enterprise_pay_info");
 //        model.setQueryOptions(queryOptions);
+        SettleInfo settleInfo = new SettleInfo();
+        SettleDetailInfo settleDetailInfo = new SettleDetailInfo();
+        settleDetailInfo.setTransIn("defaultSettle");
+        settleDetailInfo.setAmount(total.toString());
+        List<SettleDetailInfo>  settleDetailInfos = new ArrayList<>();
+        settleDetailInfos.add(settleDetailInfo);
+        settleInfo.setSettleDetailInfos(settleDetailInfos);
+        model.setSettleInfo(settleInfo);
 
         request.setNotifyUrl("https://frp-off.com:40279/alienStore/alipayPartnerNotify");
         request.setBizModel(model);