2 Commits

Author SHA1 Message Date
6ce0c48aec 增加适配联通活动 2022-03-09 10:16:51 +08:00
ccaccbd129 修不过 2022-02-24 13:35:08 +08:00

View File

@@ -2,8 +2,10 @@
namespace XuanChen\WoUnicom;
use App\Helpers\Helper;
use App\Models\ActivitySchoolOrder;
use App\Models\ActivityPetroOrder;
use App\Models\ActivityUnicomOrder;
use App\Models\Payment;
use App\Models\Welfare;
use App\Models\WelfareOrder;
@@ -110,9 +112,9 @@ class WoUnicom
//验签成功
if ($res === true) {
//福利订单
if (Str::is('WEAL*', $data['orderid'])) {
$channel = Helper::getChannel($data['orderid']);
switch ($channel) {
case 'welfare':
$order = WelfareOrder::where('orderid', $data['orderid'])->first();
if ($order && $order->status == 'UNPAY') {
$payment = $order->payment;
@@ -123,11 +125,11 @@ class WoUnicom
]);
$order->paid();
}
} elseif (Str::is('AS*', $data['orderid'])) {
break;
case 'school':
$order = ActivitySchoolOrder::where('orderid', $data['orderid'])->first();
if ($order && $order->state == 'UNPAY') {
$payment = \App\Models\Payment::where('orderable_type', get_class($order))
$payment = Payment::where('orderable_type', get_class($order))
->where('orderable_id', $order->id)
->latest()
->first();
@@ -139,10 +141,11 @@ class WoUnicom
$payment->save();
$order->paid();
}
} elseif (Str::is('ASO*', $data['orderid'])) {
break;
case 'petro':
$order = ActivityPetroOrder::where('orderid', $data['orderid'])->first();
if ($order && $order->state == 'UNPAY') {
$payment = \App\Models\Payment::where('orderable_type', get_class($order))
$payment = Payment::where('orderable_type', get_class($order))
->where('orderable_id', $order->id)
->latest()
->first();
@@ -154,11 +157,11 @@ class WoUnicom
$payment->save();
$order->paid();
}
} else {
$order = \App\Models\Order::where('orderid', $data['orderid'])->first();
break;
case 'unicom':
$order = ActivityUnicomOrder::where('orderid', $data['orderid'])->first();
if ($order && $order->state == 'UNPAY') {
$payment = \App\Models\Payment::where('orderable_type', get_class($order))
$payment = Payment::where('orderable_type', get_class($order))
->where('orderable_id', $order->id)
->latest()
->first();
@@ -170,14 +173,29 @@ class WoUnicom
$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 '验签失败';
}
}