auth->id; $order_no = createUniqueNo('W',$auth_id); //成员信息 $member_info = Db::name('user_member')->where('user_id',$auth_id)->where('id',$member_id)->find(); if(empty($member_info)){ $this->error('不存在的就诊者'); } //医生信息 $doctor_info = Db::name('doctor_info')->where('doctor_id',$doctor_id)->find(); if(empty($doctor_info)){ $this->error('不存在的医生'); } //ordertype if(!in_array($ordertype,[1,2])){ $this->error(); } //价格 $price = 0; if($ordertype == 1){ if($doctor_info['typing_switch'] != 1){ $this->error('该医生未开通图文问诊'); } $price = $doctor_info['typing_price']; } if($ordertype == 2){ if($doctor_info['video_switch'] != 1){ $this->error('该医生未开通视频问诊'); } $price = $doctor_info['video_price']; } if($price <= 0){ $this->error('价格为零'); } //订单数据 $order_data = [ 'order_no' => $order_no, 'user_id' => $auth_id, 'member_id' => $member_id, 'doctor_id' => $doctor_id, 'ordertype' => $ordertype, 'total_fee' => $price, 'book_time' => strtotime($book_time), 'createtime' => time(), 'status' => 0, ]; Db::startTrans(); //下单 $order_id = Db::name('wenzhen_order')->insertGetId($order_data); if(!$order_id){ Db::rollback(); $this->error('下单失败'); } //订单附表,就诊人信息 $member_data = $member_info; unset($member_data['id']); $member_data['order_id'] = $order_id; $member_data['member_id'] = $member_info['id']; $member_data['member_disease'] = $member_disease; $member_data['member_images'] = $member_images; $order_member_id = Db::name('wenzhen_order_member')->insertGetId($member_data); if(!$order_member_id){ Db::rollback(); $this->error('下单失败'); } // Db::commit(); $this->success('下单成功',$order_id); } //支付订单 public function pay_order(){ $order_id = input('order_id',0); $pay_type = input('pay_type','wechat'); //pay_type if(!in_array($pay_type,['wechat','alipay'])){ $this->error(); } //订单详情 $wenzhen_order = Db::name('wenzhen_order')->where('user_id',$this->auth->id)->where('id',$order_id)->find(); if(empty($wenzhen_order)){ $this->error('不存在的订单'); } if($wenzhen_order['status'] != 0){ $this->error('该订单不能支付'); } //创建订单 $platform = 'app'; $data = []; $data['user_id'] = $this->auth->id; $data['out_trade_no'] = createUniqueNo('W',$this->auth->id); $data['order_amount'] = $wenzhen_order['total_fee']; $data['createtime'] = time(); $data['pay_type'] = $pay_type; $data['platform'] = $platform; $data['order_status'] = 0; $data['table_name'] = 'wenzhen_order'; $data['table_id'] = $order_id; $data['args'] = ''; $orderid = Db::name('pay_order')->insertGetId($data); $openid = ''; //下单 $params = [ 'type' => $pay_type, 'orderid' => $data['out_trade_no'], 'title' => '支付订单', 'amount' => $data['order_amount'], 'method' => $platform, 'openid' => $openid, 'notifyurl' => config('pay_notify_url').'/api/notify/wenzhen_notify_base/paytype/'.$pay_type, 'returnurl' => '', ]; $res = Service::submitOrder($params); if($pay_type == 'wechat'){ $this->success('success',json_decode($res,true)); }else{ $this->success('success',$res); } } }