Microsoft Store API的请求总是返回空的产品/订阅列表

9
我们有一款免费的 UWP 应用程序已发布到 Microsoft Store,其中包含非消耗性升级附加项。由于最近向公众引入了新的订阅计费模型,我们计划在下一个版本中添加订阅计划以利用它。
我们还希望在后端查看和管理用户拥有的附加组件,并有相关文档可供参考。我们密切遵循了其中的步骤,但最终在尝试为用户获取订阅时,始终收到空响应:{"items":[]}
以下是我们简要地进行的步骤:
  1. 在Azure Active Directory中创建了新的应用程序注册。
  2. 通过合作伙伴控制台将应用程序注册标识符与我们的应用程序关联。
  3. 为以下受众URI创建了三个Azure Active Directory(AAD)令牌:

  4. 通过从我们的应用程序客户端代码调用StoreContext.GetCustomerCollectionsIdAsyncStoreContext.GetCustomerPurchaseIdAsync,代表我们的测试Microsoft帐户为集合和购买API创建了Microsoft Store ID密钥。为了生成每个密钥,我们使用了步骤3中相应的AAD令牌。

  5. 请求用户的产品/订阅(使用步骤3中的授权AAD令牌和步骤4中的商店ID密钥)。
我们得到了“200 OK”的响应,但列表始终为空,这非常令人失望,实际上对我们现在来说是一个主要的阻碍问题。
我们还可以通过“订单历史记录”确认,我们之前测试的 Microsoft 帐户拥有至少一个持久性附加项和一个订阅。客户端应用程序中也可以通过调用 StoreContext.GetUserCollectionAsync 或 StoreContext.GetAppLicenseAsync API 进行检查 - 确实存在一个非消耗性产品和一个订阅。

我在官方论坛上发布了同样的问题,但不确定我们是否会很快得到回复,所以决定在这里也发帖。请注意,类似的问题也在论坛上发布,但从帖子中并不清楚它是否已解决。

有人成功地从他们的后端服务获取用户购买记录吗?我们将感激任何能够使其为我们工作的指导。

更新(2018.08.29):

所以我们在这个问题上有了一点进展。我们创建了一个新的非免费($0.99)订阅附加组件,购买了它并请求了用户的订阅。令人惊讶的是,在响应中出现了一个新项!

值得一提的是,同一用户已经拥有了几个免费订阅,但在响应列表中没有列出。我从未在文档中看到任何关于免费订阅的限制说明,即它们不会包含在返回的项目中。
无论如何,尽管部分解决了订阅问题,现在我们无法使用“查询产品”API获取有关任何非消耗性持久性附加组件的信息,无论其价格层级如何 - 这也是一个重大问题,因此需要进一步调查。

在您的第三步和第四步中,您使用了哪个URI来获取令牌?如果您想要为用户获取订阅,您还必须创建一个带有https://onestore.microsoft.com/b2b/keys/create/purchase受众URI的令牌。请查看了解不同的令牌和受众URI文档。 - Breeze Liu - MSFT
当然,我们为 https://onestore.microsoft.com/b2b/keys/create/purchase 受众 URI 创建了 AAD 访问令牌,并使用它从本机 SDK 生成相应的商店 ID 密钥。我已将有关受众 URI 的详细信息以及我们如何使用它添加到原始帖子中。 - mikejd
3
我在论坛上回复了你的问题。这应该是一个B2B问题,我们需要更多关于它的信息。请查看论坛上的答案。 - Breeze Liu - MSFT
1个回答

3

终于看起来我们解决了这个问题!

对于非消耗性耐用品和订阅,有略微不同的情况,但它们都涉及到一个关于附加组件属性中个人数据收集的新要求问题,看起来像这样:

enter image description here

以下是你需要做的:

  1. 如果您提交了一个相当长时间之前的非消耗性耐用型附加组件,则需要创建一个新的提交,选择对上述问题的任何答案,并将其提交给认证。一旦您的更新版本的产品在商店中,尝试请求产品的用户收集,现在应该包含在响应中。
  2. 如果您创建一个订阅附加组件,看起来必须选择“是”作为答案,并提供隐私政策URL,否则它永远不会出现在“用户订阅”的响应中。还请注意,根据我们的经验,与非消耗性耐用品相比,需要更长的时间才能生效 - 认证完成后最多需要24小时左右。

好了,现在没问题了,但我就是不明白为什么这些要求没有在 Microsoft 的文档中一开始就提到,导致许多时间被浪费在沮丧之中……


2
说句题外话,如果在商店列表中添加 Azure 租户 ID 之前创建了订阅,您将遇到类似问题,因为添加 ID 后不能自动将现有订阅与其关联,直到重新提交每个订阅。 - Johnny Westlake
@JohnnyWestlake,我觉得这不是我们的情况,但还是谢谢你! - mikejd
这是否也解决了“无论如何,订阅问题已经部分解决,现在我们无法使用“查询产品”API获取任何非消耗性持久性附加项的信息,无论其价格层次如何 - 这也是一个重大问题,因此需要进一步调查。”我已回答了隐私政策问题,但仍从https://collections.mp.microsoft.com/v6.0/collections/query API获得空结果。 - Adam Hewitt
@AdamHewitt,你在最新提交中是否也填写了“隐私政策URL”、“网站”和“支持联系信息”属性? - mikejd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接