client_id; $post_data['client_secret'] = $this->client_secret; $o = ""; foreach ( $post_data as $k => $v ) { $o.= "$k=" . urlencode( $v ). "&" ; } $post_data = substr($o,0,-1); $data = $this->curl($this->url, $post_data); Log::info(' get access_token result:'.json_encode($data)); return $data; } /* * 发票识别 * access_token 百度 access_token 鉴权返回值 * files 发票图片文件 */ public function vat_invoice($access_token, $files){ $file_name_array = explode('.', $files); if(count($file_name_array) < 2){ return false; } $suffix = $file_name_array[count($file_name_array)-1]; //判断文件后缀 if(in_array(strtolower($suffix), ['jpg','jpeg','png','bmp'])){ $param_type = 'image'; } else if(strtolower($suffix) == 'pdf'){ $param_type = 'pdf_file'; } else{ return false; } $img = file_get_contents($files); $img = base64_encode($img); $param = array( $param_type => $img ); //这里也可以自己写curl方法调用 $data = $this->curl($this->vi_url.'?access_token='.$access_token, $param); Log::info(' get result:'.json_encode($data)); return $data; } //发票验真 //access_token 百度 access_token 鉴权返回值 public function vat_invoice_verification($access_token, $invoice_code, $invoice_num, $invoice_date, $invoice_type, $check_code, $total_amount){ $bodys = array( 'invoice_code' => $invoice_code,//"发票代码", 'invoice_num' => $invoice_num,//"发票号码", 'invoice_date' => $invoice_date,//"开票日期", 'check_code' => $check_code,//"校验码。填写发票校验码后6位", 'invoice_type' => $invoice_type,//"发票类型", 'total_amount' => $total_amount,//"不含税金额" ); $data = $this->curl($this->viv_url.'?access_token='.$access_token, $bodys); Log::info(' get result:'.json_encode($data)); return $data; } private function curl($url = '', $param = '') { if (empty($url) || empty($param)) { return false; } $postUrl = $url; $curlPost = $param; $curl = curl_init();//初始化curl curl_setopt($curl, CURLOPT_URL, $postUrl);//抓取指定网页 curl_setopt($curl, CURLOPT_HEADER, 0);//设置header curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($curl, CURLOPT_POST, 1);//post提交方式 curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($curl);//运行curl //记录每次获取到的信息 Log::info(' get curl result:' . json_encode($data)); curl_close($curl); return $data; } }