|
|
@@ -0,0 +1,979 @@
|
|
|
+# 中数电动第三方接入API文档
|
|
|
+
|
|
|
+## 目录
|
|
|
+
|
|
|
+- [1. 平台认证](#1-平台认证)
|
|
|
+ - [1.1 运营商ID](#11-运营商id)
|
|
|
+ - [1.2 请求格式要求](#12-请求格式要求)
|
|
|
+ - [1.3 加密说明](#13-加密说明)
|
|
|
+ - [1.4 ret 返回值说明](#14-ret-返回值说明)
|
|
|
+- [2. 获取Token](#2-获取token)
|
|
|
+- [3. 充值档位信息分页列表](#3-充值档位信息分页列表)
|
|
|
+- [4. 获取用户信息](#4-获取用户信息)
|
|
|
+- [5. 充点券购买](#5-充点券购买)
|
|
|
+- [6. 获取充电站列表](#6-获取充电站列表)
|
|
|
+- [7. 获取充电站详情与充电终端列表](#7-获取充电站详情与充电终端列表)
|
|
|
+- [8. 获取充电终端详情](#8-获取充电终端详情)
|
|
|
+- [9. 启动充电](#9-启动充电)
|
|
|
+- [10. 停止充电](#10-停止充电)
|
|
|
+- [11. 查询充电订单列表](#11-查询充电订单列表)
|
|
|
+- [12. 查询充电订单详情](#12-查询充电订单详情)
|
|
|
+- [附录:配置模板](#附录配置模板)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 1. 平台认证
|
|
|
+
|
|
|
+### 1.1 运营商ID
|
|
|
+
|
|
|
+运营商ID是平台分配给对应渠道方的唯一代码(长度9位,由数字及大小写字符组成)。
|
|
|
+
|
|
|
+### 1.2 请求格式要求
|
|
|
+
|
|
|
+查询接口和回调接口均需要满足以下格式要求:
|
|
|
+
|
|
|
+- 消息头需配置 `Content-Type` 为 `application/json`; `Authorization` 为 `Bearer token`(平台认证接口用于获取token)
|
|
|
+- 入参消息体应由运营商标识(operatorId)、参数内容(data)、时间戳(timeStamp)、自增序列(seq)和数字签名(sig)组成
|
|
|
+
|
|
|
+**入参示例:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "operatorId": "123456789",
|
|
|
+ "data": "mYvffpNoFf4E/ZTC1tOw41TC5OlkEobfAYCm5N8hEusaLUaUIqOrXtdbMrSck0DSmfM7mRuOGMoCQzH0nWPGuw==",
|
|
|
+ "timeStamp": "20180120165755",
|
|
|
+ "seq": "0001",
|
|
|
+ "sig": "D2D584A14F3F284445DF85D0E8C0697C"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**出参示例:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "ret": 0,
|
|
|
+ "msg": "",
|
|
|
+ "data": "uxeKP0ezR5yL8xSg4/ZCDh/N91/u86NXFxd2DrwZVW8zCPYcpl59Twz/yQZ3RaO4rDDrGmkvQignmNEJ+k4PGxdmIC+4fpJ8rU6osSobY+AeA0uueuQ5+eQiWBL6p6v5XMMm91brtK8yfFELYUWQzVcxABnAwK/+dyxtUhqLIxUpkwTEU/4ktN40df9IzzlLO5uvUknPGYu9yL0pp5w9vdRxmA1RiiTDNCysz6klr9bunGV3VJa2qpLcgeZMf/oG",
|
|
|
+ "sig": "58E52010C7DEE87FE183B0AFA5B2BE30"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 1.3 加密说明
|
|
|
+
|
|
|
+- `data` 里的内容为接口的实际入参和出参,均需要密文传输
|
|
|
+- 加解密方法为 AES 128位加解密,加解密模式为 CBC,填充模式为 PKCS5Padding
|
|
|
+- 签名(sig)采用 HMAC-MD5算法,采用MD5作为散列函数,通过签名密钥(sigSecret)对整个消息主体各参数的值拼接后进行加密
|
|
|
+- 入参拼接顺序为: `operatorId + data + timeStamp + seq`
|
|
|
+- 出参拼接顺序为: `ret + msg + data`
|
|
|
+- ⚠️ 注意:参数签名必须大写
|
|
|
+
|
|
|
+### 1.4 ret 返回值说明
|
|
|
+
|
|
|
+| 返回码 | 说明 |
|
|
|
+|--------|------|
|
|
|
+| 0 | 请求成功 |
|
|
|
+| 500 | 系统错误 |
|
|
|
+| 4001 | 签名错误 |
|
|
|
+| 4002 | token错误 |
|
|
|
+| 4003 | 参数不合法,缺少必需的参数:operatorId、sig、timeStamp、data、seq |
|
|
|
+| 4004 | 请求的业务参数不合法,各接口定义自己的必须参数 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 2. 获取Token
|
|
|
+
|
|
|
+### 2.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_token
|
|
|
+- **接口说明:** Token作为全局唯一凭证,调用各接口时均需要使用
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_token`
|
|
|
+
|
|
|
+### 2.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| operatorId | 运营商标识 | String | 请求方唯一编号 | 是 |
|
|
|
+| operatorSecret | 运营商密钥 | String | 被调用方分配的唯一识别密钥 | 是 |
|
|
|
+
|
|
|
+### 2.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "operatorId": "123456789",
|
|
|
+ "operatorSecret": "1234567890abcdef"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 2.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| operatorId | 运营商标识 | String | 运营商唯一标识 |
|
|
|
+| resultStatus | 操作结果标识 | Integer | 0-成功,1-失败 |
|
|
|
+| accessToken | 访问令牌 | String | token令牌 |
|
|
|
+| tokenExpirationTime | token有效期 | Integer | 有效期,单位秒 |
|
|
|
+| failReason | 失败原因 | Integer | 0-无,1-operatorId无效 |
|
|
|
+
|
|
|
+### 2.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "operatorId": "123456789",
|
|
|
+ "resultStatus": 0,
|
|
|
+ "accessToken": "kVnStIRknCCOBdXgJrmu8rb3pcccifKW2NcQrysKKIzb7iQBxkkjeq3WoGdjgrIL",
|
|
|
+ "tokenExpirationTime": 7200,
|
|
|
+ "failReason": 0
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 3. 充值档位信息分页列表
|
|
|
+
|
|
|
+### 3.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_recharge_level_page
|
|
|
+- **接口说明:** 第三方获取充值档位分页数据
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_recharge_level_page`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 3.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|------|------|----------|
|
|
|
+| pageNum | 页码 | Long | 页码,默认1 | 否 |
|
|
|
+| pageSize | 每页记录数 | Long | 每页记录数,默认10 | 否 |
|
|
|
+
|
|
|
+### 3.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "pageNum": 1,
|
|
|
+ "pageSize": 10
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 3.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|---------|------|
|
|
|
+| total | 总记录数 | Long | 总记录数 |
|
|
|
+| pageNum | 当前页码 | Long | 当前页码 |
|
|
|
+| pageSize | 每页记录数 | Long | 每页记录数 |
|
|
|
+| pages | 总页数 | Long | 总页数 |
|
|
|
+| records | 数据列表 | Array | 充值档位列表 |
|
|
|
+
|
|
|
+**records 数组元素:**
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| id | 档位ID | Long | 档位ID |
|
|
|
+| name | 档位名称 | String | 充值档位名称 |
|
|
|
+| money | 充值金额 | BigDecimal | 充值金额 |
|
|
|
+| status | 状态 | Integer | 0-不可用,1-可用 |
|
|
|
+| tips | 充值提示 | String | 充值提示 |
|
|
|
+
|
|
|
+### 3.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "total": 5,
|
|
|
+ "pageNum": 1,
|
|
|
+ "pageSize": 10,
|
|
|
+ "pages": 1,
|
|
|
+ "records": [
|
|
|
+ {
|
|
|
+ "id": 1,
|
|
|
+ "name": "10元档位",
|
|
|
+ "money": 10.00,
|
|
|
+ "status": 1,
|
|
|
+ "tips": "此券可以用于抵扣充电费用"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 4. 获取用户信息
|
|
|
+
|
|
|
+### 4.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_user_info
|
|
|
+- **接口说明:** 第三方根据手机号获取用户信息
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_user_info`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 4.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| phone | 手机号 | String | 用户手机号 | 是 |
|
|
|
+
|
|
|
+### 4.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "phone": "13800138000"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 4.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| isNewUser | 是否新用户 | Integer | 0-否,1-是 |
|
|
|
+| userInfo | 用户信息 | Object | 用户基本信息 |
|
|
|
+| accountInfo | 账户信息 | Object | 用户账户信息 |
|
|
|
+
|
|
|
+**userInfo 对象:**
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| userId | 用户ID | Long | 用户ID |
|
|
|
+| nickName | 昵称 | String | 用户昵称 |
|
|
|
+| phone | 手机号 | String | 用户手机号 |
|
|
|
+| openid | 微信openid | String | 微信openid |
|
|
|
+
|
|
|
+**accountInfo 对象:**
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| accountId | 账户ID | Long | 账户ID |
|
|
|
+| balance | 可用抵用券余额 | BigDecimal | 可用抵用券余额 |
|
|
|
+| redeemBalance | 兑换余额 | BigDecimal | 兑换余额 |
|
|
|
+| integral | 积分 | BigDecimal | 积分 |
|
|
|
+
|
|
|
+### 4.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "isNewUser": 0,
|
|
|
+ "userInfo": {
|
|
|
+ "userId": 10001,
|
|
|
+ "nickName": "张三",
|
|
|
+ "phone": "13800138000",
|
|
|
+ "openid": "oXyZ123456"
|
|
|
+ },
|
|
|
+ "accountInfo": {
|
|
|
+ "accountId": 20001,
|
|
|
+ "balance": 100.00,
|
|
|
+ "redeemBalance": 50.00,
|
|
|
+ "integral": 500.00
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 5. 充点券购买
|
|
|
+
|
|
|
+### 5.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** charge_order_pay
|
|
|
+- **接口说明:** 第三方充点券购买
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/charge_order_pay`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 5.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| levelId | 充值档位ID | Long | 充值档位ID | 是 |
|
|
|
+| userId | 用户ID | Long | 用户ID | 是 |
|
|
|
+| phone | 手机号 | String | 用户手机号 | 是 |
|
|
|
+| orderNo | 订单号 | String | 第三方订单号 | 是 |
|
|
|
+| payTime | 支付时间 | String | 支付时间 | 是 |
|
|
|
+| totalMoney | 总金额 | String | 充值总金额 | 是 |
|
|
|
+
|
|
|
+### 5.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "levelId": 1,
|
|
|
+ "userId": 10001,
|
|
|
+ "phone": "13800138000",
|
|
|
+ "orderNo": "TP2024031600001",
|
|
|
+ "payTime": "2024-03-16 10:30:00",
|
|
|
+ "totalMoney": "100.00"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 5.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| result | 充值结果 | Integer | 0-成功,1-失败 |
|
|
|
+| message | 结果消息 | String | 结果描述 |
|
|
|
+| userId | 用户ID | Long | 用户ID |
|
|
|
+| rechargeMoney | 充值金额 | BigDecimal | 实际充值金额 |
|
|
|
+| balanceAfter | 充值后余额 | BigDecimal | 充值后账户余额 |
|
|
|
+| orderNo | 第三方订单号 | String | 第三方订单号 |
|
|
|
+
|
|
|
+### 5.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "result": 0,
|
|
|
+ "message": "充值成功",
|
|
|
+ "userId": 10001,
|
|
|
+ "rechargeMoney": 100.00,
|
|
|
+ "balanceAfter": 200.00,
|
|
|
+ "orderNo": "TP2024031600001"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 6. 获取充电站列表
|
|
|
+
|
|
|
+### 6.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_charge_station_list
|
|
|
+- **接口说明:** 第三方获取充电站列表
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_charge_station_list`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 6.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|------------|------|----------|
|
|
|
+| pageNum | 页码 | Long | 页码,默认1 | 否 |
|
|
|
+| pageSize | 每页记录数 | Long | 每页记录数,默认10 | 否 |
|
|
|
+| sortType | 请求类别 | Integer | 1-离我最近、2-空闲最多、3-电费最低 | 否 |
|
|
|
+| longitude | 经度 | BigDecimal | 用户当前位置经度 | 否 |
|
|
|
+| latitude | 纬度 | BigDecimal | 用户当前位置纬度 | 否 |
|
|
|
+
|
|
|
+### 6.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "pageNum": 1,
|
|
|
+ "pageSize": 10,
|
|
|
+ "sortType": 1,
|
|
|
+ "longitude": 116.404,
|
|
|
+ "latitude": 39.915
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 6.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|-------|------|
|
|
|
+| total | 总记录数 | Long | 总记录数 |
|
|
|
+| pageNum | 当前页码 | Long | 当前页码 |
|
|
|
+| pageSize | 每页大小 | Long | 每页大小 |
|
|
|
+| pages | 总页数 | Long | 总页数 |
|
|
|
+| list | 站点列表 | Array | 充电站列表 |
|
|
|
+
|
|
|
+**list 数组元素:**
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| stationId | 站点ID | Long | 充电站ID |
|
|
|
+| stationName | 站点名称 | String | 充电站名称 |
|
|
|
+| tips | 提示语 | String | 站点提示信息 |
|
|
|
+| distance | 距离 | BigDecimal | 距离(km) |
|
|
|
+| fastCharging | 快充 | String | 格式:空闲/总数 |
|
|
|
+| slowCharging | 慢充 | String | 格式:空闲/总数 |
|
|
|
+| peakValue | 当前峰值 | String | 当前峰值 |
|
|
|
+| peakTime | 峰时段时间 | String | 峰时段时间 |
|
|
|
+| periodFlag | 时段标志 | Integer | 1-尖,2-峰,3-平,4-谷 |
|
|
|
+| platformPrice | 平台价 | BigDecimal | 平台价格 |
|
|
|
+
|
|
|
+### 6.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "total": 50,
|
|
|
+ "pageNum": 1,
|
|
|
+ "pageSize": 10,
|
|
|
+ "pages": 5,
|
|
|
+ "list": [
|
|
|
+ {
|
|
|
+ "stationId": 1,
|
|
|
+ "stationName": "XX充电站",
|
|
|
+ "tips": "充电减免2小时停车费",
|
|
|
+ "distance": 1.5,
|
|
|
+ "fastCharging": "5/10",
|
|
|
+ "slowCharging": "3/8",
|
|
|
+ "peakValue": "1.2元/度",
|
|
|
+ "peakTime": "10:00-13:00",
|
|
|
+ "periodFlag": 2,
|
|
|
+ "platformPrice": 1.20
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 7. 获取充电站详情与充电终端列表
|
|
|
+
|
|
|
+### 7.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_charge_station_detail
|
|
|
+- **接口说明:** 第三方获取充电站详情与充电设备列表
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_charge_station_detail`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 7.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| stationId | 充电站ID | Long | 充电站ID | 是 |
|
|
|
+| longitude | 经度 | BigDecimal | 用户当前位置经度 | 否 |
|
|
|
+| latitude | 纬度 | BigDecimal | 用户当前位置纬度 | 否 |
|
|
|
+
|
|
|
+### 7.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "stationId": 1,
|
|
|
+ "longitude": 116.404,
|
|
|
+ "latitude": 39.915
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 7.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| stationId | 站点ID | Long | 充电站ID |
|
|
|
+| stationName | 站点名称 | String | 充电站名称 |
|
|
|
+| tips | 提示语 | String | 标签提示信息 |
|
|
|
+| distance | 距离 | BigDecimal | 距离(km) |
|
|
|
+| address | 详细地址 | String | 充电站详细地址 |
|
|
|
+| longitude | 经度 | BigDecimal | 站点经度 |
|
|
|
+| latitude | 纬度 | BigDecimal | 站点纬度 |
|
|
|
+| pictures | 站点图片 | String | 站点图片列表(JSON数组) |
|
|
|
+| currentPrice | 当前价 | BigDecimal | 当前价(元/度) |
|
|
|
+| currentPeriod | 当前时段 | String | 当前时段描述 |
|
|
|
+| originalPrice | 原价 | BigDecimal | 原价/划线价(元/度) |
|
|
|
+| periodFlag | 时段标志 | Integer | 1-尖,2-峰,3-平,4-谷 |
|
|
|
+| idleCount | 空闲终端数 | Integer | 空闲终端数量 |
|
|
|
+| occupiedCount | 占用终端数 | Integer | 占用终端数量 |
|
|
|
+| offlineCount | 离线终端数 | Integer | 离线终端数量 |
|
|
|
+| businessHours | 营业时间 | String | 营业时间 |
|
|
|
+| serviceProvider | 服务提供方 | String | 服务提供方名称 |
|
|
|
+| invoiceProvider | 发票提供方 | String | 发票提供方名称 |
|
|
|
+| customerServiceHotline | 客服热线 | String | 客服电话 |
|
|
|
+| connectorList | 充电终端列表 | Array | 充电终端信息列表 |
|
|
|
+
|
|
|
+**connectorList 数组元素:**
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| connectorId | 充电终端ID | Long | 充电终端ID |
|
|
|
+| connectorName | 终端名称 | String | 终端名称 |
|
|
|
+| equipmentType | 终端分类 | String | 终端分类描述 |
|
|
|
+| connectorCode | 终端编码 | String | 终端编码 |
|
|
|
+| status | 状态 | Integer | 0-离线,1-空闲,2-占用 |
|
|
|
+| statusName | 状态名称 | String | 状态描述 |
|
|
|
+
|
|
|
+### 7.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "stationId": 1,
|
|
|
+ "stationName": "XX充电站",
|
|
|
+ "tips": "充电减免2小时停车费,超出部分按每小时3元计费",
|
|
|
+ "distance": 1.5,
|
|
|
+ "address": "北京市朝阳区XX路XX号",
|
|
|
+ "longitude": 116.404,
|
|
|
+ "latitude": 39.915,
|
|
|
+ "pictures": "[\"http://xxx.com/1.jpg\"]",
|
|
|
+ "currentPrice": 1.20,
|
|
|
+ "currentPeriod": "峰10:00-13:00",
|
|
|
+ "originalPrice": 1.50,
|
|
|
+ "periodFlag": 2,
|
|
|
+ "idleCount": 5,
|
|
|
+ "occupiedCount": 3,
|
|
|
+ "offlineCount": 2,
|
|
|
+ "businessHours": "周一至周日 00:00-24:00",
|
|
|
+ "serviceProvider": "XX充电服务",
|
|
|
+ "invoiceProvider": "XX科技有限公司",
|
|
|
+ "customerServiceHotline": "400-XXX-XXXX",
|
|
|
+ "connectorList": [
|
|
|
+ {
|
|
|
+ "connectorId": 101,
|
|
|
+ "connectorName": "101号直流充电桩",
|
|
|
+ "equipmentType": "直流设备",
|
|
|
+ "connectorCode": "CONN001",
|
|
|
+ "status": 1,
|
|
|
+ "statusName": "空闲"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 8. 获取充电终端详情
|
|
|
+
|
|
|
+### 8.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_charge_device_detail
|
|
|
+- **接口说明:** 第三方获取充电终端详情
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_charge_device_detail`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 8.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| id | 设备主键ID | Long | 设备主键ID | 否 |
|
|
|
+| equipmentId | 设备编码 | String | 设备编码 | 否 |
|
|
|
+
|
|
|
+> 注:id 和 equipmentId 至少传一个
|
|
|
+
|
|
|
+### 8.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "id": 101,
|
|
|
+ "equipmentId": "EQ001"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 8.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| connectorId | 充电设备接口ID | Long | 充电设备接口ID |
|
|
|
+| connectorCode | 充电设备接口编码 | String | 充电设备接口编码 |
|
|
|
+| connectorName | 充电设备接口名称 | String | 充电设备接口名称 |
|
|
|
+| stationId | 充电站ID | Long | 所属充电站ID |
|
|
|
+| stationName | 充电站名称 | String | 所属充电站名称 |
|
|
|
+| stationAddress | 充电站地址 | String | 所属充电站地址 |
|
|
|
+| equipmentId | 设备ID | Long | 设备ID |
|
|
|
+| equipmentCode | 设备编码 | String | 设备编码 |
|
|
|
+| equipmentName | 设备名称 | String | 设备名称 |
|
|
|
+| equipmentType | 设备类型 | Integer | 1-直流设备,2-交流设备,3-交直流一体设备,4-无线设备,5-其他 |
|
|
|
+| equipmentTypeName | 设备类型名称 | String | 设备类型描述 |
|
|
|
+| parkNo | 车位号 | String | 车位号 |
|
|
|
+| status | 终端状态 | Integer | 0-离网,1-空闲,2-占用(未充电),3-占用(充电中),4-占用(预约锁定),255-故障 |
|
|
|
+| statusName | 终端状态名称 | String | 终端状态描述 |
|
|
|
+| connectorType | 接口类型 | Integer | 1-家用插座,2-交流接口插座,3-交流接口插头,4-直流接口枪头,5-无线充电座,6-其他 |
|
|
|
+| connectorTypeName | 接口类型名称 | String | 接口类型描述 |
|
|
|
+| voltageUpperLimits | 额定电压上限 | Integer | 单位V |
|
|
|
+| voltageLowerLimits | 额定电压下限 | Integer | 单位V |
|
|
|
+| current | 额定电流 | Integer | 单位A |
|
|
|
+| power | 额定功率 | BigDecimal | 单位kW |
|
|
|
+| nationalStandard | 国家标准 | Integer | 1-2011,2-2015 |
|
|
|
+| nationalStandardName | 国家标准名称 | String | 国家标准描述 |
|
|
|
+| currentPrice | 常规价格 | BigDecimal | 元/度(电价+服务费+常规运营费+增值费用) |
|
|
|
+| periodFlag | 时段标志 | Integer | 1-尖,2-峰,3-平,4-谷 |
|
|
|
+| currentPeriodDesc | 当前时段描述 | String | 当前时段描述 |
|
|
|
+| parkingTips | 停车费说明 | String | 提示语/停车费说明 |
|
|
|
+
|
|
|
+### 8.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "connectorId": 101,
|
|
|
+ "connectorCode": "CONN001",
|
|
|
+ "connectorName": "101号充电口",
|
|
|
+ "stationId": 1,
|
|
|
+ "stationName": "XX充电站",
|
|
|
+ "stationAddress": "北京市朝阳区XX路XX号",
|
|
|
+ "equipmentId": 10,
|
|
|
+ "equipmentCode": "EQ001",
|
|
|
+ "equipmentName": "1号直流充电桩",
|
|
|
+ "equipmentType": 1,
|
|
|
+ "equipmentTypeName": "直流设备",
|
|
|
+ "parkNo": "A001",
|
|
|
+ "status": 1,
|
|
|
+ "statusName": "空闲",
|
|
|
+ "connectorType": 4,
|
|
|
+ "connectorTypeName": "直流接口枪头",
|
|
|
+ "voltageUpperLimits": 750,
|
|
|
+ "voltageLowerLimits": 200,
|
|
|
+ "current": 250,
|
|
|
+ "power": 120.00,
|
|
|
+ "nationalStandard": 2,
|
|
|
+ "nationalStandardName": "2015",
|
|
|
+ "currentPrice": 1.20,
|
|
|
+ "periodFlag": 2,
|
|
|
+ "currentPeriodDesc": "峰时段 10:00-13:00",
|
|
|
+ "parkingTips": "充电减免2小时停车费"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 9. 启动充电
|
|
|
+
|
|
|
+### 9.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** invoke_charge
|
|
|
+- **接口说明:** 第三方启动充电
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/invoke_charge`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 9.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| equipmentId | 充电桩编号 | String | 充电桩编号 | 是 |
|
|
|
+| stationId | 第三方充电站ID | String | 充电站ID | 是 |
|
|
|
+| connectorId | 充电设备接口编码 | String | 充电设备接口编码 | 是 |
|
|
|
+| channelOrderNo | 渠道方订单编号 | String | 第三方平台订单编号 | 是 |
|
|
|
+| channelUserPhone | 渠道方用户手机号 | String | 用户手机号 | 是 |
|
|
|
+| channelPreAmt | 渠道方预支付金额 | BigDecimal | 预支付金额 | 是 |
|
|
|
+
|
|
|
+### 9.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "equipmentId": "EQ001",
|
|
|
+ "stationId": "1",
|
|
|
+ "connectorId": "CONN001",
|
|
|
+ "channelOrderNo": "CH2024031600001",
|
|
|
+ "channelUserPhone": "13800138000",
|
|
|
+ "channelPreAmt": 100.00
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 9.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| result | 启动结果 | Integer | 0-成功,1-失败 |
|
|
|
+| message | 结果消息 | String | 结果描述 |
|
|
|
+| chargeOrderId | 充电订单ID | Long | 平台充电订单ID |
|
|
|
+| chargeOrderNo | 充电订单编号 | String | 平台充电订单编号 |
|
|
|
+| status | 充电状态 | Integer | 0-待启动,1-充电中,2-结算中,3-已完成,5-未成功充电 |
|
|
|
+
|
|
|
+### 9.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "result": 0,
|
|
|
+ "message": "启动充电成功",
|
|
|
+ "chargeOrderId": 100001,
|
|
|
+ "chargeOrderNo": "CD2024031600001",
|
|
|
+ "status": 1
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 10. 停止充电
|
|
|
+
|
|
|
+### 10.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** stop_charge
|
|
|
+- **接口说明:** 第三方停止充电
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/stop_charge`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 10.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| chargeOrderNo | 充电订单编号 | String | 平台充电订单编号 | 是 |
|
|
|
+
|
|
|
+### 10.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "chargeOrderNo": "CD2024031600001"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 10.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| result | 停止结果 | Integer | 0-成功,1-失败 |
|
|
|
+| message | 结果消息 | String | 结果描述 |
|
|
|
+| chargeOrderId | 充电订单ID | Long | 平台充电订单ID |
|
|
|
+| chargeOrderNo | 充电订单编号 | String | 平台充电订单编号 |
|
|
|
+| status | 充电状态 | Integer | 0-待启动,1-充电中,2-结算中,3-已完成,5-未成功充电 |
|
|
|
+
|
|
|
+### 10.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "result": 0,
|
|
|
+ "message": "停止充电成功",
|
|
|
+ "chargeOrderId": 100001,
|
|
|
+ "chargeOrderNo": "CD2024031600001",
|
|
|
+ "status": 2
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 11. 查询充电订单列表
|
|
|
+
|
|
|
+### 11.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_charge_order_list
|
|
|
+- **接口说明:** 第三方查询充电订单列表(只查询渠道类型订单)
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_charge_order_list`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 11.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|--------|------|----------|
|
|
|
+| operatorId | 运营商ID | String | 运营商唯一标识 | 是 |
|
|
|
+| userId | 用户ID | Long | 用户ID | 否 |
|
|
|
+| chargeOrderNo | 充电订单号 | String | 充电订单号 | 否 |
|
|
|
+| pageNo | 页码 | Long | 页码,默认1 | 否 |
|
|
|
+| pageSize | 每页记录数 | Long | 每页记录数,默认10 | 否 |
|
|
|
+
|
|
|
+### 11.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "operatorId": "123456789",
|
|
|
+ "userId": 10001,
|
|
|
+ "pageNo": 1,
|
|
|
+ "pageSize": 10
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 11.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|---------|------|
|
|
|
+| total | 总记录数 | Long | 总记录数 |
|
|
|
+| pageNo | 当前页码 | Long | 当前页码 |
|
|
|
+| pageSize | 每页记录数 | Long | 每页记录数 |
|
|
|
+| pages | 总页数 | Long | 总页数 |
|
|
|
+| records | 数据列表 | Array | 订单列表 |
|
|
|
+
|
|
|
+**records 数组元素:**
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| id | 订单ID | Long | 订单ID |
|
|
|
+| userId | 用户ID | Long | 用户ID |
|
|
|
+| chargeOrderNo | 充电订单号 | String | 充电订单号 |
|
|
|
+| equipmentId | 充电桩编号 | String | 充电桩编号 |
|
|
|
+| connectorId | 充电设备接口编码 | String | 充电设备接口编码 |
|
|
|
+| stationName | 充电站名称 | String | 充电站名称 |
|
|
|
+| connectorName | 充电设备接口名称 | String | 充电设备接口名称 |
|
|
|
+| startTime | 充电开始时间 | String | 充电开始时间 |
|
|
|
+| endTime | 充电结束时间 | String | 充电结束时间 |
|
|
|
+| chargeTime | 充电时长 | Integer | 充电时长(秒) |
|
|
|
+| totalCharge | 实际充电度数 | BigDecimal | 单位:kW/h |
|
|
|
+| status | 订单状态 | Integer | 0-待启动,1-充电中,2-结算中,3-已完成,5-未成功充电 |
|
|
|
+| preAmt | 预充值金额 | BigDecimal | 预充值金额 |
|
|
|
+| phoneNum | 手机号 | String | 用户手机号 |
|
|
|
+| plateNum | 车牌号 | String | 车牌号 |
|
|
|
+| stopType | 停止类型 | Integer | 1-主动停止,2-充满停止,3-余额不足停止,4-电桩按钮停止 |
|
|
|
+| stopReason | 停止原因 | String | 停止原因描述 |
|
|
|
+| createTime | 创建时间 | String | 订单创建时间 |
|
|
|
+
|
|
|
+### 11.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "total": 100,
|
|
|
+ "pageNo": 1,
|
|
|
+ "pageSize": 10,
|
|
|
+ "pages": 10,
|
|
|
+ "records": [
|
|
|
+ {
|
|
|
+ "id": 100001,
|
|
|
+ "userId": 10001,
|
|
|
+ "chargeOrderNo": "CD2024031600001",
|
|
|
+ "equipmentId": "EQ001",
|
|
|
+ "connectorId": "CONN001",
|
|
|
+ "stationName": "XX充电站",
|
|
|
+ "connectorName": "101号充电口",
|
|
|
+ "startTime": "2024-03-16 10:00:00",
|
|
|
+ "endTime": "2024-03-16 11:30:00",
|
|
|
+ "chargeTime": 5400,
|
|
|
+ "totalCharge": 30.50,
|
|
|
+ "status": 3,
|
|
|
+ "preAmt": 100.00,
|
|
|
+ "phoneNum": "13800138000",
|
|
|
+ "plateNum": "京A12345",
|
|
|
+ "stopType": 2,
|
|
|
+ "stopReason": "充满停止",
|
|
|
+ "createTime": "2024-03-16 10:00:00"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 12. 查询充电订单详情
|
|
|
+
|
|
|
+### 12.1 接口描述
|
|
|
+
|
|
|
+- **接口名称:** query_charge_order_info
|
|
|
+- **接口说明:** 第三方查询充电订单详情(只查询渠道类型订单)
|
|
|
+- **请求格式:** JSON
|
|
|
+- **请求方式:** POST
|
|
|
+- **接口路径:** `/third-party/v1/query_charge_order_info`
|
|
|
+- **认证方式:** 需要在Header中携带 `Authorization: Bearer {accessToken}`
|
|
|
+
|
|
|
+### 12.2 输入参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 | 是否必填 |
|
|
|
+|----------|----------|----------|------|----------|
|
|
|
+| chargeOrderNo | 充电订单号 | String | 充电订单号 | 是 |
|
|
|
+
|
|
|
+### 12.3 请求示例
|
|
|
+
|
|
|
+**data加密前:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "chargeOrderNo": "CD2024031600001"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 12.4 返回参数(data解密后)
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数类型 | 描述 |
|
|
|
+|----------|----------|----------|------|
|
|
|
+| result | 查询结果 | Integer | 0-成功,1-失败 |
|
|
|
+| message | 失败原因 | String | 失败原因描述 |
|
|
|
+| id | 订单ID | Long | 订单ID |
|
|
|
+| userId | 用户ID | Long | 用户ID |
|
|
|
+| chargeOrderNo | 充电订单号 | String | 充电订单号 |
|
|
|
+| equipmentId | 充电桩编号 | String | 充电桩编号 |
|
|
|
+| connectorId | 充电设备接口编码 | String | 充电设备接口编码 |
|
|
|
+| stationName | 充电站名称 | String | 充电站名称 |
|
|
|
+| connectorName | 充电设备接口名称 | String | 充电设备接口名称 |
|
|
|
+| startTime | 充电开始时间 | String | 充电开始时间 |
|
|
|
+| endTime | 充电结束时间 | String | 充电结束时间 |
|
|
|
+| chargeTime | 充电时长 | Integer | 充电时长(秒) |
|
|
|
+| totalCharge | 实际充电度数 | BigDecimal | 单位:kW/h |
|
|
|
+| status | 订单状态 | Integer | 0-待启动,1-充电中,2-结算中,3-已完成,5-未成功充电 |
|
|
|
+| preAmt | 预充值金额 | BigDecimal | 预充值金额 |
|
|
|
+| phoneNum | 手机号 | String | 用户手机号 |
|
|
|
+| plateNum | 车牌号 | String | 车牌号 |
|
|
|
+| stopType | 停止类型 | Integer | 1-主动停止,2-充满停止,3-余额不足停止,4-电桩按钮停止 |
|
|
|
+| stopReason | 停止原因 | String | 停止原因描述 |
|
|
|
+| createTime | 创建时间 | String | 订单创建时间 |
|
|
|
+
|
|
|
+### 12.5 返回示例
|
|
|
+
|
|
|
+**data解密后:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "result": 0,
|
|
|
+ "message": "",
|
|
|
+ "id": 100001,
|
|
|
+ "userId": 10001,
|
|
|
+ "chargeOrderNo": "CD2024031600001",
|
|
|
+ "equipmentId": "EQ001",
|
|
|
+ "connectorId": "CONN001",
|
|
|
+ "stationName": "XX充电站",
|
|
|
+ "connectorName": "101号充电口",
|
|
|
+ "startTime": "2024-03-16 10:00:00",
|
|
|
+ "endTime": "2024-03-16 11:30:00",
|
|
|
+ "chargeTime": 5400,
|
|
|
+ "totalCharge": 30.50,
|
|
|
+ "status": 3,
|
|
|
+ "preAmt": 100.00,
|
|
|
+ "phoneNum": "13800138000",
|
|
|
+ "plateNum": "京A12345",
|
|
|
+ "stopType": 2,
|
|
|
+ "stopReason": "充满停止",
|
|
|
+ "createTime": "2024-03-16 10:00:00"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 附录:配置模板
|
|
|
+
|
|
|
+对接需要配置以下参数,由平台给第三方平台提供这些参数信息:
|
|
|
+
|
|
|
+| 参数名称 | 参数定义 | 参数说明 | 是否必填 | 备注 |
|
|
|
+|----------|----------|----------|----------|---------------------------------|
|
|
|
+| operatorId | 运营商ID | 平台分配给对应渠道方的唯一代码(长度9位,由数字及大小写字符组成) | 是 | 用于标识运营商身份 |
|
|
|
+| apiBaseUrl | 接口地址 | 平台提供的API接口基础地址 | 是 | 例如: https://cd.admin.zswlgz.com |
|
|
|
+| operatorSecret | 运营商密钥 | 用于获取Token的密钥,由对方平台分配 | 是 | 用于申请认证 |
|
|
|
+| sigSecret | 签名密钥 | 用于生成和验证消息签名的密钥 | 是 | 用于HMAC-MD5签名算法 |
|
|
|
+| dataSecret | 数据密钥 | 用于AES加密和解密数据的密钥 | 是 | 16位密钥,用于data字段加解密 |
|
|
|
+| dataSecretIV | 数据加密向量 | AES加密算法使用的初始化向量(IV) | 是 | 16字节向量,用于CBC模式加密 |
|
|
|
+
|
|
|
+**配置示例:**
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "operatorId": "123456789",
|
|
|
+ "apiBaseUrl": "https://cd.admin.zswlgz.com",
|
|
|
+ "operatorSecret": "your_operator_secret_key",
|
|
|
+ "sigSecret": "your_sign_secret_key",
|
|
|
+ "dataSecret": "your_data_encryption_key",
|
|
|
+ "dataSecretIV": "your_data_iv_vector"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+> ⚠️ **重要提示:**
|
|
|
+> - 以上所有参数由平台提供给第三方平台
|
|
|
+> - 密钥信息需要严格保密,不得泄露
|
|
|
+> - 配置参数需要双方确认无误后再进行接口对接
|