id; $re=QJUser::where('user_id',$id)->first(); if (!$re){ if (Carbon::now()>'2024-11-18 10:00:00'){ return $this->error(50014,'','报名已结束'); } return $this->error(50014,'','未开通快捷支付'); } $res=QJBankInfo::where('qj_user_id',$id)->where('trans_status','S')->first(); if (!$res){ if (Carbon::now()>'2024-11-18 10:00:00'){ return $this->error(50014,'','实战营报名已结束'); } return $this->error(50014,'','未开通快捷支付'); } if (!$res->token_no){ if (Carbon::now()>'2024-11-18 10:00:00'){ return $this->error(50014,'','实战营报名已结束'); } return $this->error(50014,'','未开通快捷支付'); } $status=QJEnrollSZOnline::where('is_pay',1)->where('user_id',$id)->first(); if (!$status){ return $this->success(['id'=>$res->id]); } return $this->success(['status'=>1,'info'=>'报名成功','time'=>Carbon::parse($status->created_at)->toDateTimeString(), 'pay_number'=>$status->pay_number,'money'=>199]); } public function QuickBankPay(Request $request){ $time='2024-11-15 16:00:00'; if (Carbon::now()<$time){ return $this->error(500214,'','暂未开始报名!'); } if (Carbon::now()>'2024-11-18 10:00:00'){ return $this->error(50014,'','实战营报名已结束'); } $ReqSeqId=date("YmdHis") . mt_rand(); $ids=Auth::user()->id; $online=EnrollOnline::where('user_id',$ids)->first(); if (!$online){ $online=new EnrollOnline(); $online->user_id=$ids; $online->is_pay=0; $online->season=71; $online->type=0; $online->enroll_no=$ReqSeqId; $online->cost=199; $online->save(); } if ($online->is_pay==1){ return $this->error(500214,'','已报名,请回到首页刷新'); } $publicKey=\config('HFConfig.rsa_huifu_public_key'); $orderID=date('YmdHis').$ids.random_int(100,999); $huifuID=\config('HFConfig.huifu_id'); $QJEnroll=new QJEnrollSZOnline(); $QJEnroll->user_id=$ids; $QJEnroll->pay_number=$orderID; $QJEnroll->season=71; $QJEnroll->req_seq_id=$ReqSeqId; $QJEnroll->save(); $id=$request->input('id'); $QJBank=QJBankInfo::find($id); $data=[ 'trans_amt'=>"199.00", 'req_seq_id'=>$ReqSeqId, 'card_bind_id'=>$QJBank->token_no, 'notify_url'=>'http://ppp.woaidakele.cn/api/text_notify_url', 'user_huifu_id'=>$QJBank->cust_id, 'good_desc'=>'第71届创业实战营线上报名费用', 'huifu_id'=>$huifuID, ]; $re=new V2TradeOnlinepaymentQuickpayApply(); $result=$re->index($data); if (!$result || $result->isError()) { //失败处理 return $this->error('400',$result -> getErrorInfo()); } $result=$this->object_to_array($result); $rspDatas = $result['rspDatas']; $res = BsPayTools::verifySign_sort($rspDatas['sign'],$rspDatas['data'],$publicKey); if($res){ if(isset($rspDatas['data']['resp_code']) && $rspDatas['data']['resp_code']=='00000000'){ return $this->success(['id'=>$QJEnroll->id]); } if(isset($rspDatas['data']['resp_code']) && $rspDatas['data']['resp_code']=='00000100'){ return $this->success(['id'=>$QJEnroll->id]); } } $QJEnroll->message.=$rspDatas['data']['resp_desc']; $QJEnroll->save(); return $this->error(500214,'',$rspDatas['data']['resp_desc']); } //上传验证码 public function QuickBankSms(Request $request){ $id=$request->input('id'); $QJEnroll=QJEnrollSZOnline::find($id); if (!$QJEnroll){ return $this->error(500214,'','请重新获取验证码'); } $huifuID=\config('HFConfig.huifu_id'); $publicKey=\config('HFConfig.rsa_huifu_public_key'); $sms_code=$request->input('sms_code'); $data=[ 'huifu_id'=>$huifuID, 'req_seq_id'=>$QJEnroll->req_seq_id, 'sms_code'=>$sms_code, 'goods_desc'=>'报名费用', 'notify_url'=>'http://ppp.woaidakele.cn/api/text_notify_url', ]; $re=new V2TradeOnlinepaymentQuickpayConfirm(); $result=$re->index($data); if (!$result || $result->isError()) { //失败处理 return $this->error('400',$result -> getErrorInfo()); } $result=$this->object_to_array($result); $rspDatas = $result['rspDatas']; $res = BsPayTools::verifySign_sort($rspDatas['sign'],$rspDatas['data'],$publicKey); if($res){ if(isset($rspDatas['data']['trans_stat']) && $rspDatas['data']['trans_stat']=='P'){ return $this->success(['status'=>0]); } if (isset($rspDatas['data']['trans_stat']) && $rspDatas['data']['trans_stat']=='S'){ $QJEnroll->is_pay=1; $QJEnroll->save(); EnrollOnline::where('user_id',$QJEnroll->user_id)->update(['is_pay'=>1]); return $this->success(['status'=>1]); } } $QJEnroll->message.=$rspDatas['data']['resp_desc']; $QJEnroll->save(); return $this->error(50214,'',$rspDatas['data']['resp_desc']); } public function CheckStatus(Request $request){ $id=$request->input('id'); $QJEnroll=QJEnrollSZOnline::find($id); $huifuID=\config('HFConfig.huifu_id'); $data=[ 'huifu_id'=>$huifuID, 'org_req_seq_id'=>$QJEnroll->req_seq_id, 'org_hf_req_id'=>'', 'org_req_date'=>Carbon::parse($QJEnroll->created_at)->format('Ymd') ]; $publicKey=\config('HFConfig.rsa_huifu_public_key'); $re=new V2TradeOnlinepaymentQuery(); $result=$re->index($data); if (!$result || $result->isError()) { //失败处理 return $this->error('400',$result -> getErrorInfo()); } $result=$this->object_to_array($result); $rspDatas = $result['rspDatas']; $res = BsPayTools::verifySign_sort($rspDatas['sign'],$rspDatas['data'],$publicKey); if($res){ if(isset($rspDatas['data']['trans_stat']) && $rspDatas['data']['trans_stat']=='P'){ return $this->success(['status'=>0]); } if (isset($rspDatas['data']['trans_stat']) && $rspDatas['data']['trans_stat']=='S'){ $QJEnroll->is_pay=1; $QJEnroll->number=$rspDatas['data']['org_hf_seq_id']; $QJEnroll->save(); EnrollOnline::where('user_id',$QJEnroll->user_id)->update(['is_pay'=>1]); try { $user=User::find($QJEnroll->user_id); $mobile=Crypt::decryptString($user->uuid); $this->send_code($mobile,71,'线上实战营','199'); }catch (\Exception $exception){ Log::error('发送短信失败!'.$exception->getMessage()); } return $this->success(['status'=>1]); } } if (isset($rspDatas['data']['bank_desc'])){ $QJEnroll->message=$rspDatas['data']['bank_desc']; $QJEnroll->save(); return $this->error(400,'',$rspDatas['data']['bank_desc']); } $QJEnroll->message.=$rspDatas['data']['resp_desc']; $QJEnroll->save(); return $this->error(400,'',$rspDatas['data']['resp_desc']); } public function send_code($number,$season,$str,$cost) { $sms = new EasySms(config('easysms')); try { $result = $sms->send($number, [ 'content' => "【大卫博士】你已成功报名“第{$season}届大卫博士{$str}”,支付金额为{$cost}元。请及时关注群内通知,准时参加。" ]); } catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) { $message = $exception->getException('qcloud')->getMessage(); Log::error('{短信发送错误------------}' . $message . '{---------------短信发送错误}'); } } public function GetEnrollInfo(){ $enroll_start_time='2024-11-16 10:00:00'; $enroll_end_time='2024-11-18 10:00:00'; $live_start_time='2024-11-19 08:00:00'; $live_end_time='2024-11-20 18:00:00'; $re=EnrollOnline::where('user_id',Auth::user()->id)->first(); $path=''; if ($re){ $pay_status=0; $status=1; if ($re->is_pay==1){ $pay_status=1; $path=$re->message; } }else{ $status=0; $pay_status=0; } $season=71; $limit_num=40000; $cost=199; $data=['start_time'=>$live_start_time, 'end_time'=>$live_end_time, 'enroll_start_time'=>$enroll_start_time, 'enroll_end_time'=>$enroll_end_time, 'season'=>$season,'cost'=>$cost, 'limit_num'=>$limit_num,'num'=>0, 'status'=>$status,'pay_status'=>$pay_status,'path'=>$path ]; return $this->success($data); } public function GetAddress(){ try { $id=Auth::user()->id; $address=EnrollOnline::where('user_id',$id)->where('is_pay',1)->first(); if ($address){ if ($address->address_info){ $re=Crypt::decryptString($address->address_info); $arr=json_decode($re,true); $arr['mobile']=mb_substr($arr['mobile'],0,3).'****'.mb_substr($arr['mobile'],'-4'); // $arr['address']='*******'; return $this->success($arr); } }else{ return $this->error(500214,'','当前用户未报名'); } $data=[ 'username'=>'', 'mobile'=>'', 'province'=>'', 'city'=>'', 'area'=>'', 'address'=>'', ]; return $this->success($data); }catch (\Exception $exception){ $data=[ 'username'=>'', 'mobile'=>'', 'province'=>'', 'city'=>'', 'area'=>'', 'address'=>'', ]; return $this->success($data); } } public function UpdateAddAddress(Request $request){ $address=EnrollOnline::where('user_id',Auth::user()->id)->first(); if (!$address){ return $this->error(50021,'','当前用户没有报名!'); } $data=[ 'username'=>$request->input('username'), 'mobile'=>$request->input('mobile'), 'province'=>$request->input('province'), 'city'=>$request->input('city'), 'area'=>$request->input('area'), 'address'=>$request->input('address'), ]; $str=Crypt::encryptString(json_encode($data)); $address->address_info=$str; $address->save(); return $this->success($data); } }