Files
mipu-open/docs/09-04_device-task.md
杨柳杰 b450b512a2 init: mipu-open 对外开放项目统一管理仓库
- 添加 mipu-api 作为 git submodule (Claude Code Skill)
- 迁移 API 文档源文件到 docs/ 目录统一维护
- 添加 Gitea Actions 工作流:tag推送自动打包docs并发布Release
- Skill 运行时自动从 mipu-open Release 下载最新文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 12:16:08 +08:00

166 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- mipuyun-api-doc: device-task -->
# device/task/{taskId} - 查询任务
## 概述
任务查询API用于查询设备任务的执行状态和详情。通过绑定/解绑接口获取的任务ID可以使用本接口查询任务进度。
### 用户使用场景
本接口用于:
- 查询VCC卡绑定任务的状态
- 查询VCC卡解绑任务的状态
- 查询支付任务的状态
- 获取任务的详细信息和设备状态
## 请求说明
| 项目 | 值 |
|------|-----|
| **请求地址** | `https://${endpoint}/device/task/{taskId}` |
| **请求方法** | GET |
| **注意事项** | taskId从绑定/解绑接口返回中获取 |
### Header 参数
| 参数名称 | 类型 | 是否必选 | 示例值 | 说明 |
|----------|------|----------|--------|------|
| client-key | String | 是 | xxxxx | 联系我们获取生产环境 key |
| client-secret | String | 是 | xxxxx | 联系我们获取生产环境 secret |
### URL 参数
| 参数名称 | 类型 | 是否必选 | 示例值 | 说明 |
|----------|------|----------|--------|------|
| taskId | String | 是 | "task-bind-123456" | 任务ID从绑定/解绑接口返回 |
## 返回参数
成功时返回任务详情:
```json
{
"deviceId": "device-001",
"deviceStatus": "ONLINE",
"task": {
"taskId": "task-bind-123456",
"taskType": "BIND_VCC",
"status": "PROCESSING",
"createTime": "2025-01-15T10:30:00Z",
"updateTime": "2025-01-15T10:35:00Z",
"deviceId": "device-001",
"orderId": null,
"creditCard": {
"cardNumber": "424242******4242",
"cvv": "***",
"expiryDate": "12/25"
},
"orderDetail": null
}
}
```
| 参数名称 | 类型 | 说明 |
|----------|------|------|
| deviceId | String | 执行任务的设备ID |
| deviceStatus | String | 设备状态ONLINE=在线OFFLINE=离线 |
| task | Object | 任务详细信息 |
### Task 任务信息
| 参数名称 | 类型 | 说明 |
|----------|------|------|
| taskId | String | 任务ID |
| taskType | String | 任务类型BIND_VCC=绑定VCC卡UNBIND_VCC=解绑VCC卡PAYMENT=支付 |
| status | String | 任务状态PENDING=等待中PROCESSING=处理中COMPLETED=已完成FAILED=失败 |
| createTime | String | 创建时间ISO 8601格式 |
| updateTime | String | 更新时间ISO 8601格式 |
| deviceId | String | 设备ID |
| orderId | String | 订单ID仅PAYMENT类型任务 |
| creditCard | Object | 信用卡信息仅BIND_VCC类型任务脱敏显示 |
| orderDetail | String | 订单详情仅PAYMENT类型任务 |
## 业务案例
### 查询绑定任务状态
### 请求
```bash
curl -X GET "https://${endpoint}/device/task/task-bind-123456" \
-H "client-key: your_key" \
-H "client-secret: your_secret"
```
### 响应 - 任务处理中
```json
{
"deviceId": "device-001",
"deviceStatus": "ONLINE",
"task": {
"taskId": "task-bind-123456",
"taskType": "BIND_VCC",
"status": "PROCESSING",
"createTime": "2025-01-15T10:30:00Z",
"updateTime": "2025-01-15T10:35:00Z",
"deviceId": "device-001",
"creditCard": {
"cardNumber": "424242******4242",
"cvv": "***",
"expiryDate": "12/25"
}
}
}
```
### 响应 - 任务完成
```json
{
"deviceId": "device-001",
"deviceStatus": "ONLINE",
"task": {
"taskId": "task-bind-123456",
"taskType": "BIND_VCC",
"status": "COMPLETED",
"createTime": "2025-01-15T10:30:00Z",
"updateTime": "2025-01-15T10:36:00Z",
"deviceId": "device-001"
}
}
```
### 响应 - 任务不存在
```json
{
"deviceId": null,
"deviceStatus": null,
"task": null
}
```
## 常见问题
### 任务状态有哪几种?
- **PENDING**:任务在队列中等待执行
- **PROCESSING**:任务正在执行中
- **COMPLETED**:任务执行完成
- **FAILED**:任务执行失败
### 任务查询不到是什么原因?
- 任务ID错误
- 任务已完成且已被清理(根据系统配置,任务可能会在完成后一段时间被清理)
- 任务ID来自其他客户
### 为什么要轮询查询任务状态?
因为绑定/解绑操作是异步的设备需要时间完成操作。建议间隔3-5秒轮询一次直到任务状态变为 COMPLETED 或 FAILED。
### 信用卡信息为什么要脱敏?
为了保护支付安全任务详情中的信用卡信息只显示脱敏后的卡号和掩码CVV。