瀏覽代碼

下单加混合支付,没改完

moonsflyer 5 月之前
父節點
當前提交
b757488c11
共有 2 個文件被更改,包括 7 次插入2 次删除
  1. 2 1
      app/common/enum/PayEnum.php
  2. 5 1
      app/common/logic/PaymentLogic.php

+ 2 - 1
app/common/enum/PayEnum.php

@@ -36,7 +36,7 @@ class PayEnum
     const ALI_PAY       = 3; //支付宝支付
     const BYTE_PAY      = 4; //字节支付
     const OFFLINE_PAY   = 5; //线下支付
-
+    const MIXED_PAY   = 6; //混合支付
 
     //支付状态
     const UNPAID = 0; //未支付
@@ -72,6 +72,7 @@ class PayEnum
             self::ALI_PAY => '支付宝支付',
             // self::BYTE_PAY => '字节支付',
             self::OFFLINE_PAY => '线下支付',
+            self::MIXED_PAY =>'余额+微信'
         ];
         if ($value === true) {
             return $data;

+ 5 - 1
app/common/logic/PaymentLogic.php

@@ -111,6 +111,10 @@ class PaymentLogic extends BaseLogic
             case PayEnum::OFFLINE_PAY:
                 $result = [ 'pay_way' => PayEnum::OFFLINE_PAY ];
                 break;
+            case PayEnum::MIXED_PAY:
+                $payService = (new WeChatPayService($terminal, $order['user_id'] ?? null));
+                $result = $payService->pay($from, $order);
+                break;
             default:
                 self::$error = '订单异常';
                 return false;
@@ -163,7 +167,7 @@ class PaymentLogic extends BaseLogic
                 throw new \Exception('订单已支付');
             }
 
-            if (isset($params['code']) && $params['code'] != '' && $params['pay_way'] == PayEnum::WECHAT_PAY) {
+            if (isset($params['code']) && $params['code'] != '' && ($params['pay_way'] == PayEnum::WECHAT_PAY || $params['pay_way'] == PayEnum::MIXED_PAY)) {
                 switch ($terminal) {
                     case UserTerminalEnum::WECHAT_MMP:
                         $response = (new WeChatService())->getMnpResByCode($params);