189 lines
4.9 KiB
Plaintext
189 lines
4.9 KiB
Plaintext
|
|
===============================================
|
|||
|
|
开放接口 PHP 客户端 - 快速使用指南
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
📁 文件清单
|
|||
|
|
--------------
|
|||
|
|
✅ OpenApiClient.php - PHP 客户端类(核心)
|
|||
|
|
✅ quickstart.php - 快速开始示例
|
|||
|
|
✅ openapi-student-list-test.php - 完整测试示例
|
|||
|
|
✅ README.md - 详细使用文档
|
|||
|
|
✅ 使用说明.txt - 本文件
|
|||
|
|
|
|||
|
|
===============================================
|
|||
|
|
🚀 快速开始(3 步)
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
步骤 1:获取应用凭证
|
|||
|
|
-------------------
|
|||
|
|
1. 打开浏览器访问:http://localhost:80
|
|||
|
|
2. 登录管理后台
|
|||
|
|
3. 进入【应用管理】菜单
|
|||
|
|
4. 新增或查看应用,获取:
|
|||
|
|
- 应用编码(AppCode):如 YY000001
|
|||
|
|
- 应用密钥(AppSecret):如 2221c3d6f00c4baabfabfd4f679693f1
|
|||
|
|
|
|||
|
|
步骤 2:修改配置
|
|||
|
|
-------------------
|
|||
|
|
编辑 quickstart.php 文件,修改以下配置:
|
|||
|
|
|
|||
|
|
$config = [
|
|||
|
|
'baseUrl' => 'http://localhost:8080',
|
|||
|
|
'appCode' => 'YY000001', ← 替换为您的应用编码
|
|||
|
|
'appSecret' => 'xxxxx...', ← 替换为您的应用密钥
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
步骤 3:运行测试
|
|||
|
|
-------------------
|
|||
|
|
在终端执行:
|
|||
|
|
|
|||
|
|
cd /Users/felix/pgWorkSpace/pangu-user-platform/scripts/test
|
|||
|
|
php quickstart.php
|
|||
|
|
|
|||
|
|
或使用命令行参数:
|
|||
|
|
|
|||
|
|
php openapi-student-list-test.php YY000001 your-app-secret
|
|||
|
|
|
|||
|
|
===============================================
|
|||
|
|
📖 使用示例
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
示例 1:基础调用
|
|||
|
|
-------------------
|
|||
|
|
<?php
|
|||
|
|
require_once 'OpenApiClient.php';
|
|||
|
|
|
|||
|
|
$client = new OpenApiClient(
|
|||
|
|
'http://localhost:8080',
|
|||
|
|
'YY000001',
|
|||
|
|
'your-app-secret',
|
|||
|
|
false // 调试模式
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
$result = $client->get('/open/api/student/list', [
|
|||
|
|
'pageNum' => 1,
|
|||
|
|
'pageSize' => 10
|
|||
|
|
]);
|
|||
|
|
|
|||
|
|
if ($result['code'] === 200) {
|
|||
|
|
echo "总记录数: {$result['total']}\n";
|
|||
|
|
}
|
|||
|
|
?>
|
|||
|
|
|
|||
|
|
示例 2:带条件查询
|
|||
|
|
-------------------
|
|||
|
|
$result = $client->get('/open/api/student/list', [
|
|||
|
|
'pageNum' => 1,
|
|||
|
|
'pageSize' => 10,
|
|||
|
|
'studentName' => '张', // 姓名模糊查询
|
|||
|
|
'schoolId' => 1, // 按学校筛选
|
|||
|
|
'gradeId' => 2, // 按年级筛选
|
|||
|
|
'classId' => 3 // 按班级筛选
|
|||
|
|
]);
|
|||
|
|
|
|||
|
|
示例 3:开启调试模式
|
|||
|
|
-------------------
|
|||
|
|
$client = new OpenApiClient(
|
|||
|
|
'http://localhost:8080',
|
|||
|
|
'YY000001',
|
|||
|
|
'your-app-secret',
|
|||
|
|
true // 开启调试,查看签名计算过程
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
===============================================
|
|||
|
|
🔐 签名算法说明
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
PHP 实现:
|
|||
|
|
-----------
|
|||
|
|
function calculateSign($params, $appSecret) {
|
|||
|
|
ksort($params); // 1. 排序
|
|||
|
|
|
|||
|
|
$signStr = '';
|
|||
|
|
foreach ($params as $key => $value) {
|
|||
|
|
if ($signStr) $signStr .= '&';
|
|||
|
|
$signStr .= $key . '=' . $value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$signStr .= '&appSecret=' . $appSecret; // 2. 追加密钥
|
|||
|
|
|
|||
|
|
return strtoupper(md5($signStr)); // 3. MD5 + 大写
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
示例:
|
|||
|
|
-----------
|
|||
|
|
参数:pageNum=1, pageSize=10
|
|||
|
|
密钥:a1b2c3d4e5f6789012345678901234ab
|
|||
|
|
|
|||
|
|
签名字符串:
|
|||
|
|
pageNum=1&pageSize=10&appSecret=a1b2c3d4e5f6789012345678901234ab
|
|||
|
|
|
|||
|
|
MD5 结果(大写):
|
|||
|
|
A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
|
|||
|
|
|
|||
|
|
===============================================
|
|||
|
|
❌ 常见错误处理
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
1. 签名验证失败
|
|||
|
|
原因:appSecret 错误或签名计算错误
|
|||
|
|
解决:开启调试模式检查签名计算过程
|
|||
|
|
|
|||
|
|
2. 请求已过期
|
|||
|
|
原因:时间戳超过 5 分钟
|
|||
|
|
解决:同步服务器时间
|
|||
|
|
|
|||
|
|
3. 无权访问该接口
|
|||
|
|
原因:应用未授权该接口
|
|||
|
|
解决:在管理后台配置接口授权
|
|||
|
|
|
|||
|
|
4. 应用已停用
|
|||
|
|
原因:应用状态为停用
|
|||
|
|
解决:在管理后台启用应用
|
|||
|
|
|
|||
|
|
===============================================
|
|||
|
|
📚 接口文档
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
接口路径:/open/api/student/list
|
|||
|
|
请求方法:GET
|
|||
|
|
|
|||
|
|
请求参数:
|
|||
|
|
- pageNum [必填] 页码
|
|||
|
|
- pageSize [必填] 每页条数
|
|||
|
|
- studentName [可选] 学生姓名(模糊)
|
|||
|
|
- schoolId [可选] 学校ID
|
|||
|
|
- gradeId [可选] 年级ID
|
|||
|
|
- classId [可选] 班级ID
|
|||
|
|
|
|||
|
|
响应字段:
|
|||
|
|
- studentId 学生ID
|
|||
|
|
- studentCode 学号
|
|||
|
|
- studentName 学生姓名(已脱敏)
|
|||
|
|
- gender 性别(0未知 1男 2女)
|
|||
|
|
- schoolName 学校名称
|
|||
|
|
- gradeName 年级名称
|
|||
|
|
- className 班级名称
|
|||
|
|
|
|||
|
|
===============================================
|
|||
|
|
🔗 相关资源
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
- 详细文档:README.md
|
|||
|
|
- 技术方案:/docs/应用管理-需求与技术设计方案.md
|
|||
|
|
- 实现说明:/docs/开放接口实现说明.md
|
|||
|
|
- Swagger:http://localhost:8080/doc.html
|
|||
|
|
|
|||
|
|
===============================================
|
|||
|
|
📞 技术支持
|
|||
|
|
===============================================
|
|||
|
|
|
|||
|
|
如有问题,请查看:
|
|||
|
|
1. README.md 详细文档
|
|||
|
|
2. /tmp/pangu-admin.log 后端日志
|
|||
|
|
3. 开启调试模式查看请求详情
|
|||
|
|
|
|||
|
|
pangu
|
|||
|
|
2026-02-04
|
|||
|
|
===============================================
|