我们有一款免费的 UWP 应用程序已发布到 Microsoft Store,其中包含非消耗性升级附加项。由于最近向公众引入了新的订阅计费模型,我们计划在下一个版本中添加订阅计划以利用它。
我们还希望在后端查看和管理用户拥有的附加组件,并有相关文档可供参考。我们密切遵循了其中的步骤,但最终在尝试为用户获取订阅时,始终收到空响应:
以下是我们简要地进行的步骤:
我们还可以通过“订单历史记录”确认,我们之前测试的 Microsoft 帐户拥有至少一个持久性附加项和一个订阅。客户端应用程序中也可以通过调用 StoreContext.GetUserCollectionAsync 或 StoreContext.GetAppLicenseAsync API 进行检查 - 确实存在一个非消耗性产品和一个订阅。
无论如何,尽管部分解决了订阅问题,现在我们无法使用“查询产品”API获取有关任何非消耗性持久性附加组件的信息,无论其价格层级如何 - 这也是一个重大问题,因此需要进一步调查。
我们还希望在后端查看和管理用户拥有的附加组件,并有相关文档可供参考。我们密切遵循了其中的步骤,但最终在尝试为用户获取订阅时,始终收到空响应:
{"items":[]}
。以下是我们简要地进行的步骤:
- 在Azure Active Directory中创建了新的应用程序注册。
- 通过合作伙伴控制台将应用程序注册标识符与我们的应用程序关联。
为以下受众URI创建了三个Azure Active Directory(AAD)令牌:
通过从我们的应用程序客户端代码调用
StoreContext.GetCustomerCollectionsIdAsync
和StoreContext.GetCustomerPurchaseIdAsync
,代表我们的测试Microsoft帐户为集合和购买API创建了Microsoft Store ID密钥。为了生成每个密钥,我们使用了步骤3中相应的AAD令牌。- 请求用户的产品/订阅(使用步骤3中的授权AAD令牌和步骤4中的商店ID密钥)。
我们还可以通过“订单历史记录”确认,我们之前测试的 Microsoft 帐户拥有至少一个持久性附加项和一个订阅。客户端应用程序中也可以通过调用 StoreContext.GetUserCollectionAsync 或 StoreContext.GetAppLicenseAsync API 进行检查 - 确实存在一个非消耗性产品和一个订阅。
我在官方论坛上发布了同样的问题,但不确定我们是否会很快得到回复,所以决定在这里也发帖。请注意,类似的问题也在论坛上发布,但从帖子中并不清楚它是否已解决。
有人成功地从他们的后端服务获取用户购买记录吗?我们将感激任何能够使其为我们工作的指导。
更新(2018.08.29):
所以我们在这个问题上有了一点进展。我们创建了一个新的非免费($0.99)订阅附加组件,购买了它并请求了用户的订阅。令人惊讶的是,在响应中出现了一个新项!
值得一提的是,同一用户已经拥有了几个免费订阅,但在响应列表中没有列出。我从未在文档中看到任何关于免费订阅的限制说明,即它们不会包含在返回的项目中。无论如何,尽管部分解决了订阅问题,现在我们无法使用“查询产品”API获取有关任何非消耗性持久性附加组件的信息,无论其价格层级如何 - 这也是一个重大问题,因此需要进一步调查。
https://onestore.microsoft.com/b2b/keys/create/purchase
受众URI的令牌。请查看了解不同的令牌和受众URI文档。 - Breeze Liu - MSFThttps://onestore.microsoft.com/b2b/keys/create/purchase
受众 URI 创建了 AAD 访问令牌,并使用它从本机 SDK 生成相应的商店 ID 密钥。我已将有关受众 URI 的详细信息以及我们如何使用它添加到原始帖子中。 - mikejd