浏览代码

余额支付

lizhen_gitee 1 月之前
父节点
当前提交
9809f5c6da
共有 1 个文件被更改,包括 60 次插入2 次删除
  1. 60 2
      app/Http/Controllers/Api/AskController.php

+ 60 - 2
app/Http/Controllers/Api/AskController.php

@@ -9,6 +9,7 @@ use App\Models\WxOrder;
 use App\Models\User\WxUser;
 use App\Models\User\WxUser;
 use App\Http\Controllers\Api\Traits\PayTrait;
 use App\Http\Controllers\Api\Traits\PayTrait;
 use App\Wen\Utils\Settings;
 use App\Wen\Utils\Settings;
+use App\Wen\Utils\UserUtils;
 
 
 class AskController extends BaseController
 class AskController extends BaseController
 {
 {
@@ -109,6 +110,8 @@ class AskController extends BaseController
 
 
     }
     }
 
 
+    //结束此次咨询
+
     //旁听
     //旁听
     public function sit(Request $request){
     public function sit(Request $request){
         $order_id = _empty_default_($request->order_id,0);
         $order_id = _empty_default_($request->order_id,0);
@@ -178,7 +181,39 @@ class AskController extends BaseController
             return $this->fail(200016,[],'该咨询已经支付过了');
             return $this->fail(200016,[],'该咨询已经支付过了');
         }
         }
 
 
-        //
+        //使用余额支付
+        if($request->pay_type == 'balance'){
+
+            //检查支付密码
+            $this->check_paycode($uid,$request->paycode);
+
+            //检查余额
+            $balance = UserUtils::user_balance($uid);
+            if($balance <= $order['ask_price']){
+                return $this->fail(200012);
+            }
+
+            DB::beginTransaction();
+
+            //余额支付
+            $pay_res = UserUtils::update_user_financial($uid, 11, $order['price'], '您花费了¥'.$order['price'].'余额开通了'.$order['days'].'天会员');
+            if(!$pay_res){
+                DB::rollBack();
+                return $this->fail(200012);
+            }
+            //直接修改订单状态,支付完成
+            $rs1 = DB::table('ask_order')->where('id',$order_id)->update(['status'=>10,'paytime'=>time()]);
+            if(!$rs1){
+                DB::rollBack();
+                return $this->fail([],200,'支付失败');
+            }
+
+            DB::commit();
+
+            return $this->success();
+        }
+
+        //拉起三方支付
         $body = '付费咨询';
         $body = '付费咨询';
         $data['body'] = '付费咨询';
         $data['body'] = '付费咨询';
         $total_fee = $order->ask_price;
         $total_fee = $order->ask_price;
@@ -250,8 +285,31 @@ class AskController extends BaseController
 
 
     }
     }
 
 
+    //检查支付密码
+    private function check_paycode($uid, $paycode){
+
+        //验证支付密码
+        if(_empty_($paycode)){
+            return $this->fail(200004, [], '请先输入支付密码');
+        }
+        if(is_array($paycode) && str_replace(',', '', implode(',', $paycode)) !== get_user_meta($uid, 'paycode', 's')){
+            return $this->fail(200043, [
+                'title' => '支付密码错误',
+                'content' => '已忘记,前往修改?',
+                'confirmText' => '去修改',
+                'target_type' => 6,
+                'target_id' => '/pagesA/mine/paycode/forget'
+            ], '支付密码错误');
+        }
+        if(is_string($paycode) && $paycode !== get_user_meta($uid, 'paycode', 's')){
+            return $this->fail(200004, [], '支付密码不匹配');
+        }
+
+        return true;
+    }
+
     /**
     /**
-     * 创建订单
+     * 创建支付订单
      * $order_type = 101 咨询订单
      * $order_type = 101 咨询订单
      * $order_type = 102 旁听订单
      * $order_type = 102 旁听订单
      */
      */