Skip to main content
publisherQuery 允许你自己的服务查询用户的产品和授权,包括其 XBOX Game Pass 订阅状态。 你的服务不应定期轮询用户购买以避免基于每用户时间窗口的调用速率限制。 目前,限制为对同一用户在五分钟窗口内 100 次查询请求。 触发速率限制会导致返回 429 HTTP 响应,其中包含有关何时可以发出下一个请求的信息。 结果仅包括你的服务代表调用的用户帐户直接拥有或授权的产品。 不会返回可能在客户端上显示的共享授权。请参阅游戏的产品共享模型 有关查询用户 Game Pass 订阅状态的具体信息,请参阅从你的服务检测 XBOX Game Pass 订阅访问权限
publisherQuery 仅支持来自合作伙伴服务的调用。
客户端应用或游戏无法直接调用此服务。

publisherQuery (Collections Query v9) 中的更新和改进

publisherQuery 是最新的 Collections Query API (v9)。 如果从 b2bLicensePreview (v8) 迁移,请查看本节了解行为差异。 publisherQuery 相比 b2bLicensePreview 有以下更改和改进:
  • 能够查询用户的 XBOX Game Pass 订阅状态
  • 要求返回预定义的产品列表。 这是最佳做法,但在 v8 b2bLicensePreview 中不是必需的。 未遵循此最佳做法的游戏通常在发布后会出现问题,请求由于其查询参数产生的内容范围过大而超时。 这会阻止用户获得游戏内学分,直到游戏的服务更新以在查询请求中指定所需的 ProductId。
  • 精简响应数据字段以删除未使用或不必要的值
  • 根据开发者反馈精简请求参数
从请求正文中删除:
  • Market - publisherQuery 中所有请求都上下文关联所有地区
  • ExpandSatisfyingItems - publisherQuery 中所有结果都会扩展满足性授权
  • EntitlementsFilter - 未使用,因为查询需要预定义的 productIds 列表
publisherQuery 不支持 LegacyProductIds(从已淘汰的 XBOX 开发者门户生成并被 XBOX Inventory 服务用作 ProductId 的 ProductId)。
如果从 XBOX Inventory 迁移你的服务,你需要在你自己的服务上将 StoreId(Collections 中的 ProductId 值)内部映射到匹配的 LegacyProductId。 否则,你可以查看 v8 b2bLicensePreview,它同时返回 StoreId 和 LegacyProductIds。
有关详细信息,请参阅相应文章根据你的需要选择合适的 Collections 查询 API

先决条件

请查看服务到服务 API 的先决条件 此 API 同时支持 Microsoft Entra ID 和委托身份验证 X-token 身份验证类型。 如果产品配置未在合作伙伴中心发布,调用可能成功但不返回任何结果。

请求

请求语法

请求标头

请求正文

ProductSkuId 对象包含以下参数。

请求示例

v9 publisherQuery API 每个请求最多支持 100 个 productSkuIds。在 productSkuIds 中提供超过 100 个 productIds 时,API 会返回 HTTP 400 错误。
默认 maxPageSize 为 100,但示例中使用了较低的值以演示请求其余项目。

响应

响应正文

PublisherQueryItemContractV9 对象包含以下参数。 TrialInformation 对象包含下表中所示的参数。

产品类型值及含义

产品状态值及含义

产品 acquisitionType 值及含义

通过 satisfiedByProductIds 字段理解已满足授权的结果

如果 satisfiedByProductIds 数组为空,则用户对该项目具有直接购买的直接授权。 否则,如果 satisfiedByProductIds 数组具有一个或多个 ProductId,则该项目是从这些产品(捆绑包、订阅等)授权给用户的。 如果用户对项目同时具有直接授权和满足性授权,如果请求中的 excludeDuplicatesTrue,则直接授权将优先,satisfiedByProductIds 将为空。

响应示例

使用延续令牌请求其余结果

如果你的查询包含比单个响应可返回更多的结果(由 maxPageSize 控制),则初始查询响应中会包含 continuationToken。 然后,你可以在后续请求中通过将延续令牌添加到先前请求正文的副本中来使用此 continuationToken。 示例延续请求:
即使你指定了 excludeDuplicates 标志,使用延续令牌时也可能获取状态不同的授权条目。因此,请验证结果是否存在重复条目以及它们的状态是否不是 Active。

另请参阅

从你的服务管理产品 使用 Microsoft Store API 验证你的服务 从你的服务管理可消耗产品
最后修改于 2026年8月24日