我们已将免费的 UWP 应用发布到 Microsoft Store,其中包含非消耗性升级插件。由于最近向公众推出了新的订阅计费模式,我们计划通过在下一个版本中添加订阅计划来利用它。
我们还想在我们的后端查看和管理用户拥有的附加组件,并且有相关文档可以做到这一点。我们密切关注它,但最终——例如,在尝试为用户获取订阅时——我们总是得到一个空的响应:{ "items": [] }
.
这是我们一步一步简要地做的事情:
- 在 Azure Active Directory 中创建了新的应用注册。
- 通过合作伙伴仪表板将应用注册的标识符与我们的应用相关联。
为以下受众 URI 创建了三个 Azure Active Directory (AAD) 令牌:
代表我们的测试 Microsoft 帐户通过调用
StoreContext.GetCustomerCollectionsIdAsync
和StoreContext.GetCustomerPurchaseIdAsync
分别从我们应用程序中的客户端代码创建用于收集和购买 API 的 Microsoft Store ID 密钥。为了生成每个密钥,我们使用了步骤 3 中对应的 AAD 令牌。- 为用户请求的产品/订阅(使用步骤 3 中的授权 AAD 令牌和步骤 4 中的商店 ID 密钥)。
所以我们得到了200 "OK"
回应,但列表总是空的,这非常令人失望,实际上对我们来说是一个主要的阻塞问题。
我们还可以通过“订单历史记录”确认我们上述测试 Microsoft 帐户拥有至少一个持久附加组件和一个订阅。可以通过调用客户端应用程序中的 APIStoreContext.GetUserCollectionAsync
或StoreContext.GetAppLicenseAsync
API 来检查相同的结果——确实有一种非消耗性产品和一种订阅。
我在官方论坛上发布了同样的问题,但不确定我们是否会很快得到回复,所以决定也在这里发布。请注意,论坛上也发布了类似的问题,但从线程中不清楚它是否已解决。
有没有人设法从他们的后端服务获得用户购买?我们将不胜感激任何指导,这也可以使它对我们有用。
更新(2018.08.29):
所以我们在这个问题上取得了一些进展。我们创建了新的非免费(0.99 美元)订阅插件,购买了它并为用户请求订阅。令人惊讶的是,响应中出现了一个新项目!
值得一提的是,同一用户已经拥有多个免费订阅,但没有一个在响应列表中。而且我从未在文档中看到任何关于免费订阅限制的提及,说它们不会包含在退回的项目中。
无论如何,订阅的问题已部分解决,现在我们无法通过“查询产品”API获取任何非消耗性耐用附加组件的信息,无论其价格等级如何——这也是一个主要问题,因此进一步调查是需要。