Skip to main content
Collections Query API 是服务确定用户所有权和权益状态的主要方式。与客户端 XStore API 相比,服务到服务查询支持更广泛的发行商级场景和中心化服务架构。 Collections API 的结果仅包含目标用户直接拥有/被授权的产品。在客户端有效的共享权益不会在服务到服务响应中返回。有关共享场景的更多信息,请参阅游戏的产品共享模式 本文通过以下内容帮助理解并集成 Query API:
请查看服务到服务 API 的先决条件。如果产品未针对你的身份验证类型正确配置,调用可能成功但不返回任何结果。

根据你的需求选择合适的 Collections Query API

有两个版本的 Collections Query:b2bLicensePreview (v8) 和 publisherQuery (v9)。在大多数情况下,请使用 publisherQuery,因为它具有精简的请求参数并支持 XBOX Game Pass 状态。当你需要 LegacyProductId 支持等旧行为时,请使用 b2bLicensePreview
尽管消费功能没有对应的 v9 URI,你可以将 publisherQuery 与 v8 consume URI 一起使用,不会出现问题。

理解响应中的满足权益

用户可以直接(购买/兑换)或间接(捆绑包/订阅)获得产品的权益。如果权益是间接的,satisfiedByProductIds 数组包含权益来源的 ProductId。 示例:用户购买了游戏的豪华版捆绑包。调用 Query API 会返回结果中的游戏产品和捆绑包中包含的任何产品。这些项目的 satisfiedByProductIds 列表中都包含豪华版捆绑包的 ProductID。

理解响应中的重复项目

当用户有多个权益来源时,你可能会看到具有相同 ProductId/SKU 的多个项目。差异通常出现在 acquisitionType、日期和 satisfiedByProductIds 等字段中。使用 excludeDuplicates 为 true 可将多个权益来源合并为一个最直接所有权权益的项目,按以下顺序:
  • 直接购买/兑换码
  • 由直接购买的捆绑包满足
  • 由订阅满足
  • 由促销购买满足(例如:Games With Gold)
如果重复项来自同一来源(例如 ActiveExpired 订阅期),则仅返回一项(即使 excludeDuplicates 关闭),使用以下状态优先级:
  • Active
  • Invalid(如果有多个 invalid 权益,则返回最近失效的项目)
  • Revoked
下表显示了常见的重复项场景和结果。

示例

用户购买了游戏 A 和附加内容 B,之后又购买了包含附加内容 B 的季票。响应中可能包含附加内容 B 的两个条目:直接购买和来自季票的满足权益。如果 excludeDuplicates 为 true,则仅返回直接购买的条目。

参考 API 文档

另请参阅

商务概述 从你的服务管理产品 XStore API 参考
最后修改于 2026年8月24日