Skip to content

Latest commit

 

History

History
171 lines (133 loc) · 5.13 KB

File metadata and controls

171 lines (133 loc) · 5.13 KB

API 参考(实测更新版)

充电桩 API Base URL: https://api-recharge.geely.com 签名: X-Ca-Signature(HmacSHA256,见 docs/research/11-破解完成-签名机制.md

说明:文件名保留历史;本仓库定位为互操作性研究,签名算法为通用规则观察。 认证: Header token: <JWT accessToken> + gl_user_id: <userId>

🎯 最常用的 6 个接口

1. POST /gep/v2/home/charge/getMyEquipmentList — 家桩列表

// Request
{"sourceTypeKey": "0010000", "userId": "YOUR_USER_ID"}

// Response.data.resultList[]
{
  "equipmentId": "YOUR_EQUIP_ID",
  "equipmentName": "我的家桩",
  "providerNo": "DIRECT_WDZ",
  "blueSk": "xxx", "blueName": "YOUR_EQUIP_ID"
}

2. POST /gep/v1/home/charge/getMyEquipmentDetail — 桩详情 + 状态

// Request
{"sourceTypeKey": "0010000", "userId": "...", "equipmentId": "...", "providerNo": "DIRECT_WDZ"}

// Response.data
{
  "equipmentId": "...", "equipmentName": "我的家桩",
  "isOta": 0, "isOwner": 0, "isAuth": 1,
  "equipStatusInfo": {
    "status": 104,          // ⭐ 状态码:见下表
    "desc": "充电中",
    "displayMsgList": ["正在充电中"]
  },
  "equipOwnerInfo": {"userId": "...", "userName": "...", "bindTime": "..."}
}

状态码对照equipStatusInfo.status):

Code Desc 含义
100 设备离线 Offline
101 设备空闲 Idle
102 已插枪 Plugged (未开充)
103 启动中 Starting
104 充电中 Charging
105 结束中 Stopping
106 故障 Fault

3. POST /gep/v1/home/charge/getChargeStatus — 充电实时数据 ⭐

只有在充电时(status=104)才返回有效数据。

// Request
{"sourceTypeKey": "0010000", "userId": "...", "equipmentId": "...", "providerNo": "DIRECT_WDZ"}

// Response.data
{
  "orderId": "<REDACTED_ORDER_ID>",
  "currentA": 29.743,      // ⚡ 电流 (A)
  "voltageA": 221.949,     // ⚡ 电压 (V)
  "totalPower": 0.3302     // ⚡ 累计电量 (kWh)
}

功率无直接字段,需要自算:功率(W) = currentA × voltageA = ~6.6 kW。

4. POST /gep/v1/home/charge/getChargeUser — 当前充电用户

// Response.data
{
  "chargeUserId": "...",
  "chargeUserName": "探索者No.EJlkz",
  "chargeUserAvatar": "https://galaxy-oss.geely.com/app/galaxy-default.jpg",
  "startTime": 1784560778000       // ⚡ 开始时间 (ms)
}

已充时长从 startTime 推算:now - startTime (ms) → minutes。

5. POST /gep/v1/home/charge/startCharge — 开始充电

// Request
{"sourceTypeKey": "0010000", "userId": "...", "equipmentId": "...", "providerNo": "DIRECT_WDZ"}

// Response.data
{"orderId": "<REDACTED_ORDER_ID>"}   // 保存下来,stopCharge 时传

6. POST /gep/v1/home/charge/stopCharge — 停止充电

// Request
{"sourceTypeKey": "0010000", "userId": "...", "equipmentId": "...", "providerNo": "DIRECT_WDZ", "orderId": "..."}

🔧 辅助接口

POST /gep/v1/home/charge/equipmentCheck — 健康检查

// Response.data
{
  "voltageCheck": {"result": 0, "desc": "正常"},
  "groundCheck": {"result": 0, "desc": "正常"},
  "networkCheck": {"result": 0, "desc": "正常"},
  "faultInfo": {...}
}

POST /gep/v1/home/charge/getEquipmentVersions — 固件版本 / OTA

{"currentVersion": "GEP_S_V2605.1.2", "newVersion": null, "isOta": 0, "fileSize": null}

POST /gep/v2/home/charge/getEquipmentChargeOrders — 历史订单

chargeTime ("2026.07""2026.07.19") 查询。

POST /gep/v2/home/charge/getEquipmentChargeOrderCalc — 订单统计

按月/年统计充电次数、总电量。

📊 完整可用端点(从 h5 bundle 提取)

/gep/v1/home/charge/
  ├── getMyEquipmentDetail
  ├── getMyEquipmentExt
  ├── getMyEquipmentShares
  ├── getChargeStatus         ⭐ 实时数据
  ├── getChargeUser           ⭐ 当前用户
  ├── startCharge
  ├── stopCharge
  ├── equipmentCheck
  └── getEquipmentVersions

/gep/v2/home/charge/
  ├── getMyEquipmentList
  ├── getMyEquipmentCards
  ├── getEquipmentBindVins
  ├── getBookCharge
  ├── addBookCharge
  ├── getEquipmentChargeOrders
  ├── getEquipmentChargeOrderCalc
  ├── sendCommand
  ├── getCommandResult
  ├── bindMyEquipment / cancelBindMyEquipment / checkBindMyEquipment
  ├── authEquipment / cancelAuthEquipment
  ├── shareMyEquipment / cancelShareMyEquipment
  ├── equipmentBindCard / equipmentCancelBindCard

⚠️ 注意事项

  1. getChargeStatus 只在充电时有效。空闲时可能返回 code=1001 "参数缺失"data=null
  2. currentA/voltageA 字段名带 A(原以为叫 current / voltage,实测抓包才是 currentA
  3. 累计电量字段名是 totalPower(单位 kWh,不是 W)——命名反直觉
  4. 签名:headers 里必须带 Content-MD5(body 为空时也要带 "1B2M2Y8AsgTpgAmY7PhCfg=="
  5. orderId:由 startCharge 返回,充电中的 getChargeStatus 也会返回,stopCharge 需要它