充电桩 API Base URL: https://api-recharge.geely.com
签名: X-Ca-Signature(HmacSHA256,见 docs/research/11-破解完成-签名机制.md)
说明:文件名保留历史;本仓库定位为互操作性研究,签名算法为通用规则观察。 认证: Header
token: <JWT accessToken>+gl_user_id: <userId>
// Request
{"sourceTypeKey": "0010000", "userId": "YOUR_USER_ID"}
// Response.data.resultList[]
{
"equipmentId": "YOUR_EQUIP_ID",
"equipmentName": "我的家桩",
"providerNo": "DIRECT_WDZ",
"blueSk": "xxx", "blueName": "YOUR_EQUIP_ID"
}// 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 |
只有在充电时(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。
// Response.data
{
"chargeUserId": "...",
"chargeUserName": "探索者No.EJlkz",
"chargeUserAvatar": "https://galaxy-oss.geely.com/app/galaxy-default.jpg",
"startTime": 1784560778000 // ⚡ 开始时间 (ms)
}已充时长从 startTime 推算:now - startTime (ms) → minutes。
// Request
{"sourceTypeKey": "0010000", "userId": "...", "equipmentId": "...", "providerNo": "DIRECT_WDZ"}
// Response.data
{"orderId": "<REDACTED_ORDER_ID>"} // 保存下来,stopCharge 时传// Request
{"sourceTypeKey": "0010000", "userId": "...", "equipmentId": "...", "providerNo": "DIRECT_WDZ", "orderId": "..."}// Response.data
{
"voltageCheck": {"result": 0, "desc": "正常"},
"groundCheck": {"result": 0, "desc": "正常"},
"networkCheck": {"result": 0, "desc": "正常"},
"faultInfo": {...}
}{"currentVersion": "GEP_S_V2605.1.2", "newVersion": null, "isOta": 0, "fileSize": null}按 chargeTime ("2026.07" 或 "2026.07.19") 查询。
按月/年统计充电次数、总电量。
/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
getChargeStatus只在充电时有效。空闲时可能返回code=1001 "参数缺失"或data=nullcurrentA/voltageA字段名带 A(原以为叫current/voltage,实测抓包才是currentA)- 累计电量字段名是
totalPower(单位 kWh,不是 W)——命名反直觉 - 签名:headers 里必须带
Content-MD5(body 为空时也要带"1B2M2Y8AsgTpgAmY7PhCfg==") orderId:由 startCharge 返回,充电中的 getChargeStatus 也会返回,stopCharge 需要它