You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP的Curl向steVe OCPP服务器添加ChargePoint

用PHP Curl向steVe OCPP服务器添加ChargePoint的实现方法

1. 确认steVe的接口信息

steVe的ChargePoint添加可通过两种主流方式实现:模拟后台管理页面的表单提交(无需额外配置steVe)、调用官方REST API(需在steVe中启用REST模块)。以下是两种方式的具体实现:

2. 模拟后台表单提交实现

步骤1:登录后台获取会话Cookie

steVe后台登录需先提交凭证获取有效会话,后续添加请求需携带此会话:

<?php
// 配置steVe地址和登录信息
$steve_base_url = 'http://你的steVe服务器地址';
$login_params = [
    'username' => 'admin', // 后台用户名
    'password' => 'admin'  // 后台密码
];

// 初始化Curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $steve_base_url . '/login');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($login_params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'steve_cookies.txt'); // 保存Cookie到本地
curl_setopt($ch, CURLOPT_COOKIEFILE, 'steve_cookies.txt'); // 读取Cookie

// 执行登录请求
$login_result = curl_exec($ch);
if (curl_errno($ch)) {
    die('登录失败: ' . curl_error($ch));
}
?>

步骤2:提交ChargePoint信息

登录成功后,携带会话提交ChargePoint参数:

<?php
// 配置ChargePoint信息
$cp_params = [
    'chargeBoxId' => 'CP_TEST_001', // 唯一ID,必填
    'description' => '办公室测试充电桩',
    'location' => '一楼大厅',
    'ocppVersion' => 'OCPP1.6', // 可选版本:OCPP1.2/OCPP1.5/OCPP1.6/OCPP2.0.1
    'chargePointVendor' => 'TestVendor',
    'chargePointModel' => 'TestModel'
];

// 设置添加请求
curl_setopt($ch, CURLOPT_URL, $steve_base_url . '/manage/chargepoints/add');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($cp_params));

// 执行添加请求
$add_result = curl_exec($ch);
if (curl_errno($ch)) {
    die('添加失败: ' . curl_error($ch));
}

// 验证添加结果(steVe成功后会跳转回充电桩列表页)
if (strpos($add_result, '/manage/chargepoints') !== false) {
    echo 'ChargePoint添加成功';
} else {
    echo '添加失败,请检查参数或登录凭证';
}

// 关闭Curl
curl_close($ch);
?>

3. REST API方式实现(需启用steVe REST模块)

若已在steVe配置中开启REST API,可直接调用接口提交JSON格式参数:

<?php
$steve_base_url = 'http://你的steVe服务器地址';
$rest_url = $steve_base_url . '/api/chargepoints';

// 配置请求头和参数
$headers = [
    'Content-Type: application/json',
    'Authorization: Basic ' . base64_encode('admin:admin') // Basic Auth凭证
];
$cp_data = json_encode([
    'chargeBoxId' => 'CP_REST_001',
    'description' => 'REST API测试充电桩',
    'ocppVersion' => 'OCPP1.6'
]);

// 初始化Curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $rest_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $cp_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行请求
$response = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// 验证结果
if ($status_code === 201) {
    echo 'REST API方式添加成功';
} else {
    echo "添加失败,响应码:{$status_code},内容:{$response}";
}

curl_close($ch);
?>

4. 注意事项

  • 确保steve_cookies.txt文件具备读写权限,否则会话无法保存
  • chargeBoxId必须唯一,steVe不允许重复ID
  • 若steVe启用HTTPS,测试环境可添加curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);跳过证书验证,生产环境需配置合法SSL证书

内容的提问来源于stack exchange,提问作者user21117874

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:56:08