工单进度
v1 支持只读组织工单进度,使用 tickets:read。只处理通过组织一次性邀请创建的工单,不开放个人工单或工作人员全局队列。
已加入工单列表
GET /v1/partners/{partner_id}/tickets?page=1
每页 20 条,按邀请创建时间倒序。返回 data.items 中的邀请元数据,且仅包含 state=joined 的邀请。每项的 id 为邀请 ID,ticket_id 为正式工单 ID;详情状态需要单独查询。
列表不是所有历史类型工单的全站目录,也不提供消息正文。组织网页中归档的已加入邀请仍可以出现在历史列表中,archived_at 会标记整理时间。
工单详情
GET /v1/partners/{partner_id}/tickets/{invitation_id}
路径末段使用邀请 ID,不是正式工单 ID。 邀请 ID 是组织隔离和持久工单定位所使用的公开标识。
{
"ok":true,
"data":{
"id":"FORMAL_TICKET_ID",
"invitation_id":"8f86690d-76d7-4e87-84d2-27b5fc8b6d41",
"partner_id":"ORGANIZATION_ID",
"game":"minecraft",
"status":"open",
"created_at":"2026-09-25T03:00:00.000Z",
"updated_at":"2026-09-25T03:10:00.000Z",
"message_count":3
},
"request_id":"req_EXAMPLE"
}
| status | 含义 |
|---|---|
open |
等待工作人员处理或回复 |
waiting_user |
等待用户或发起方回应 |
resolved |
工单已解决 |
尚未加入时返回 409 PLAYER_NOT_JOINED。邀请不存在、属于其他组织或工单关联校验失败时,不会返回会话内容。
工单关闭不等于查端通过
resolved 只描述会话状态。它不能推导出 clean、warning 或 cheating。查端结果以 记录接口 返回的正式记录为准。
v1 事件中的工单 ID 与记录 ID 是不同命名空间。当前没有可供第三方依赖的一对一自动关联字段;不要通过相似名字或时间擅自认定某条记录属于某个工单。应用需要明确关联时,应在自己的业务流程中由授权人员确认记录 UUID。
同步建议
优先接收 invitation.joined、ticket.message.created、ticket.status.updated。收到事件后重新读取进度,以最新状态为准。通知可能重复或乱序;message_count 是当前可见的非系统消息数量,不应被当作严格单调递增的业务流水号。
没有 Webhook 时,可每 30–60 秒查询正在处理的工单,给请求加入随机偏移,并遵守所有密钥合计限额。已解决工单降低轮询频率。API 不提供会话回复、关闭、重开、附件或远程信息操作。