Browse Source

混合支付的下单

lizhen_gitee 4 days ago
parent
commit
7414526570
1 changed files with 14 additions and 9 deletions
  1. 14 9
      addons/shopro/service/order/OrderCreate.php

+ 14 - 9
addons/shopro/service/order/OrderCreate.php

@@ -1140,6 +1140,19 @@ class OrderCreate
             });
         }
 
+        //善豆支付
+        $pay_bean = floatval($result['bean']);
+        if ($order->status == Order::STATUS_UNPAID && $pay_bean > 0) {
+            // 如果订单未支付,并且使用了余额混合支付 (支付失败,不影响订单状态)
+            $order = Db::transaction(function () use ($order, $pay_bean) {
+                $payOper = new PayOper();
+                // 余额支付,并判断是否直接支付成功了
+                $order = $payOper->bean($order, $pay_bean, 'order');
+
+                return $order;
+            });
+        }
+
         return $order;
     }
 
@@ -1163,8 +1176,7 @@ class OrderCreate
             $orderData['score_amount'] = $result['score_amount'];
             $orderData['pay_fee'] = $result['pay_fee'];
             $orderData['original_pay_fee'] = $result['pay_fee'];        // 记录支付总金额,后面可能会订单改价
-//            $orderData['remain_pay_fee'] = $result['pay_fee'];          // 这里还是显示应支付总金额,扣除动作放到实际支付时
-            $orderData['remain_pay_fee'] = $result['temp_remain_pay_fee'];          // 这里提前扣除善豆,取消订单再返回
+            $orderData['remain_pay_fee'] = $result['pay_fee'];          // 这里还是显示应支付总金额,扣除动作放到实际支付时
             $orderData['total_discount_fee'] = $result['total_discount_fee'];
             $orderData['coupon_discount_fee'] = $result['coupon_discount_fee'];
             $orderData['promo_discount_fee'] = $result['promo_discount_fee'];
@@ -1242,13 +1254,6 @@ class OrderCreate
                 $result['coupon']->allowField(true)->save();
             }
 
-            // 将善豆扣掉
-            $walletService = new Wallet();
-            if($result['goods_bean_amount'] > 0){
-                if (!$walletService->change($this->user->id, -$result['goods_bean_amount'], 'bean', 131, '商城购物抵扣', 'shopro_order', $order->id)) {
-                    error_stop($walletService->getMessage());
-                }
-            }
             //bill表args
             $bill_args = [];