【发布时间】:2019-01-28 19:39:09
【问题描述】:
我们将免费的 UWP 应用发布到 Microsoft Store,其中包含非消耗性升级插件。由于最近新的订阅计费模式是introduced,因此我们计划通过在下一个版本中添加订阅计划来利用它。
我们还希望在我们的后端查看和管理用户拥有的附加组件,并且有相关的 documentation 可以做到这一点。我们密切关注它,但最终——例如,在尝试为用户订阅get 时——我们总是得到一个空响应:{ "items": [] }。
下面是我们简单的一步一步做的:
- 在 Azure Active Directory 中创建了新的应用注册。
- 通过合作伙伴仪表板将应用注册标识符与我们的应用相关联。
-
为以下受众 URI 创建了三个 Azure Active Directory (AAD) 令牌:
通过分别从我们应用中的客户端代码调用
StoreContext.GetCustomerCollectionsIdAsync和StoreContext.GetCustomerPurchaseIdAsync,代表我们的测试 Microsoft 帐户为收集和购买 API 创建了 Microsoft Store ID 密钥。为了生成每个密钥,我们使用了第 3 步中对应的 AAD 令牌。- 为用户请求的产品/订阅(使用第 3 步中的授权 AAD 令牌和第 4 步中的商店 ID 密钥)。
所以我们收到了200 "OK" 的回复,但列表总是空,这非常令人失望,实际上对我们来说是一个主要的阻塞问题。
我们还可以通过“订单历史记录”确认我们上述测试 Microsoft 帐户拥有至少一个持久附加组件和一个订阅。可以通过在客户端应用程序中调用StoreContext.GetUserCollectionAsync 或StoreContext.GetAppLicenseAsync API 来检查相同的结果——确实有一种非消耗品和一种订阅。
我在官方论坛posted同样的问题,但不确定我们是否会很快得到答复,所以决定也在这里发布。请注意,similar question 也发布在论坛上,但从帖子中并不清楚它是否已解决。
有没有人设法从他们的后端服务获得用户购买?我们将不胜感激任何指导,这也可以使它对我们有用。
更新(2018.08.29):
所以我们在这个问题上取得了一些进展。我们创建了新的非免费(0.99 美元)订阅插件,购买了它并为用户请求订阅。令人惊讶的是,响应中出现了一个新项目!
值得一提的是,同一用户已经拥有多个免费订阅,但没有一个在响应列表中。而且我从未在文档中看到任何关于免费订阅的限制,说它们不会包含在退回的项目中。
无论如何,订阅问题已部分解决,现在我们无法通过“查询产品”API 获取任何非消耗性耐用附加组件的信息,无论其价格等级如何 -这也是一个大问题,需要进一步调查。
【问题讨论】:
-
在您的第 3 步和第 4 步中,您使用哪个 uri 来获取令牌?如果您想get subscriptions for a user,您还必须使用
https://onestore.microsoft.com/b2b/keys/create/purchase受众URI 创建一个令牌。请检查the Understanding the different tokens and audience URIs文件。 -
当然,我们为
https://onestore.microsoft.com/b2b/keys/create/purchase受众 URI 创建了 AAD 访问令牌,并使用它从原生 SDK 生成相应的 Store ID 密钥。我在原始帖子中添加了有关受众 URI 以及我们如何使用它的详细信息。 -
我在forum 上回复了您的问题,这应该是一个 B2B 问题,我们需要更多信息。请在论坛上查看答案。
标签: uwp in-app-purchase azure-active-directory winobjc