From 659931e5881a8632b8bbc27aedd8f80ab6914ffb Mon Sep 17 00:00:00 2001 From: gongfuxiang Date: Sat, 16 Apr 2022 14:54:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=85=8D=E7=BD=AE=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/Payment.php | 2 +- app/service/BuyService.php | 8 ++--- app/service/OrderAftersaleService.php | 6 ++-- app/service/OrderService.php | 24 ++++--------- app/service/PaymentService.php | 49 ++++++++++++++++++++++++--- 5 files changed, 59 insertions(+), 30 deletions(-) diff --git a/app/admin/controller/Payment.php b/app/admin/controller/Payment.php index 00134140a..e3fb9cd56 100755 --- a/app/admin/controller/Payment.php +++ b/app/admin/controller/Payment.php @@ -52,7 +52,7 @@ class Payment extends Common public function Index() { // 插件列表 - $ret = PaymentService::PlugPaymentList(); + $ret = PaymentService::PluginsPaymentList(); MyViewAssign('data_list', $ret['data']); // 不能删除的支付方式 diff --git a/app/service/BuyService.php b/app/service/BuyService.php index 39fcfb561..da0d850f6 100755 --- a/app/service/BuyService.php +++ b/app/service/BuyService.php @@ -1104,13 +1104,13 @@ class BuyService $is_under_line = 0; if(!empty($params['payment_id'])) { - $payment = PaymentService::PaymentList(['where'=>['id'=>intval($params['payment_id'])]]); - if(empty($payment[0])) + $payment = PaymentService::PaymentData(['where'=>['id'=>intval($params['payment_id'])]]); + if(empty($payment)) { return DataReturn('支付方式有误', -1); } - $payment_id = $payment[0]['id']; - $is_under_line = in_array($payment[0]['payment'], MyConfig('shopxo.under_line_list')) ? 1 : 0; + $payment_id = $payment['id']; + $is_under_line = in_array($payment['payment'], MyConfig('shopxo.under_line_list')) ? 1 : 0; // 线下支付订单是否直接成功 // 是否开启线下订单正常进入流程 diff --git a/app/service/OrderAftersaleService.php b/app/service/OrderAftersaleService.php index 221e649ea..d5c71d01a 100644 --- a/app/service/OrderAftersaleService.php +++ b/app/service/OrderAftersaleService.php @@ -1083,8 +1083,8 @@ class OrderAftersaleService private static function OriginalRoadRefundment($params, $aftersale, $order, $pay_log) { // 支付方式 - $payment = PaymentService::PaymentList(['where'=>['payment'=>$pay_log['payment']]]); - if(empty($payment[0])) + $payment = PaymentService::PaymentData(['where'=>['payment'=>$pay_log['payment']]]); + if(empty($payment)) { return DataReturn('支付方式有误', -1); } @@ -1107,7 +1107,7 @@ class OrderAftersaleService 'refund_reason' => $order['order_no'].'订单退款'.$aftersale['price'].'元', 'pay_time' => $pay_log['pay_time'], ]; - $ret = (new $pay_name($payment[0]['config']))->Refund($pay_params); + $ret = (new $pay_name($payment['config']))->Refund($pay_params); if(!isset($ret['code'])) { return DataReturn('支付插件退款处理有误', -1); diff --git a/app/service/OrderService.php b/app/service/OrderService.php index 7b5f4327e..d8b5622d0 100755 --- a/app/service/OrderService.php +++ b/app/service/OrderService.php @@ -156,11 +156,7 @@ class OrderService $payment_id = empty($params['payment_id']) ? Db::name('Order')->where(['id'=>$ids[0]])->value('payment_id') : intval($params['payment_id']); if(!empty($payment_id)) { - $res = PaymentService::PaymentList(['where'=>['id'=>$payment_id]]); - if(!empty($res[0])) - { - $payment = $res[0]; - } + $payment = PaymentService::PaymentData(['where'=>['id'=>$payment_id]]); } if(empty($payment)) { @@ -437,14 +433,12 @@ class OrderService } // 支付方式 - $payment = []; $payment_id = empty($params['payment_id']) ? $order['payment_id'] : intval($params['payment_id']); - $res = PaymentService::PaymentList(['where'=>['id'=>$payment_id]]); - if(empty($res[0])) + $payment = PaymentService::PaymentData(['where'=>['id'=>$payment_id]]); + if(empty($payment)) { return DataReturn('支付方式有误', -1); } - $payment = $res[0]; // 订单用户信息 $user = UserService::GetUserViewInfo($order['user_id']); @@ -575,13 +569,11 @@ class OrderService { return DataReturn('支付方式标记异常', -1); } - $payment = []; - $res = PaymentService::PaymentList(['where'=>['payment'=>$payment_name]]); - if(empty($res[0])) + $payment = PaymentService::PaymentData(['where'=>['payment'=>$payment_name]]); + if(empty($payment)) { return DataReturn('支付方式有误', -1); } - $payment = $res[0]; // 支付数据校验 $pay_name = 'payment\\'.$payment_name; @@ -692,13 +684,11 @@ class OrderService public static function Notify($params = []) { // 支付方式 - $payment = []; - $res = PaymentService::PaymentList(['where'=>['payment'=>PAYMENT_TYPE]]); - if(empty($res[0])) + $payment = PaymentService::PaymentData(['where'=>['payment'=>PAYMENT_TYPE]]); + if(empty($payment)) { return DataReturn('支付方式有误', -1); } - $payment = $res[0]; // 支付数据校验 $pay_name = 'payment\\'.PAYMENT_TYPE; diff --git a/app/service/PaymentService.php b/app/service/PaymentService.php index e7f293388..36eb7033b 100755 --- a/app/service/PaymentService.php +++ b/app/service/PaymentService.php @@ -68,7 +68,7 @@ class PaymentService * @date 2018-09-17 * @desc description */ - public static function PlugPaymentList() + public static function PluginsPaymentList() { // 初始化 self::Init(); @@ -129,8 +129,8 @@ class PaymentService } } - // 支付方式列表钩子 - $hook_name = 'plugins_service_payment_list'; + // 所有支付方式列表钩子 + $hook_name = 'plugins_service_payment_all_list'; MyEventTrigger($hook_name, [ 'hook_name' => $hook_name, 'is_backend' => true, @@ -212,7 +212,46 @@ class PaymentService $where['is_open_user'] = intval($params['is_open_user']); } - $data = Db::name('Payment')->where($where)->field('id,logo,name,sort,payment,config,apply_terminal,apply_terminal_old,element,is_enable,is_open_user')->order('sort asc')->select()->toArray(); + return self::DataListHandle(Db::name('Payment')->where($where)->field('id,logo,name,sort,payment,config,apply_terminal,apply_terminal_old,element,is_enable,is_open_user')->order('sort asc')->select()->toArray()); + } + + /** + * 获取支付方式数据 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2022-04-16 + * @desc description + * @param [array] $params [输入参数] + */ + public static function PaymentData($params = []) + { + // 获取支付数据 + $res = self::PaymentList($params); + $data = empty($res) || empty($res[0]) ? [] : $res[0]; + + // 支付方式数据钩子 + $hook_name = 'plugins_service_payment_data'; + MyEventTrigger($hook_name, [ + 'hook_name' => $hook_name, + 'is_backend' => true, + 'data' => &$data, + ]); + + return $data; + } + + /** + * 列表数据处理 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2022-04-16 + * @desc description + * @param [array] $data [支付方式列表] + */ + public static function DataListHandle($data) + { if(!empty($data) && is_array($data)) { foreach($data as &$v) @@ -1077,7 +1116,7 @@ php; return DataReturn('支付通知入口文件不存在,请联系管理员处理', -11, $result); } } - return DataReturn('校验成功', $result); + return DataReturn('校验成功', 0, $result); } /**