Ecology 模块提供生态系统相关的 API 接口,支持用户信息查询、团队关系管理和下级统计等功能。所有接口都采用 AES-256-CBC 加密算法保证数据传输安全。
app/Module/Ecology/api/ecologyecologyGET /api/ecology/test-encryptTestController@testEncryptPOST /api/ecology/{ecology_id}/test-decryptTestController@testDecryptEncryptionMiddlewarePOST /api/ecology/{ecology_id}/userInfoEcologyController@getUserInfoEncryptionMiddlewarePOST /api/ecology/{ecology_id}/userTeamEcologyController@getUserTeamEncryptionMiddlewarePOST /api/ecology/{ecology_id}/userLevelCountEcologyController@getLevelCountEncryptionMiddlewareecology_config 表的 app_key 字段{
"data": "加密后的请求数据(Base64编码)",
"iv": "IV向量(Base64编码)",
"timestamp": 1234567890,
"sign": "数据签名(SHA256)"
}
{
"data": "加密后的响应数据(Base64编码)",
"iv": "IV向量(Base64编码)",
"timestamp": 1234567890,
"sign": "数据签名(SHA256)"
}
app_keySHA256(data + iv + timestamp + app_key)SHA256(data + iv + timestamp + app_key) == sign接口地址: GET /api/ecology/test-encrypt
请求参数:
userId=10002&level=1响应示例:
{
"data": "eyJzdGF0dXMiOiJzdWNjZXNzIn0=",
"iv": "MTIzNDU2Nzg5MGFiY2RlZg==",
"timestamp": 1234567890,
"sign": "a1b2c3d4e5f6..."
}
错误响应:
{
"error": "加密失败: 错误信息"
}
接口地址: POST /api/ecology/{ecology_id}/test-decrypt
路径参数:
ecology_id: 生态ID(整数)请求参数:
响应:
接口地址: POST /api/ecology/{ecology_id}/userInfo
路径参数:
ecology_id: 生态ID(整数)请求参数(解密后):
{
"userKey": "用户密钥(字符串,必填)"
}
成功响应:
{
"userId": 12345
}
错误响应:
{
"code": 400,
"message": "参数错误",
"errors": {
"userKey": ["userKey字段是必填的"]
}
}
接口地址: POST /api/ecology/{ecology_id}/userTeam
路径参数:
ecology_id: 生态ID(整数)请求参数(解密后):
{
"userId": 12345
}
成功响应:
{
"team": {
"1": 10001,
"2": 10002,
"3": 10003
}
}
响应说明:
team 对象的键表示级别(1、2、3级上级)null错误响应:
{
"code": 400,
"message": "参数错误",
"errors": {
"userId": ["userId字段是必填的"]
}
}
接口地址: POST /api/ecology/{ecology_id}/userLevelCount
路径参数:
ecology_id: 生态ID(整数)请求参数(解密后):
{
"userId": 12345,
"level": 1
}
参数说明:
userId: 用户ID(整数,必填)level: 统计级别(整数,必填,只能是1或3)成功响应:
{
"level": 1,
"count": 25
}
响应说明:
level: 请求的统计级别count: 对应级别的下级人数错误响应:
{
"code": 400,
"message": "参数错误:level只能是1或3",
"errors": {
"level": ["level字段必须是1或3"]
}
}
$userId: 用户ID$ecologyId: 生态ID$userKey - 用户密钥$userId - 用户ID$userId: 用户ID$level: 统计级别$userId - 用户ID$ecologyId - 生态ID$url: 服务地址$params: 请求参数$method: 请求方法(GET/POST)$appKey: 应用密钥$key: 加密密钥$timeout: 数据有效期(秒,默认300秒)$data - 要加密的数据数组$encryptedData - 加密数据数组$key - 新的加密密钥$response - 响应对象ecology_idapp_keydecrypted 字段表名: ecology_config
主要字段(基于代码推断):
id: 主键IDname: 生态名称link: 生态链接address_prefix: 地址前缀app_key: 应用密钥coin_type: 交互币种表名: ecology_user
主要字段(基于代码推断):
id: 主键IDecology_id: 生态IDuser_id: 用户IDuser_key: 用户密钥created_at: 创建时间updated_at: 更新时间deleted_at: 删除时间(软删除)| 错误码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 400 | 请求参数错误 |
| 401 | 签名验证失败 |
| 403 | 无权限访问 |
| 408 | 请求超时 |
| 500 | 服务器内部错误 |
ecology_config 表中配置了正确的 app_key# 测试加密接口
curl -X GET "http://your-domain/api/ecology/test-encrypt?userId=10002&level=1"
# 需要先通过加密接口获取加密数据,然后发送到解密接口
curl -X POST "http://your-domain/api/ecology/1/test-decrypt" \
-H "Content-Type: application/json" \
-d '{"data":"...","iv":"...","timestamp":...,"sign":"..."}'
# 获取用户信息
curl -X POST "http://your-domain/api/ecology/1/userInfo" \
-H "Content-Type: application/json" \
-d '{"data":"...","iv":"...","timestamp":...,"sign":"..."}'
# 获取用户团队关系
curl -X POST "http://your-domain/api/ecology/1/userTeam" \
-H "Content-Type: application/json" \
-d '{"data":"...","iv":"...","timestamp":...,"sign":"..."}'
# 获取用户下级统计
curl -X POST "http://your-domain/api/ecology/1/userLevelCount" \
-H "Content-Type: application/json" \
-d '{"data":"...","iv":"...","timestamp":...,"sign":"..."}'
文档版本: v1.0 最后更新: 2025-06-14 维护者: Ecology 模块开发团队