|
|
@@ -18,6 +18,7 @@ use App\Models\MemberModel;
|
|
|
use App\Models\MessageModel;
|
|
|
use App\Models\OrderModel;
|
|
|
use App\Models\PaymentModel;
|
|
|
+use App\Models\VideoOrderModel;
|
|
|
use App\Models\VipModel;
|
|
|
use App\Services\Api\MessageService;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
@@ -464,7 +465,7 @@ class PaymentService extends BaseService
|
|
|
}
|
|
|
|
|
|
/* TODO 订单验证和状态处理 */
|
|
|
- // 充值订单
|
|
|
+ // VIP购买
|
|
|
if ($scene == 'vip') {
|
|
|
$orderInfo = OrderModel::with(['vip'])->where(['order_no' => $orderNo, 'mark' => 1])
|
|
|
->select(['id as order_id', 'user_id', 'goods_id', 'expired_at', 'order_no', 'total as pay_money', 'pay_at as pay_time', 'remark', 'status'])
|
|
|
@@ -491,7 +492,34 @@ class PaymentService extends BaseService
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- } // 保证金退款
|
|
|
+ } // 视频单集购买
|
|
|
+ if ($scene == 'video') {
|
|
|
+ $orderInfo = VideoOrderModel::where(['order_no' => $orderNo, 'mark' => 1])
|
|
|
+ ->select(['id as order_id', 'user_id', 'goods_id', 'expired_at', 'order_no', 'total as pay_money', 'pay_at as pay_time', 'remark', 'status'])
|
|
|
+ ->first();
|
|
|
+ $orderStatus = isset($orderInfo['status']) ? $orderInfo['status'] : 0;
|
|
|
+ // 验证订单
|
|
|
+ if (empty($orderInfo)) {
|
|
|
+ DB::rollBack();
|
|
|
+ $this->error = 2629;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 订单状态
|
|
|
+ if ($orderStatus != 1) {
|
|
|
+ DB::rollBack();
|
|
|
+ $this->error = 2630;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $updateData = ['pay_at' => $payAt, 'transaction_id' => $transactionId, 'status' => 2, 'update_time' => time()];
|
|
|
+ if (!VideoOrderModel::where(['order_no' => $orderNo, 'mark' => 1])->update($updateData)) {
|
|
|
+ $this->error = 2633;
|
|
|
+ DB::rollBack();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ } // VIP退款
|
|
|
else if ($scene == 'refund') {
|
|
|
$orderInfo = OrderModel::where(['order_no' => $orderNo, 'mark' => 1])
|
|
|
->select(['id as order_id', 'user_id', 'order_no', 'total as pay_money', 'remark', 'pay_at as pay_time', 'refund_status as status'])
|
|
|
@@ -586,7 +614,7 @@ class PaymentService extends BaseService
|
|
|
$this->error = $exception->getMessage();
|
|
|
RedisService::set("caches:payments:notify_{$scene}:catch_" . $orderNo.'_error', ['notify' => $data,'error' => $exception->getMessage(),'trace'=>$exception->getTrace()], 7200);
|
|
|
return false;
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|