namespace App\Services\Common;
use League\Flysystem\Exception;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
use App\Models\Common\CommonModel;
use App\Models\Demand\DemandModel;
class CommonService {
/**
* 权限系统接口数据
* @param Integer $systemCode 系统标识
* @param Array $urlParameter URL参数
* @return Array
*/
public static function accountSystemInterfaceDate($systemCode = 0, $urlParameter = '') {
$data = array();
try {
if (empty($systemCode)) {
throw new Exception('系统标识不能为空!');
}
if (empty($urlParameter)) {
throw new Exception('URL参数不能为空!');
}
$accountUrl = config('api.account.url');
$headers = array('systemCode:' . $systemCode);
$url = $accountUrl . $urlParameter;
// 初始化
$curl = curl_init();
// 设置url路径
curl_setopt($curl, CURLOPT_URL, $url);
// 将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
// 添加头信息
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// CURLINFO_HEADER_OUT选项可以拿到请求头信息
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
// 不验证SSL
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
// 执行
$request = curl_exec($curl);
// 打印请求头信息// echo curl_getinfo($curl, CURLINFO_HEADER_OUT);
// 关闭连接
curl_close($curl);
// 返回数据
$row = json_decode($request, true);
if (isset($row['data'])) {
$data = $row['data'];
}
$return = array('code' => '200', 'msg' => '成功!', 'data' => $data);
} catch (Exception $exc) {
$return = array('code' => '400', 'msg' => $exc->getMessage(), 'data' => $data);
}
return $return;
}
/**
* POST接口
* @param Integer $type api url
* @param String $url URL地址
* @param Array $parameter 请求参数
* @param Integer $systemCode 系统标识
* @return Array
*/
public static function postInterface($type = 0, $url = '', $parameter = array(), $systemCode = 0) {
$data = array();
try {
if (empty($url)) {
throw new Exception('URL不能为空!');
}
if (empty($parameter)) {
throw new Exception('请求参数不能为空!');
}
switch ($type) {
case 0:
$apiUrl = config('api.account.url');
break;
case 1:
$apiUrl = config('api.dingding.url');
break;
}
$headers = array("Content-type:application/json;charset=utf-8", "Accept:application/json");
if (!empty($systemCode)) {
$headers[] = "systemCode:{$systemCode}";
}
// 初始化
$curl = curl_init();
// 设置url路径
curl_setopt($curl, CURLOPT_URL, $apiUrl . $url);
// 设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, false);
// 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
// 设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 添加头信息
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// 设置post方式提交
curl_setopt($curl, CURLOPT_POST, true);
// 设置post请求参数
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($parameter));
// CURLINFO_HEADER_OUT选项可以拿到请求头信息
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
// 不验证SSL
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
// 执行命令
$request = curl_exec($curl);
// die(curl_getinfo($curl, CURLINFO_HEADER_OUT));
// 关闭连接
curl_close($curl);
// 返回数据
$row = json_decode($request, true);
if (isset($row['data'])) {
$data = $row['data'];
}
$return = array('code' => '200', 'msg' => '成功!', 'data' => $data);
} catch (Exception $exc) {
$return = array('code' => '400', 'msg' => $exc->getMessage(), 'data' => $data);
}
return $return;
}
}
laravel 接口
最新推荐文章于 2024-06-03 09:33:23 发布