laravel 接口

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;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值