直接销售端点

直接销售端点在一次原子调用中将座位标记为已售,无需标准销售流程的锁定步骤。适用于后台销售、赠票、外部 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 浏览器与完整参考。

输入功能、设置、端点或 SDK 方法。