pics = $pics; $this->content = $content; $this->url = $url; } /** * Execute the job. * * @return void */ public function handle() { $PayLog = new PayLog(); $PayLog->type = 'syn-begin'; $PayLog->trade_no = 'test'; $PayLog->remark = $this->url; $PayLog->save(); $content_noencode = $this->content; $path = Request()->path ? Request()->path : date('Y') . date('m') . "/" . date('d'); require_once base_path('vendor/aliyuncs/oss-sdk-php') . '/autoload.php'; //连接aliyun oss server try { $ossClient = new \OSS\OssClient(config('alioss.id'), config('alioss.secret'), config('alioss.host')); } catch (\OSS\Core\OssException $e) { return $this->failure('oss_connect_failure', $e->getMessage()); } foreach ($this->pics[1] as $key => $value) { $offset = strpos($value,'wx_fmt='); $type = substr($value,$offset+7); $rand = \CommonUtilsService::getTradeNO(); $object = $path . "/" . $rand.'.'. $type; $file_url = 'https://' . config('alioss.picture_domain') . '/' . $object; $return_content = $this->http_get_data($value); $filename = storage_path("qrcode/".time().$rand.'.png'); $fp= @fopen($filename,"a"); //将文件绑定到流 if(!is_resource($fp)){ return; } fwrite($fp,$return_content); //写入文件 $ossClient->uploadFile(config('alioss.buckets.picture'), $object, $filename); fclose($fp); unlink($filename); $file_url = 'src='.$file_url; $data = str_replace($this->pics[0][$key],$file_url,$content_noencode); $content_noencode = $data; } $PayLog = new PayLog(); $PayLog->type = 'syn-wechat'; $PayLog->trade_no = $this->url; $PayLog->remark = $content_noencode; $PayLog->save(); } //接口返回失败 public function failure($msg, $data=[], $jsonp=false){ $result = [ 'code'=> 1, 'message'=> $msg, 'data'=> $data, ]; return Response()->json($result); } public function failed(Exception $exception) { $PayLog = new PayLog(); $rand = 123; $filename = storage_path("wechat/".time().$rand.'.png'); $PayLog->type = $filename; $PayLog->trade_no = $this->url.'-fail'; $PayLog->remark = $exception; $PayLog->save(); } public function http_get_data($url) { $ch = curl_init (); curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt ( $ch, CURLOPT_URL, $url ); ob_start (); curl_exec ( $ch ); $return_content = ob_get_contents (); ob_end_clean (); $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE ); return $return_content; } }