直接销售端点
直接销售端点在一次原子调用中将座位标记为已售,无需标准销售流程的锁定步骤。适用于后台销售、赠票、外部 POS 系统导入等非交互流程。
如何选择流程
- 预订会话:浏览器驱动的交互结算。页面创建会话,随买家点击保留或释放座位,支付后由服务器确认。
- 标准销售流程:交互结算时,服务器在支付期间使用
lock保留座位,确认后使用sale出售,购物车由自己的系统维护。 - 直接销售:没有客户持有座位的后台销售、赠票或手动导入。一次调用,不经过保留状态。
端点
POST /api/private/v2.0/booking/directsale?eventId={eventId}
| 参数 | 位置 | 必填 | 说明 |
|---|---|---|---|
eventId |
query | 是 | 包含待售座位的活动 UUID。 |
请求正文
请求结构与标准销售端点一致:座位和/或通用入场条目列表,以及可选会话 ID 和保留类型。
{
"sessionId": "abc123",
"seats": [{ "id": 42 }, { "id": 43 }],
"groupOfSeats": [{ "id": 7, "capacity": 4 }],
"holdType": "DIRECT"
}
holdType 可选,仅作为审计行中的说明信息;直接销售不经过保留状态。
响应
| 状态 | 正文 | 含义 |
|---|---|---|
| 200 | true |
所有座位及 GA 名额均转为 SOLD。 |
| 200 | false |
至少一个座位不为 ACTIVE,或至少一个 GA 区域可用容量不足。无状态更改。 |
| 402 | 调用方组织已禁用预订。 | |
| 403 | 调用方无该活动访问权限。 |
每个请求是原子的,不接受部分应用。任一座位失败,整个请求失败。
示例
curl -X POST \
"https://api.example.com/api/private/v2.0/booking/directsale?eventId=8d4f0f3a-2b8e-4d2a-9c8e-1d3a2b8e4d2a" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "abc123",
"seats": [{"id": 42}, {"id": 43}]
}'
# 200
# true
限制
- 座位必须为 ACTIVE;LOCKED、SOLD 或 BLOCKED 会被拒绝,返回 false 且不改变状态。
- 通用入场容量直接从可用数量扣除,不经过中间锁定数量。
- 每次成功转换写入审计记录,原状态为 ACTIVE,确保分析及下游正确识别转换。
- 标准销售端点及其语义不变,直接销售需主动选择使用。
授权
与标准销售端点相同:调用方组织必须有活动访问权限,且已启用预订。
另请参阅
- API 参考:交互式 API 浏览器与完整参考。