From ccaccbd129741efb5215fad3cd298af828b7ab70 Mon Sep 17 00:00:00 2001 From: xuanchen120 <122383162@qq.com> Date: Thu, 24 Feb 2022 13:35:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E4=B8=8D=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WoUnicom.php | 119 ++++++++++++++++++++++++----------------------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/src/WoUnicom.php b/src/WoUnicom.php index db0c286..8461815 100644 --- a/src/WoUnicom.php +++ b/src/WoUnicom.php @@ -2,6 +2,7 @@ namespace XuanChen\WoUnicom; +use App\Helpers\Helper; use App\Models\ActivitySchoolOrder; use App\Models\ActivityPetroOrder; use App\Models\Payment; @@ -110,74 +111,74 @@ class WoUnicom //验签成功 if ($res === true) { + $channel = Helper::getChannel($data['orderid']); + switch ($channel) { + case 'welfare': + $order = WelfareOrder::where('orderid', $data['orderid'])->first(); + if ($order && $order->status == 'UNPAY') { + $payment = $order->payment; - //福利订单 - if (Str::is('WEAL*', $data['orderid'])) { - $order = WelfareOrder::where('orderid', $data['orderid'])->first(); - if ($order && $order->status == 'UNPAY') { - $payment = $order->payment; + $payment->paid([ + 'type' => 'UNICOM', + 'payfloodid' => $data['payfloodid'], + ]); + $order->paid(); + } + break; + case 'school': + $order = ActivitySchoolOrder::where('orderid', $data['orderid'])->first(); + if ($order && $order->state == 'UNPAY') { + $payment = Payment::where('orderable_type', get_class($order)) + ->where('orderable_id', $order->id) + ->latest() + ->first(); - $payment->paid([ - 'type' => 'UNICOM', - 'payfloodid' => $data['payfloodid'], - ]); - $order->paid(); - } + $payment->state = 'SUCCESS'; + $payment->out_trade_no = $data['payfloodid']; + $payment->type = 'UNICOM'; + $payment->paid_at = Carbon::now(); + $payment->save(); + $order->paid(); + } + break; + case 'petro': + $order = ActivityPetroOrder::where('orderid', $data['orderid'])->first(); + if ($order && $order->state == 'UNPAY') { + $payment = Payment::where('orderable_type', get_class($order)) + ->where('orderable_id', $order->id) + ->latest() + ->first(); - } elseif (Str::is('AS*', $data['orderid'])) { - $order = ActivitySchoolOrder::where('orderid', $data['orderid'])->first(); - if ($order && $order->state == 'UNPAY') { - $payment = \App\Models\Payment::where('orderable_type', get_class($order)) - ->where('orderable_id', $order->id) - ->latest() - ->first(); - - $payment->state = 'SUCCESS'; - $payment->out_trade_no = $data['payfloodid']; - $payment->type = 'UNICOM'; - $payment->paid_at = Carbon::now(); - $payment->save(); - $order->paid(); - } - } elseif (Str::is('ASO*', $data['orderid'])) { - $order = ActivityPetroOrder::where('orderid', $data['orderid'])->first(); - if ($order && $order->state == 'UNPAY') { - $payment = \App\Models\Payment::where('orderable_type', get_class($order)) - ->where('orderable_id', $order->id) - ->latest() - ->first(); - - $payment->state = 'SUCCESS'; - $payment->out_trade_no = $data['payfloodid']; - $payment->type = 'UNICOM'; - $payment->paid_at = Carbon::now(); - $payment->save(); - $order->paid(); - } - } else { - $order = \App\Models\Order::where('orderid', $data['orderid'])->first(); - - if ($order && $order->state == 'UNPAY') { - $payment = \App\Models\Payment::where('orderable_type', get_class($order)) - ->where('orderable_id', $order->id) - ->latest() - ->first(); - - $payment->state = 'SUCCESS'; - $payment->out_trade_no = $data['payfloodid']; - $payment->type = 'UNICOM'; - $payment->paid_at = Carbon::now(); - $payment->save(); - $order->paid(); - } + $payment->state = 'SUCCESS'; + $payment->out_trade_no = $data['payfloodid']; + $payment->type = 'UNICOM'; + $payment->paid_at = Carbon::now(); + $payment->save(); + $order->paid(); + } + break; + case 'web': + default: + $order = \App\Models\Order::where('orderid', $data['orderid'])->first(); + if ($order && $order->state == 'UNPAY') { + $payment = Payment::where('orderable_type', get_class($order)) + ->where('orderable_id', $order->id) + ->latest() + ->first(); + $payment->state = 'SUCCESS'; + $payment->out_trade_no = $data['payfloodid']; + $payment->type = 'UNICOM'; + $payment->paid_at = Carbon::now(); + $payment->save(); + $order->paid(); + } + break; } $this->updateLog(['SUCCESS']); - return 'SUCCESS'; } else { $this->updateLog(['验签失败']); - return '验签失败'; } }