guolei19850528 / laravel-hikvision
这是一个基于 Laravel 框架的海康威视设备服务扩展,用于集成海康威视设备服务。
v1.0.2
2026-01-05 03:36 UTC
Requires
- php: 8.*
- guzzlehttp/guzzle: ^7.0
- illuminate/support: 7.*||8.*||9.*||10.*||11.*||12.*
This package is not auto-updated.
Last update: 2026-01-06 01:49:42 UTC
README
Laravel 框架的海康威视ISC智能安防云API服务扩展,提供了简洁易用的接口来与海康威视ISC平台进行交互。
功能特性
- ✅ 支持海康威视ISC平台API调用
- ✅ 自动生成API签名
- ✅ 支持多ISC实例配置
- ✅ 简洁易用的接口设计
- ✅ 灵活的响应处理机制
- ✅ 支持自定义请求参数和选项
安装
使用 Composer 安装扩展:
composer require guolei19850528/laravel-hikvision
配置
- 发布配置文件:
php artisan vendor:publish --provider="Guolei19850528\Laravel\Hikvision\ServiceProvider"
- 在
.env文件中配置海康威视ISC参数(可选):
# 海康威视ISC配置示例
HIKVISION_ISC_HOST=https://your-isc-server:443
HIKVISION_ISC_AK=your-access-key
HIKVISION_ISC_SK=your-secret-key
- 编辑配置文件
config/guolei19850528-laravel-hikvision-config.php:
return [
'isc' => [
'default' => [
'host' => env('HIKVISION_ISC_HOST', 'your host'),
'ak' => env('HIKVISION_ISC_AK', 'your ak'),
'sk' => env('HIKVISION_ISC_SK', 'your sk'),
],
// 可添加更多ISC实例配置
]
];
使用方法
基本使用
use Guolei19850528\Laravel\Hikvision\ISC\Api;
// 初始化API客户端
$api = new Api(
'https://your-isc-server:443',
'your-access-key',
'your-secret-key'
);
// 调用ISC API(示例:查询设备列表)
$devices = $api->request(
'GET',
'/api/v1/devices',
[],
[],
['pageNo' => 1, 'pageSize' => 10]
);
// 处理响应数据
if ($devices) {
foreach ($devices as $device) {
echo $device['deviceName'] . PHP_EOL;
}
}
使用配置实例
use Guolei19850528\Laravel\Hikvision\ISC\Api;
use Illuminate\Support\Facades\Config;
// 从配置文件获取ISC参数
$config = Config::get('guolei19850528-laravel-hikvision-config.isc.default');
// 初始化API客户端
$api = new Api(
$config['host'],
$config['ak'],
$config['sk']
);
// 调用ISC API
$result = $api->request('POST', '/api/v1/events/subscribe', [], [
'eventTypes' => ['deviceOffline', 'deviceOnline'],
'subscribeCallback' => 'https://your-callback-url/callback'
]);
自定义响应处理
// 自定义响应处理函数
$response = $api->request(
'GET',
'/api/v1/devices',
responseHandler: function ($response) {
if ($response->ok()) {
$data = $response->json();
// 自定义处理逻辑
return [
'success' => true,
'total' => $data['total'],
'devices' => $data['data']
];
}
return [
'success' => false,
'message' => $response->status()
];
}
);
API 文档
Api 类构造函数
public function __construct(string $host = '', string $ak = '', string $sk = '')
$host: ISC平台服务器地址$ak: 访问密钥(Access Key)$sk: 安全密钥(Secret Key)
request 方法
public function request(
string|null $method = 'GET',
string|null $url = '',
array|null $urlParameters = [],
array|null $data = [],
array|null $query = [],
array|null $headers = [],
array|null $options = [],
\Closure|null $responseHandler = null,
array|null $validationRules = ['code' => 'required|integer|size:0']
): mixed
$method: HTTP请求方法(默认:GET)$url: API路径$urlParameters: URL路径参数$data: 请求体数据(JSON格式)$query: URL查询参数$headers: 自定义请求头$options: Guzzle请求选项$responseHandler: 自定义响应处理函数$validationRules: 响应验证规则
许可证
MIT License
作者
- 郭磊
- 邮箱: 174000902@qq.com
- GitHub: https://gitee.com/guolei19850528/laravel-hikvision